plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' id 'com.google.devtools.ksp' id 'kotlin-parcelize' id 'dagger.hilt.android.plugin' } android { compileSdk = 35 buildToolsVersion = '35.0.0' namespace = 'org.koitharu.kotatsu' defaultConfig { applicationId 'org.koitharu.kotatsu' minSdk = 21 targetSdk = 35 versionCode = 671 versionName = '7.6-a3' generatedDensities = [] testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner' ksp { arg('room.generateKotlin', 'true') arg('room.schemaLocation', "$projectDir/schemas") } androidResources { generateLocaleConfig true } } buildTypes { debug { applicationIdSuffix = '.debug' } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } buildFeatures { viewBinding true buildConfig true } sourceSets { androidTest.assets.srcDirs += files("$projectDir/schemas".toString()) main.java.srcDirs += 'src/main/kotlin/' } compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = JavaVersion.VERSION_11.toString() freeCompilerArgs += [ '-opt-in=kotlin.ExperimentalStdlibApi', '-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi', '-opt-in=kotlinx.coroutines.ExperimentalForInheritanceCoroutinesApi', '-opt-in=kotlinx.coroutines.FlowPreview', '-opt-in=kotlin.contracts.ExperimentalContracts', '-opt-in=coil.annotation.ExperimentalCoilApi', ] } lint { abortOnError true disable 'MissingTranslation', 'PrivateResource', 'NotifyDataSetChanged', 'SetJavaScriptEnabled' } testOptions { unitTests.includeAndroidResources true unitTests.returnDefaultValues false kotlinOptions { freeCompilerArgs += ['-opt-in=org.koitharu.kotatsu.parsers.InternalParsersApi'] } } } afterEvaluate { compileDebugKotlin { kotlinOptions { freeCompilerArgs += ['-opt-in=org.koitharu.kotatsu.parsers.InternalParsersApi'] } } } dependencies { //noinspection GradleDependency implementation('com.github.KotatsuApp:kotatsu-parsers:613623fa53') { exclude group: 'org.json', module: 'json' } coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.2' implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.0.20' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0' implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.core:core-ktx:1.13.1' implementation 'androidx.activity:activity-ktx:1.9.2' implementation 'androidx.fragment:fragment-ktx:1.8.3' implementation 'androidx.transition:transition-ktx:1.5.1' implementation 'androidx.collection:collection-ktx:1.4.4' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6' implementation 'androidx.lifecycle:lifecycle-service:2.8.6' implementation 'androidx.lifecycle:lifecycle-process:2.8.6' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'androidx.viewpager2:viewpager2:1.1.0' implementation 'androidx.preference:preference-ktx:1.2.1' implementation 'androidx.biometric:biometric-ktx:1.2.0-alpha05' implementation 'com.google.android.material:material:1.12.0' implementation 'androidx.lifecycle:lifecycle-common-java8:2.8.6' implementation 'androidx.webkit:webkit:1.11.0' implementation 'androidx.work:work-runtime:2.9.1' //noinspection GradleDependency implementation('com.google.guava:guava:33.2.1-android') { exclude group: 'com.google.guava', module: 'failureaccess' exclude group: 'org.checkerframework', module: 'checker-qual' exclude group: 'com.google.j2objc', module: 'j2objc-annotations' } implementation 'androidx.room:room-runtime:2.6.1' implementation 'androidx.room:room-ktx:2.6.1' ksp 'androidx.room:room-compiler:2.6.1' implementation 'com.squareup.okhttp3:okhttp:4.12.0' implementation 'com.squareup.okhttp3:okhttp-tls:4.12.0' implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.12.0' implementation 'com.squareup.okio:okio:3.9.1' implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2' implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2' implementation 'com.google.dagger:hilt-android:2.52' kapt 'com.google.dagger:hilt-compiler:2.52' implementation 'androidx.hilt:hilt-work:1.2.0' kapt 'androidx.hilt:hilt-compiler:1.2.0' implementation 'io.coil-kt:coil-base:2.7.0' implementation 'io.coil-kt:coil-svg:2.7.0' implementation 'com.github.KotatsuApp:subsampling-scale-image-view:4ec7176962' implementation 'com.github.solkin:disk-lru-cache:1.4' implementation 'io.noties.markwon:core:4.6.2' implementation 'ch.acra:acra-http:5.11.4' implementation 'ch.acra:acra-dialog:5.11.4' implementation 'org.conscrypt:conscrypt-android:2.5.2' debugImplementation 'com.squareup.leakcanary:leakcanary-android:3.0-alpha-8' debugImplementation 'com.github.Koitharu:WorkInspector:5778dd1747' testImplementation 'junit:junit:4.13.2' testImplementation 'org.json:json:20240303' testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0' androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test:rules:1.6.1' androidTestImplementation 'androidx.test:core-ktx:1.6.1' androidTestImplementation 'androidx.test.ext:junit-ktx:1.2.1' androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0' androidTestImplementation 'androidx.room:room-testing:2.6.1' androidTestImplementation 'com.squareup.moshi:moshi-kotlin:1.15.1' androidTestImplementation 'com.google.dagger:hilt-android-testing:2.52' kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.52' }