310 lines
9.3 KiB
Plaintext
310 lines
9.3 KiB
Plaintext
import com.android.build.api.dsl.ApplicationProductFlavor
|
|
|
|
plugins {
|
|
id("com.android.application")
|
|
kotlin("android")
|
|
id("kotlin-parcelize")
|
|
kotlin("kapt")
|
|
id("dagger.hilt.android.plugin")
|
|
//TODO - enable later: id("com.google.gms.google-services")
|
|
id("com.google.firebase.crashlytics")
|
|
|
|
}
|
|
|
|
android {
|
|
namespace = Version.applicationId
|
|
compileSdk = 36
|
|
|
|
|
|
defaultConfig {
|
|
applicationId = Version.applicationId
|
|
minSdk = Version.minSdk
|
|
targetSdk = Version.targetSdk
|
|
compileSdk = Version.targetSdk
|
|
versionCode = Version.versionCode
|
|
versionName = Version.versionName
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
setProperty("archivesBaseName", "${Version.applicationId}-build${Version.versionCode}")
|
|
multiDexEnabled = true
|
|
ndk {
|
|
abiFilters += listOf("armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64")
|
|
}
|
|
renderscriptTargetApi = 23
|
|
renderscriptSupportModeEnabled = true
|
|
}
|
|
|
|
kapt {
|
|
correctErrorTypes = true
|
|
arguments {
|
|
arg("AROUTER_MODULE_NAME", project.name)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
hilt {
|
|
enableExperimentalClasspathAggregation = true
|
|
enableAggregatingTask = false
|
|
}
|
|
|
|
buildFeatures {
|
|
dataBinding = true
|
|
viewBinding = true
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = JavaVersion.VERSION_17.toString()
|
|
}
|
|
|
|
signingConfigs {
|
|
val storeFileName = "storeFile"
|
|
val storePasswordName = "KEYSTORE_PWD"
|
|
val keyAliasName = "KEY_ALIAS"
|
|
val keyPasswordName = "KEY_PWD"
|
|
|
|
fun names(suffix: String = "") =
|
|
listOf(storeFileName + suffix, storePasswordName + suffix, keyAliasName + suffix, keyPasswordName + suffix)
|
|
|
|
create("release") {
|
|
storeFile = file(project.properties[names()[0]]?.toString() ?: "")
|
|
storePassword = project.properties[names()[1]] as? String?
|
|
keyAlias = project.properties[names()[2]] as? String?
|
|
keyPassword = project.properties[names()[3]] as? String?
|
|
}
|
|
getByName("debug") {
|
|
storeFile = file(project.properties[names()[0]]?.toString() ?: "")
|
|
storePassword = project.properties[names()[1]] as? String?
|
|
keyAlias = project.properties[names()[2]] as? String?
|
|
keyPassword = project.properties[names()[3]] as? String?
|
|
}
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = false
|
|
isShrinkResources = false
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
)
|
|
}
|
|
debug {
|
|
isMinifyEnabled = false
|
|
isShrinkResources = false
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
)
|
|
}
|
|
}
|
|
compileOptions {
|
|
isCoreLibraryDesugaringEnabled = true
|
|
targetCompatibility(JavaVersion.VERSION_17)
|
|
sourceCompatibility(JavaVersion.VERSION_17)
|
|
}
|
|
|
|
|
|
|
|
val flavorDimensionName = "VisualNovel"
|
|
flavorDimensions.add(flavorDimensionName)
|
|
productFlavors {
|
|
fun ApplicationProductFlavor.buildConfigString(name: String, value: String) =
|
|
buildConfigField("String", name, "\"$value\"")
|
|
|
|
fun ApplicationProductFlavor.buildConfigBoolean(name: String, value: String) =
|
|
buildConfigField("Boolean", name, value)
|
|
|
|
create("novelTest") {
|
|
dimension = flavorDimensionName
|
|
signingConfig = signingConfigs.getByName("debug")
|
|
|
|
buildConfigString("HOST", "https://www.xxxxx.ai/")
|
|
buildConfigString("ABOUT_US", "https://www.xxxxx.ai/about")
|
|
buildConfigString("API_FROG", "https://www.test-frog.xxxxx.ai")
|
|
buildConfigString("EPAL_TERMS_SERVICES", "https://www.xxxxx.ai/policy/tos")
|
|
buildConfigString("API_SHARK", "https://test-shark.xxxxx.ai")
|
|
buildConfigString("API_COW", "https://test-cow.xxxxx.ai")
|
|
buildConfigString("API_PIGEON", "https://test-pigeon.xxxx.ai")
|
|
buildConfigString("API_LION", "https://test-lion.xxxx.ai")
|
|
buildConfigString("RECHAEGE_SERVICES", "https://test.xxxxx.ai/policy/recharge")
|
|
|
|
buildConfigString("RTC_APP_ID", "689ade491323ae01797818e0-XXX-TODO")
|
|
}
|
|
|
|
|
|
create("product") {
|
|
dimension = flavorDimensionName
|
|
signingConfig = signingConfigs.getByName("release")
|
|
|
|
buildConfigString("HOST", "https://test.xxxxx.ai/")
|
|
buildConfigString("ABOUT_US", "https://test.xxxxx.ai/about")
|
|
buildConfigString("API_FROG", "https://test-frog.xxxxx.ai")
|
|
buildConfigString("EPAL_TERMS_SERVICES", "https://test.xxxxx.ai/policy/tos")
|
|
buildConfigString("API_SHARK", "https://test-shark.xxxxx.ai")
|
|
buildConfigString("API_COW", "https://test-cow.xxxxx.ai")
|
|
buildConfigString("API_PIGEON", "https://test-pigeon.xxxx.ai")
|
|
buildConfigString("API_LION", "https://test-lion.xxxx.ai")
|
|
buildConfigString("RECHAEGE_SERVICES", "https://test.xxxxx.ai/policy/recharge")
|
|
|
|
buildConfigString("RTC_APP_ID", "689ade491323ae01797818e0-XXX-TODO")
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(fileTree("dir" to "libs", "include" to listOf("*.jar", "*.aar")))
|
|
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
|
|
|
|
coreLibraryDesugaring(Deps.desugar)
|
|
implementation(libs.androidx.core.ktx)
|
|
implementation(libs.androidx.appcompat)
|
|
implementation(libs.material)
|
|
implementation(libs.androidx.activity)
|
|
implementation(libs.androidx.constraintlayout)
|
|
testImplementation(libs.junit)
|
|
androidTestImplementation(libs.androidx.junit)
|
|
androidTestImplementation(libs.androidx.espresso.core)
|
|
|
|
|
|
|
|
|
|
//dagger hilt
|
|
implementation(Deps.hilt)
|
|
kapt(Deps.hiltAndroidCompiler)
|
|
kapt(Deps.hiltCompiler)
|
|
|
|
//Retrofit2
|
|
implementation(Deps.retrofit2)
|
|
implementation(Deps.retrofitAdapterRxjava2)
|
|
implementation(Deps.retrofit2ConverterGson)
|
|
implementation(Deps.okhttp3LoggingInterceptor)
|
|
|
|
|
|
// timber used for: recording logs
|
|
implementation(Deps.timber)
|
|
|
|
|
|
// tecent mmkv
|
|
implementation(Deps.mmkv)
|
|
implementation(Deps.material)
|
|
|
|
// gson
|
|
implementation(Deps.gson)
|
|
|
|
// viewpager2
|
|
implementation(Deps.viewpager2)
|
|
|
|
// for multiple dex support
|
|
implementation(Deps.multidex)
|
|
|
|
|
|
//google firebase
|
|
implementation(platform(Deps.firebaseBom))
|
|
implementation(Deps.firebaseMessageKtx)
|
|
implementation(Deps.firebaseAnalyticsKtx)
|
|
implementation(Deps.firebaseCrashlyticsKtx)
|
|
implementation(Deps.firebaseAuthKtx)
|
|
implementation(Deps.credentials)
|
|
implementation(Deps.credentialsAuth)
|
|
implementation(Deps.googleId)
|
|
|
|
|
|
// coroutine support
|
|
implementation(Deps.kotlinCoroutinesCore)
|
|
implementation(Deps.kotlinCoroutinesAndroid)
|
|
|
|
implementation(Deps.appcompat)
|
|
implementation(Deps.constraintlayout)
|
|
implementation(Deps.flexbox)
|
|
implementation(Deps.coreKtx)
|
|
implementation(Deps.activityKtx)
|
|
implementation(Deps.activityCompose)
|
|
implementation(Deps.fragmentKtx)
|
|
|
|
// vm and lifecycle
|
|
implementation(Deps.viewModel)
|
|
implementation(Deps.livedata)
|
|
implementation(Deps.lifecycleJava8)
|
|
implementation(Deps.lifecycleRuntime)
|
|
implementation(Deps.datastore)
|
|
|
|
|
|
//glide
|
|
implementation(Deps.glide)
|
|
kapt(Deps.glideCompiler)
|
|
implementation(Deps.glideTransformations)
|
|
implementation(Deps.glideWebpdecoder)
|
|
|
|
// eventbus
|
|
implementation(Deps.modularEventbus)
|
|
kapt(Deps.modularEventbusCompiler)
|
|
|
|
// indicator
|
|
implementation(Deps.magicIndicator)
|
|
|
|
// BlurView and Luban
|
|
implementation(Deps.Luban)
|
|
implementation(Deps.BlurView)
|
|
|
|
//ali aRouter
|
|
implementation(Deps.arouter)
|
|
kapt(Deps.arouterCompiler)
|
|
|
|
|
|
//Permission
|
|
implementation(Deps.permission)
|
|
// lottie
|
|
implementation(Deps.lottie)
|
|
// float window
|
|
implementation(Deps.easyFloat)
|
|
// guide
|
|
implementation(Deps.newbieGuide)
|
|
// refreshLayout
|
|
implementation(Deps.refreshLayout)
|
|
// apng
|
|
implementation(Deps.apng)
|
|
// softKey board
|
|
implementation(Deps.skbGlobal)
|
|
|
|
|
|
// baseRecyclerAdapter
|
|
implementation(Deps.brvah)
|
|
implementation(Deps.swipeMenuLayout)
|
|
implementation(Deps.BRV)
|
|
|
|
//banner
|
|
implementation(Deps.banner)
|
|
|
|
// spannable
|
|
implementation(Deps.spannablex)
|
|
|
|
// Media related libs
|
|
implementation(Deps.mp3Recorder)
|
|
implementation(Deps.photoView)
|
|
implementation(Deps.transition)
|
|
implementation(Deps.paging)
|
|
implementation(Deps.exoplayer)
|
|
implementation(Deps.subsamplingScaleImageView)
|
|
|
|
//s3图片上传 oss
|
|
implementation(Deps.awsS3)
|
|
implementation(Deps.awsCore)
|
|
|
|
// 网易 云信
|
|
implementation(Deps.nimBase)
|
|
implementation(Deps.nimPush)
|
|
|
|
//内购 / 充值
|
|
implementation(Deps.billing)
|
|
|
|
// RTC : 实时通信
|
|
implementation(Deps.BytePlusRTC)
|
|
|
|
|
|
implementation(project(mapOf("path" to ":loadingstateview")))
|
|
implementation(project(mapOf("path" to ":loadingstateview-ktx")))
|
|
implementation(project(mapOf("path" to ":viewbinding-base")))
|
|
implementation(project(mapOf("path" to ":viewbinding-nonreflection-ktx")))
|
|
} |