283 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			283 lines
		
	
	
		
			8.1 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")
 | |
|         }
 | |
| 
 | |
| 
 | |
|         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")
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| 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)
 | |
| 
 | |
| 
 | |
| 
 | |
|     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")))
 | |
| } |