plugins {
	id 'com.android.application'
	id 'kotlin-android'
	id 'kotlin-kapt'
	id 'kotlin-parcelize'
}

android {
	compileSdkVersion 30
	buildToolsVersion '30.0.3'

	defaultConfig {
		applicationId 'org.koitharu.kotatsu'
		minSdkVersion 21
		targetSdkVersion 30
		versionCode 364
		versionName '1.0.1'

		kapt {
			arguments {
				arg 'room.schemaLocation', "$projectDir/schemas".toString()
			}
		}
	}
	compileOptions {
		sourceCompatibility JavaVersion.VERSION_1_8
		targetCompatibility JavaVersion.VERSION_1_8
	}
	buildTypes {
		debug {
			applicationIdSuffix = '.debug'
		}
		release {
			multiDexEnabled false
			minifyEnabled true
			shrinkResources true
			proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
		}
	}
	buildFeatures {
		viewBinding true
	}
	lintOptions {
		disable 'MissingTranslation'
		abortOnError false
	}
	testOptions {
		unitTests.includeAndroidResources = true
		unitTests.returnDefaultValues = false
	}
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
	kotlinOptions {
		jvmTarget = JavaVersion.VERSION_1_8.toString()
		freeCompilerArgs += [
				'-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi',
				'-Xopt-in=kotlinx.coroutines.FlowPreview',
				'-Xopt-in=org.koin.core.component.KoinApiExtension'
		]
	}
}
dependencies {
	implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
	implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3'
	implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3'

	implementation 'androidx.core:core-ktx:1.5.0-rc01'
	implementation 'androidx.activity:activity-ktx:1.2.2'
	implementation 'androidx.fragment:fragment-ktx:1.3.2'
	implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
	implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
	implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
	implementation 'androidx.lifecycle:lifecycle-service:2.3.1'
	implementation 'androidx.lifecycle:lifecycle-process:2.3.1'
	implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
	implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
	implementation 'androidx.recyclerview:recyclerview:1.2.0-rc01'
	implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'
	implementation 'androidx.preference:preference-ktx:1.1.1'
	implementation 'androidx.work:work-runtime-ktx:2.5.0'
	implementation 'com.google.android.material:material:1.3.0'
	//noinspection LifecycleAnnotationProcessorWithJava8
	kapt 'androidx.lifecycle:lifecycle-compiler:2.3.1'

	implementation 'androidx.room:room-runtime:2.2.6'
	implementation 'androidx.room:room-ktx:2.2.6'
	kapt 'androidx.room:room-compiler:2.2.6'

	implementation 'com.squareup.okhttp3:okhttp:4.9.1'
	implementation 'com.squareup.okio:okio:2.10.0'
	implementation 'org.jsoup:jsoup:1.13.1'

	implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.0'
	implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.0'

	implementation 'io.insert-koin:koin-android:3.0.1-beta-2'
	implementation 'io.insert-koin:koin-android-ext:3.0.1-beta-2'
	implementation 'io.coil-kt:coil-base:1.1.1'
	implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0'
	implementation 'com.github.solkin:disk-lru-cache:1.2'

	debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.6'

	testImplementation 'junit:junit:4.13.2'
	testImplementation 'org.json:json:20201115'
	testImplementation 'io.insert-koin:koin-test-junit4:3.0.1-beta-2'
}