plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'com.google.devtools.ksp' } android { compileSdkVersion 33 buildToolsVersion "33.0.1" ndkVersion "25.1.8937393" splits { abi { enable = true reset() include 'arm64-v8a', 'x86_64', 'armeabi-v7a', 'x86' universalApk = true } } signingConfigs { sign { storeFile file(signStoreFile) storePassword signStorePassword keyAlias signkeyAlias keyPassword signkeyPassword } } defaultConfig { applicationId "moe.tarsin.ehviewer" minSdkVersion 28 targetSdkVersion 33 versionCode 180026 versionName "1.8.4.0-alpha02" resConfigs 'zh', 'zh-rCN', 'zh-rHK', 'zh-rTW', 'es', 'ja', 'ko', 'fr', 'de', 'th' } externalNativeBuild { cmake { path 'src/main/cpp/CMakeLists.txt' } } compileOptions { sourceCompatibility JavaVersion.VERSION_19 targetCompatibility JavaVersion.VERSION_19 } kotlinOptions { jvmTarget = '19' freeCompilerArgs += [ // https://kotlinlang.org/docs/compiler-reference.html#progressive "-progressive", // Generate smaller bytecode by not generating runtime not-null assertions. "-Xno-call-assertions", "-Xno-param-assertions", "-Xno-receiver-assertions", "-P", "plugin:androidx.compose.compiler.plugins.kotlin:suppressKotlinVersionCompatibilityCheck=true" ] } lint { abortOnError true checkReleaseBuilds false disable 'MissingTranslation' } packagingOptions { resources { excludes += "/META-INF/**" excludes += "/kotlin/**" excludes += "**.txt" excludes += "**.bin" } } dependenciesInfo.includeInApk false buildTypes { release { minifyEnabled true shrinkResources true proguardFiles 'proguard-rules.pro' signingConfig signingConfigs.sign } debug { applicationIdSuffix ".debug" signingConfig signingConfigs.debug } } buildFeatures { buildConfig true compose true dataBinding true viewBinding true } composeOptions { kotlinCompilerExtensionVersion = "1.4.0-alpha02" } namespace 'com.hippo.ehviewer' } dependencies { def activity_version = "1.6.1" implementation "androidx.activity:activity:$activity_version" implementation "androidx.activity:activity-ktx:$activity_version" implementation "androidx.annotation:annotation:1.5.0" implementation "androidx.annotation:annotation-experimental:1.3.0" implementation "androidx.appcompat:appcompat:1.6.0-rc01" def arch_core_version = "2.1.0" implementation "androidx.arch.core:core-common:$arch_core_version" implementation "androidx.arch.core:core-runtime:$arch_core_version" implementation "androidx.biometric:biometric-ktx:1.2.0-alpha05" implementation "androidx.browser:browser:1.4.0" def collection_version = "1.3.0-alpha02" implementation "androidx.collection:collection:$collection_version" implementation "androidx.collection:collection-ktx:$collection_version" implementation platform("androidx.compose:compose-bom:2022.12.00") implementation "androidx.compose.animation:animation" implementation "androidx.compose.foundation:foundation" implementation "androidx.compose.foundation:foundation-layout" implementation "androidx.compose.material3:material3" implementation "androidx.compose.runtime:runtime" implementation "androidx.compose.runtime:runtime-saveable" implementation "androidx.compose.ui:ui" implementation "androidx.constraintlayout:constraintlayout:2.2.0-alpha05" implementation "androidx.coordinatorlayout:coordinatorlayout:1.2.0" def core_version = "1.9.0" implementation "androidx.core:core:$core_version" implementation "androidx.core:core-ktx:$core_version" implementation "androidx.customview:customview:1.2.0-alpha02" implementation "androidx.dynamicanimation:dynamicanimation:1.1.0-alpha03" def fragment_version = "1.6.0-alpha04" implementation "androidx.fragment:fragment:$fragment_version" implementation "androidx.fragment:fragment-ktx:$fragment_version" def lifecycle_version = "2.6.0-alpha03" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-livedata-core-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" implementation "androidx.loader:loader:1.1.0" def nav_version = "2.5.3" implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" implementation "androidx.paging:paging-runtime:3.2.0-alpha03" implementation 'androidx.preference:preference:1.2.0' implementation 'androidx.recyclerview:recyclerview:1.3.0-rc01' def room_version = "2.5.0-rc01" implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" implementation "androidx.room:room-paging:$room_version" implementation 'androidx.startup:startup-runtime:1.2.0-alpha01' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01' implementation "androidx.transition:transition-ktx:1.4.1" implementation "androidx.vectordrawable:vectordrawable:1.2.0-beta01" implementation "androidx.vectordrawable:vectordrawable-animated:1.1.0" implementation 'androidx.viewpager:viewpager:1.1.0-alpha01' implementation 'androidx.viewpager2:viewpager2:1.1.0-beta01' implementation 'com.drakeet.drawer:drawer:1.0.3' implementation 'com.google.android.material:material:1.8.0-beta01' implementation 'com.squareup.okhttp3:okhttp-bom:5.0.0-alpha.10' implementation 'com.squareup.okhttp3:okhttp' implementation 'dev.rikka.rikkax.core:core-ktx:1.4.1' implementation 'dev.rikka.rikkax.insets:insets:1.3.0' implementation 'dev.rikka.rikkax.layoutinflater:layoutinflater:1.2.0' implementation 'dev.rikka.rikkax.preference:simplemenu-preference:1.0.3' implementation 'dev.rikka.rikkax.material:material-preference:2.0.0' implementation 'io.coil-kt:coil:2.2.2' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4' implementation 'org.jsoup:jsoup:1.15.3' // Tachiyomi Reader implementation 'com.github.chrisbanes:PhotoView:2.3.0' implementation 'dev.chrisbanes.insetter:insetter:0.6.1' } configurations.all { exclude group: 'dev.rikka.rikkax.appcompat', module: 'appcompat' exclude group: 'dev.rikka.rikkax.material', module: 'material' exclude group: 'androidx.compose.material' }