Skip to content

Commit 1ccb8bb

Browse files
committed
refactor: updated build scripts + version catalog
1 parent 5e2f84d commit 1ccb8bb

13 files changed

Lines changed: 232 additions & 116 deletions

File tree

app/build.gradle.kts

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import org.jetbrains.kotlin.config.KotlinCompilerVersion
21
import java.util.Properties
32

43
plugins {
5-
id("com.android.application")
6-
kotlin("android")
4+
alias(libs.plugins.android.application)
5+
alias(libs.plugins.kotlin.android)
6+
alias(libs.plugins.kotlin.compose)
7+
alias(libs.plugins.ksp)
8+
alias(libs.plugins.jetbrains.kotlin.serialization)
79
kotlin("kapt")
8-
id("com.google.devtools.ksp")
910
id("kotlin-parcelize")
1011
}
1112

@@ -93,28 +94,38 @@ android {
9394
targetCompatibility = JavaVersion.VERSION_17
9495
}
9596

96-
kotlin {
97-
jvmToolchain(17)
98-
}
99-
100-
composeOptions {
101-
kotlinCompilerExtensionVersion = Compose.kotlinCompilerExtensionVersion
97+
kotlinOptions {
98+
jvmTarget = "17"
10299
}
103100
}
104101

105102
dependencies {
106-
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
107-
implementation(kotlin("stdlib-jdk8", KotlinCompilerVersion.VERSION))
103+
implementation(project(":common:design"))
104+
implementation(project(":common:utils"))
105+
implementation(project(":domain"))
106+
implementation(project(":data"))
107+
108+
implementation(libs.kotlin.stdlib)
109+
implementation(libs.kotlinx.coroutines.android)
110+
111+
implementation(libs.androidx.core.ktx)
112+
implementation(libs.androidx.activity.compose)
113+
implementation(libs.androidx.appcompat)
114+
implementation(libs.androidx.material)
115+
implementation(libs.androidx.navigation.compose)
116+
implementation(libs.androidx.window)
117+
118+
// Lifecycle
119+
implementation(libs.androidx.lifecycle.runtime.ktx)
120+
implementation(libs.androidx.lifecycle.runtime.compose)
121+
implementation(libs.androidx.lifecycle.viewmodel.ktx)
122+
implementation(libs.androidx.lifecycle.viewmodel.navigation3)
123+
implementation(libs.androidx.lifecycle.viewmodel.compose)
124+
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
125+
//ksp(libs.androidx.lifecycle.compiler)
108126

109-
implementation(project(Modules.domain))
110-
implementation(project(Modules.data))
111-
implementation(project(Modules.utils))
112-
implementation(project(Modules.design))
113-
114-
implementation(AndroidX.activity)
115127
implementation(AndroidX.splashScreen)
116128
implementation(AndroidX.lifecycleLiveData)
117-
implementation(AndroidX.lifecycleRuntimeCompose)
118129
implementation(AndroidX.navigationFragment)
119130
implementation(AndroidX.navigationUi)
120131
implementation(AndroidX.preference)
@@ -125,8 +136,10 @@ dependencies {
125136

126137
implementation(Google.gson)
127138

128-
implementation(Dependencies.koinAndroid)
129-
implementation(Dependencies.libSuCore)
139+
implementation(libs.koin)
140+
implementation(libs.koin.compose)
141+
implementation(libs.bundles.libsu)
142+
130143
implementation(Dependencies.libSuIo)
131144
implementation(Dependencies.liveEvent)
132145
implementation(Dependencies.tapTargetView)

app/src/main/kotlin/com/androidvip/sysctlgui/ui/params/edit/EditKernelParamActivity.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ class EditKernelParamActivity : ComponentActivity() {
3737
handleIntent(intent)
3838
}
3939

40-
override fun onNewIntent(intent: Intent?) {
41-
super.onNewIntent(intent)
42-
handleIntent(intent ?: return)
43-
}
44-
4540
private fun handleIntent(intent: Intent) {
4641
val param = intent.getParcelableExtra(EXTRA_PARAM) as? KernelParam
4742
if (param != null) {

build.gradle.kts

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,9 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22
plugins {
3-
id("com.google.devtools.ksp") version "1.9.24-1.0.20" apply false
4-
}
5-
6-
buildscript {
7-
repositories {
8-
google()
9-
mavenCentral()
10-
}
11-
12-
dependencies {
13-
classpath("com.android.tools.build:gradle:8.5.0")
14-
classpath(BuildPlugins.kotlin)
15-
}
16-
}
17-
18-
allprojects {
19-
repositories {
20-
google()
21-
mavenCentral()
22-
maven {
23-
url = uri("https://maven.google.com")
24-
}
25-
maven {
26-
url = uri("https://jitpack.io")
27-
}
28-
}
29-
}
30-
31-
tasks.register("clean", Delete::class) {
32-
delete(rootProject.buildDir)
33-
}
3+
alias(libs.plugins.android.application) apply false
4+
alias(libs.plugins.kotlin.android) apply false
5+
alias(libs.plugins.kotlin.compose) apply false
6+
alias(libs.plugins.jetbrains.kotlin.jvm) apply false
7+
alias(libs.plugins.android.library) apply false
8+
alias(libs.plugins.ksp) apply false
9+
}

buildSrc/src/main/kotlin/AndroidX.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ object AndroidX {
88
private const val lifecycleVersion = "2.6.1"
99
const val lifecycleLiveData = "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
1010
const val lifecycleViewModel = "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
11-
const val lifecycleRuntimeCompose = "androidx.lifecycle:lifecycle-runtime-compose:$lifecycleVersion"
1211

1312
const val preference = "androidx.preference:preference-ktx:1.2.0"
1413
const val swipeRefreshLayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"

buildSrc/src/main/kotlin/AppConfig.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
object AppConfig {
2-
val devCycle = false
2+
val devCycle = true
33

44
const val appId = "com.androidvip.sysctlgui"
5-
const val compileSdkVersion = 34
6-
const val minSdkVersion = 21
7-
const val targetSdkVersion = 34
5+
const val compileSdkVersion = 36
6+
const val minSdkVersion = 24
7+
const val targetSdkVersion = 36
88

99
const val testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1010
const val proguardConsumerRules = "consumer-rules.pro"

common/design/build.gradle.kts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
2-
id("com.android.library")
3-
id("org.jetbrains.kotlin.android")
2+
alias(libs.plugins.android.library)
3+
alias(libs.plugins.kotlin.android)
4+
alias(libs.plugins.kotlin.compose)
45
}
56

67
android {
@@ -9,7 +10,6 @@ android {
910

1011
defaultConfig {
1112
minSdk = AppConfig.minSdkVersion
12-
targetSdk = AppConfig.targetSdkVersion
1313

1414
testInstrumentationRunner = AppConfig.testInstrumentationRunner
1515
consumerProguardFiles(AppConfig.proguardConsumerRules)
@@ -38,27 +38,27 @@ android {
3838
kotlinOptions {
3939
jvmTarget = "17"
4040
}
41-
42-
composeOptions {
43-
kotlinCompilerExtensionVersion = Compose.kotlinCompilerExtensionVersion
44-
}
4541
}
4642

4743
dependencies {
48-
val composeBom = platform(Compose.BoM)
49-
api(composeBom)
50-
androidTestImplementation(composeBom)
44+
implementation(libs.androidx.core.ktx)
45+
46+
api(platform(libs.androidx.compose.bom))
47+
api(libs.androidx.ui)
48+
api(libs.androidx.ui.graphics)
49+
api(libs.androidx.ui.tooling.preview)
50+
api(libs.androidx.material3)
51+
api(libs.androidx.material.icons.core)
52+
api(libs.androidx.window)
5153

52-
api(AndroidX.activity)
53-
api(AndroidX.appCompat)
5454
api(AndroidX.constraintLayout)
55-
api(AndroidX.core)
5655
api(AndroidX.swipeRefreshLayout)
57-
api(Compose.material3)
5856
api(Compose.material)
59-
api(Compose.activity)
60-
api(Compose.uiTooling)
61-
debugApi(Compose.uiTooling)
6257
implementation(AndroidX.splashScreen)
6358
implementation(Google.material)
59+
60+
androidTestApi(platform(libs.androidx.compose.bom))
61+
debugApi(libs.androidx.ui.tooling)
62+
debugApi(libs.androidx.ui.test.manifest)
6463
}
64+

common/utils/build.gradle.kts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
2-
id("com.android.library")
3-
id("org.jetbrains.kotlin.android")
2+
alias(libs.plugins.android.library)
3+
alias(libs.plugins.kotlin.android)
44
}
55

66
android {
@@ -9,7 +9,6 @@ android {
99

1010
defaultConfig {
1111
minSdk = AppConfig.minSdkVersion
12-
targetSdk = AppConfig.targetSdkVersion
1312

1413
testInstrumentationRunner = AppConfig.testInstrumentationRunner
1514
consumerProguardFiles(AppConfig.proguardConsumerRules)
@@ -36,6 +35,10 @@ android {
3635
}
3736

3837
dependencies {
39-
implementation(AndroidX.lifecycleViewModel)
40-
api(Dependencies.coroutinesCore)
38+
implementation(libs.androidx.core.ktx)
39+
implementation(libs.androidx.lifecycle.viewmodel.ktx)
40+
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
41+
42+
testImplementation(libs.junit)
43+
androidTestImplementation(libs.androidx.junit)
4144
}

data/build.gradle.kts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
plugins {
2-
id("com.android.library")
3-
kotlin("android")
4-
id("com.google.devtools.ksp")
2+
alias(libs.plugins.android.library)
3+
alias(libs.plugins.kotlin.android)
4+
alias(libs.plugins.jetbrains.kotlin.serialization)
5+
alias(libs.plugins.ksp)
56
}
67

78
android {
@@ -10,7 +11,7 @@ android {
1011

1112
defaultConfig {
1213
minSdk = AppConfig.minSdkVersion
13-
targetSdk = AppConfig.targetSdkVersion
14+
1415
javaCompileOptions {
1516
annotationProcessorOptions {
1617
arguments += mapOf(
@@ -33,8 +34,8 @@ android {
3334
targetCompatibility = JavaVersion.VERSION_17
3435
}
3536

36-
kotlin {
37-
jvmToolchain(17)
37+
kotlinOptions {
38+
jvmTarget = "17"
3839
}
3940

4041
sourceSets {
@@ -43,20 +44,22 @@ android {
4344
}
4445

4546
dependencies {
46-
implementation(project(Modules.domain))
47-
implementation(project(Modules.utils))
47+
implementation(project(":common:utils"))
48+
implementation(project(":domain"))
4849

49-
implementation(AndroidX.preference)
50-
implementation(AndroidX.room)
51-
implementation(AndroidX.roomRuntime)
52-
ksp(AndroidX.roomCompiler)
50+
implementation(libs.androidx.core.ktx)
51+
implementation(libs.androidx.preference)
5352

54-
implementation(Dependencies.libSuCore)
55-
implementation(Google.gson)
53+
// Room
54+
implementation(libs.androidx.room.runtime)
55+
implementation(libs.androidx.room.ktx)
56+
ksp(libs.androidx.room.compiler)
5657

57-
implementation(Dependencies.koinAndroid)
58+
implementation(libs.kotlinx.coroutines.android)
59+
implementation(libs.kotlinx.serialization.json)
60+
implementation(libs.koin)
61+
implementation(libs.bundles.libsu)
62+
implementation(Google.gson)
5863

59-
testImplementation("junit:junit:4.+")
60-
androidTestImplementation("androidx.test.ext:junit:1.1.3")
61-
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
64+
testImplementation(libs.junit)
6265
}

data/src/main/java/com/androidvip/sysctlgui/data/utils/RootUtils.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ import kotlinx.coroutines.withContext
99
class RootUtils(private val dispatcher: CoroutineDispatcher = Dispatchers.Default) {
1010

1111
suspend fun isBusyboxAvailable(): Boolean = withContext(dispatcher) {
12-
val results: List<String> = Shell.sh("which busybox").exec().out
13-
return@withContext if (ShellUtils.isValidOutput(results)) {
14-
results.first().isNotEmpty()
15-
} else false
12+
val results: List<String> = Shell.cmd("which busybox").exec().out
13+
return@withContext ShellUtils.isValidOutput(results) && results.firstOrNull()
14+
?.isNotEmpty() == true
1615
}
1716

1817
suspend fun executeWithOutput(
@@ -22,7 +21,7 @@ class RootUtils(private val dispatcher: CoroutineDispatcher = Dispatchers.Defaul
2221
): String = withContext(dispatcher) {
2322
return@withContext runCatching {
2423
buildString {
25-
val outputs = Shell.su(command).exec().out
24+
val outputs = Shell.cmd(command).exec().out
2625
if (!ShellUtils.isValidOutput(outputs)) {
2726
append(defaultOutput)
2827
return@buildString

domain/build.gradle.kts

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,34 @@
11
plugins {
2-
id("java-library")
3-
id("kotlin")
2+
alias(libs.plugins.android.library)
3+
alias(libs.plugins.kotlin.android)
44
}
55

6-
java {
7-
sourceCompatibility = JavaVersion.VERSION_17
8-
targetCompatibility = JavaVersion.VERSION_17
6+
android {
7+
namespace = "${AppConfig.appId}.domain"
8+
compileSdk = AppConfig.compileSdkVersion
9+
10+
defaultConfig {
11+
minSdk = AppConfig.minSdkVersion
12+
13+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
14+
consumerProguardFiles("consumer-rules.pro")
15+
}
16+
17+
compileOptions {
18+
sourceCompatibility = JavaVersion.VERSION_17
19+
targetCompatibility = JavaVersion.VERSION_17
20+
}
21+
22+
kotlinOptions {
23+
jvmTarget = "17"
24+
}
925
}
1026

1127
dependencies {
12-
implementation(Dependencies.koinCore)
13-
}
28+
implementation(project(":common:utils"))
29+
implementation(libs.androidx.core.ktx)
30+
31+
implementation(libs.koin)
1432

33+
testImplementation(libs.junit)
34+
}

0 commit comments

Comments
 (0)