Skip to content
This repository was archived by the owner on Feb 9, 2026. It is now read-only.

Commit 1211b99

Browse files
committed
feat: kotlin 2.0
1 parent 9838033 commit 1211b99

8 files changed

Lines changed: 52 additions & 44 deletions

File tree

activity/src/main/java/dev/funkymuse/activity/ActivityUtils.kt

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ import android.view.View
1111
import android.view.WindowManager
1212

1313

14-
15-
1614
fun Activity.enableImmersiveMode() {
1715
val window = window
18-
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
16+
window.setFlags(
17+
WindowManager.LayoutParams.FLAG_FULLSCREEN,
18+
WindowManager.LayoutParams.FLAG_FULLSCREEN
19+
)
1920
window.decorView.setOnSystemUiVisibilityChangeListener { visibility ->
2021
if (visibility != 0)
2122
return@setOnSystemUiVisibilityChangeListener
@@ -82,7 +83,7 @@ var Activity.brightness: Float?
8283
set(value) {
8384
val window = this.window
8485
val layoutParams = window.attributes
85-
layoutParams?.screenBrightness = value //0 is turned off, 1 is full brightness
86+
layoutParams?.screenBrightness = value ?: 1f //0 is turned off, 1 is full brightness
8687
window?.attributes = layoutParams
8788
}
8889

@@ -91,28 +92,28 @@ var Activity.brightness: Float?
9192
fun initStrictMode() {
9293

9394
StrictMode.setThreadPolicy(
94-
StrictMode.ThreadPolicy.Builder()
95-
.detectCustomSlowCalls()
96-
.detectNetwork()
97-
.penaltyLog()
98-
.penaltyDeath()
99-
.build()
95+
StrictMode.ThreadPolicy.Builder()
96+
.detectCustomSlowCalls()
97+
.detectNetwork()
98+
.penaltyLog()
99+
.penaltyDeath()
100+
.build()
100101
)
101102

102103
StrictMode.setVmPolicy(
103-
StrictMode.VmPolicy.Builder()
104-
.apply {
105-
if (SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
106-
detectLeakedRegistrationObjects()
107-
if (SDK_INT >= Build.VERSION_CODES.M)
108-
detectCleartextNetwork()
109-
}
110-
.detectActivityLeaks()
111-
.detectLeakedClosableObjects()
112-
.detectLeakedSqlLiteObjects()
113-
.penaltyLog()
114-
.penaltyDeath()
115-
.build()
104+
StrictMode.VmPolicy.Builder()
105+
.apply {
106+
if (SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
107+
detectLeakedRegistrationObjects()
108+
if (SDK_INT >= Build.VERSION_CODES.M)
109+
detectCleartextNetwork()
110+
}
111+
.detectActivityLeaks()
112+
.detectLeakedClosableObjects()
113+
.detectLeakedSqlLiteObjects()
114+
.penaltyLog()
115+
.penaltyDeath()
116+
.build()
116117
)
117118
}
118119

animations/src/main/java/dev/funkymuse/animations/transition/TransitionExtensions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,6 @@ inline fun ViewGroup.transitionAuto(builder: AutoTransition.() -> Unit = {}) {
133133

134134
inline fun ViewGroup.transitionDelayed(@TransitionRes id: Int, builder: Transition.() -> Unit = {}) {
135135
val transition = TransitionInflater.from(context).inflateTransition(id)
136-
transition.builder()
136+
transition?.builder()
137137
TransitionManager.beginDelayedTransition(this, transition)
138138
}

build-logic/convention/src/main/kotlin/AppConventionPlugin.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class AppConventionPlugin : Plugin<Project> {
1919
apply(versionCatalog.getPluginId("ksp"))
2020
apply(versionCatalog.getPluginId("convention-compose-app"))
2121
apply(versionCatalog.getPluginId("spotless"))
22+
apply(versionCatalog.getPluginId("compose-compiler"))
2223
}
2324
configureKotlinOptions()
2425
extensions.configure<ApplicationExtension>{

build-logic/convention/src/main/kotlin/LibraryComposeConventionPlugin.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
import com.android.build.gradle.LibraryExtension
22
import dev.funkymuse.kahelpers.configureAndroidCompose
3+
import dev.funkymuse.kahelpers.getPluginId
4+
import dev.funkymuse.kahelpers.versionCatalog
35
import org.gradle.api.Plugin
46
import org.gradle.api.Project
57
import org.gradle.kotlin.dsl.getByType
68

79
class LibraryComposeConventionPlugin : Plugin<Project> {
810
override fun apply(target: Project) {
911
with(target) {
12+
with(pluginManager) {
13+
apply(versionCatalog.getPluginId("compose-compiler"))
14+
}
1015
val extension = extensions.getByType<LibraryExtension>()
1116
configureAndroidCompose(extension)
1217
}

build-logic/convention/src/main/kotlin/dev/funkymuse/kahelpers/AndroidCompose.kt

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.android.build.api.dsl.CommonExtension
44
import org.gradle.api.Project
55
import org.gradle.kotlin.dsl.dependencies
66
import org.gradle.kotlin.dsl.withType
7-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
87
import java.io.File
98

109
/**
@@ -17,15 +16,13 @@ internal fun Project.configureAndroidCompose(
1716
commonExtension.apply {
1817
buildFeatures.compose = true
1918

20-
composeOptions {
21-
kotlinCompilerExtensionVersion = libs.getVersion("composeCompiler")
22-
}
19+
tasks
20+
.withType<org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile>().configureEach {
21+
compilerOptions {
22+
freeCompilerArgs.addAll(buildComposeMetricsParameters())
23+
}
2324

24-
tasks.withType<KotlinCompile> {
25-
kotlinOptions {
26-
freeCompilerArgs = freeCompilerArgs + buildComposeMetricsParameters()
2725
}
28-
}
2926
dependencies {
3027
add(implementation, libs.getBundle("compose"))
3128
add(implementation, libs.getLibrary("kotlin-immutable-collections"))

build-logic/convention/src/main/kotlin/dev/funkymuse/kahelpers/ProjectExtensions.kt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,19 @@ fun LibraryExtension.addLibrariesConfig() {
3333

3434

3535
fun Project.configureKotlinOptions() {
36-
tasks.withType<KotlinCompile> {
37-
kotlinOptions.jvmTarget = versionCatalog.getVersion("app-build-kotlinJVMTarget")
38-
kotlinOptions.freeCompilerArgs = listOf(
39-
"-opt-in=kotlin.RequiresOptIn",
40-
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
41-
"-opt-in=kotlinx.coroutines.FlowPreview",
42-
"-Xcontext-receivers"
43-
)
44-
}
36+
tasks
37+
.withType<org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile>().configureEach {
38+
compilerOptions {
39+
freeCompilerArgs.addAll(
40+
listOf(
41+
"-opt-in=kotlin.RequiresOptIn",
42+
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
43+
"-opt-in=kotlinx.coroutines.FlowPreview",
44+
"-Xcontext-receivers"
45+
)
46+
)
47+
}
48+
}
4549
}
4650

4751
fun Project.configureJavaCompatibilityCompileOptions(commonExtensions: CommonExtension<*, *, *, *, *, *>) {

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ plugins {
1010
alias(libs.plugins.ksp).apply(false)
1111
alias(libs.plugins.test).apply(false)
1212
alias(libs.plugins.spotless).apply(false)
13+
alias(libs.plugins.compose.compiler).apply(false)
1314
alias(libs.plugins.dokka)
1415
}
1516

gradle/libs.versions.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ junitVersion = "1.1.5"
4141
kotlinReflect = "2.0.0"
4242
material = "1.12.0"
4343
kotlin = "2.0.0"
44-
ksp = "1.9.24-1.0.20"
44+
ksp = "2.0.0-1.0.21"
4545
kotlin-immutable-collections = "0.3.7"
4646
#Compose
4747
composeActivity = "1.9.0"
@@ -137,7 +137,6 @@ rxandroid = { module = "io.reactivex.rxjava3:rxandroid", version.ref = "rx" }
137137
rxkotlin = { module = "io.reactivex.rxjava3:rxkotlin", version.ref = "rx" }
138138
kotlin-immutable-collections = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlin-immutable-collections" }
139139
#Compose
140-
compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "composeCompiler" }
141140
compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" }
142141
compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "composeMaterial3" }
143142
compose-material-icons = { module = "androidx.compose.material:material-icons-extended", version.ref = "compose" }
@@ -160,7 +159,6 @@ testImplementation-runtime-jupiter-engine = { module = "org.junit.jupiter:junit-
160159
compose = [
161160
"compose-activity",
162161
"compose-animation",
163-
"compose-compiler",
164162
"compose-foundation",
165163
"compose-material-icons",
166164
"compose-material3",
@@ -212,6 +210,7 @@ kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
212210
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
213211
dokka = { id = "org.jetbrains.dokka", version.ref = "gradlePlugins-dokka" }
214212
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
213+
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
215214
convention-compose-app = { id = "convention.android.compose.app" }
216215
convention-compose-library = { id = "convention.android.compose.library" }
217216
convention-moshi = { id = "convention.android.moshi" }

0 commit comments

Comments
 (0)