feat: 为多个模块引入 productFlavors 并优化依赖配置

- 在 `lib`、`pin` 及 `okhttpMock` 模块中新增 `mode` 变体维度,并配置 `pin`(默认)与 `normal` 两个 flavor。
- 配置 `lib` 模块的 `sourceSets`,将不同 flavor 指向对应的源码目录(`src/pin/java` 与 `src/normal/java`)。
- 迁移 `pin` 和 `app` 模块的 `kotlinOptions` 至 `compilerOptions`,并将 `jvmTarget` 统一设置为 `JVM_1_8`。
- 调整 `pin` 和 `okhttpMock` 模块对 `:lib` 的依赖方式,改为按 flavor 依赖(`pinImplementation` 与 `normalImplementation`)。
- 移动 `NotificationManager.kt` 至 `lib` 模块的 `pin` 源码目录,并在 `normal` 源码目录下新增其空实现。
main
mojo 1 month ago
parent 8d03c25264
commit 4554092779

@ -1,3 +1,5 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins { plugins {
alias(libs.plugins.android.application) alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.android)
@ -28,11 +30,13 @@ android {
} }
} }
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_11 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_1_8
}
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8) // Replace JVM_11 with your desired JVM target (e.g., JVM_1_8, JVM_17)
} }
kotlinOptions {
jvmTarget = "11"
} }
// buildFeatures { // buildFeatures {
// compose = true // compose = true

@ -39,11 +39,37 @@ android {
} }
} }
flavorDimensions += "mode"
productFlavors {
create("pin") {
isDefault = true
dimension = "mode"
}
create("normal") {
dimension = "mode"
}
}
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
} }
sourceSets {
getByName("pin") {
java {
srcDirs("src/pin/java")
}
}
getByName("normal") {
java {
srcDirs("src/normal/java")
}
}
}
kotlin { kotlin {
compilerOptions { compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8) // Replace JVM_11 with your desired JVM target (e.g., JVM_1_8, JVM_17) jvmTarget.set(JvmTarget.JVM_1_8) // Replace JVM_11 with your desired JVM target (e.g., JVM_1_8, JVM_17)

@ -0,0 +1,36 @@
package com.example.pin
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Handler
import android.os.Looper
import android.provider.Settings
import android.provider.Telephony
import android.service.notification.NotificationListenerService
import android.service.notification.StatusBarNotification
import android.text.TextUtils
import android.util.Log
import com.example.logger.LogUtils
import java.lang.reflect.Method
import java.lang.reflect.Modifier
object NotificationManger {
private val TAG = NotificationManger::class.java.simpleName
private const val DEFAULT_POLL_INTERVAL = 1000L // 默认轮询间隔 1 秒
var listener:((NotificationMessage)->Unit)? = null
private lateinit var applicationContext: Context
fun initialized(context: Context) {
applicationContext = context.applicationContext
}
fun startPolling(intervalMs: Long = DEFAULT_POLL_INTERVAL, duration: Long, l:(NotificationMessage)-> Unit) {
}
fun stopPolling() {
}
}

@ -30,6 +30,18 @@ android {
kotlinOptions { kotlinOptions {
jvmTarget = "11" jvmTarget = "11"
} }
flavorDimensions += "mode"
productFlavors {
create("pin") {
dimension = "mode"
isDefault = true
}
create("normal") {
dimension = "mode"
}
}
} }
dependencies { dependencies {
@ -41,5 +53,6 @@ dependencies {
androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(libs.androidx.espresso.core)
api("com.squareup.okhttp3:okhttp:4.12.0") api("com.squareup.okhttp3:okhttp:4.12.0")
api("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.0") api("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.0")
api(project(":lib")) "pinImplementation"(project(":lib"))
"normalImplementation"(project(":lib"))
} }

@ -1,3 +1,5 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins { plugins {
id("com.android.application") id("com.android.application")
id("org.jetbrains.kotlin.android") id("org.jetbrains.kotlin.android")
@ -31,8 +33,22 @@ android {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
} }
kotlinOptions { kotlin {
jvmTarget = "1.8" compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8) // Replace JVM_11 with your desired JVM target (e.g., JVM_1_8, JVM_17)
}
}
flavorDimensions += "mode"
productFlavors {
create("pin") {
dimension = "mode"
isDefault = true
}
create("normal") {
dimension = "mode"
}
} }
} }
@ -46,5 +62,6 @@ dependencies {
testImplementation("junit:junit:4.13.2") testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.2.1") androidTestImplementation("androidx.test.ext:junit:1.2.1")
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
implementation(project(":lib")) "pinImplementation"(project(":lib"))
"normalImplementation"(project(":lib"))
} }
Loading…
Cancel
Save