diff --git a/README.md b/README.md index 1c651f2780..52f6cce5bd 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ > [!WARNING] > This branch contains major changes from the rebase of Launcher3, including breaking changes and refactors that can cause Lawnchair to break. > -> If you wish to contribute, read our [contributing guidelines](CONTRIBUTING.md). Note that this branch will undergo many changes as we slowly refactor our codebase, so the `16-dev` branch may be particularly unfriendly to new contributors. It is still possible to submit changes to `15-dev`, but new feature development will be focused on this branch. +> If you wish to contribute, read our [contributing guidelines](CONTRIBUTING.md). Note that this branch will undergo many changes as we slowly refactor our codebase, so the `16-dev` branch may be particularly unfriendly to new contributors. **It is now not possible to submit changes to `15-dev`, new feature development will be focused on this branch.** > > For regular users, we recommend staying on `15-dev` for stability purposes. diff --git a/build.gradle b/build.gradle index 72dec7282f..4a9f6bdbdf 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,6 @@ allprojects { generateProtoTasks { all().configureEach { task -> task.builtins { - remove java java { option "lite" } @@ -84,15 +83,6 @@ allprojects { } } - configurations.configureEach { - resolutionStrategy.eachDependency { - // Fix duplicate class kotlinx.android.parcel.* found in these 2 dependencies. - if (requested.module == libs.kotlin.androidExtensionRuntime.get().module) { - useTarget(libs.kotlin.parcelizeRuntime) - } - } - } - ext { FRAMEWORK_PREBUILTS_DIR = "$rootDir/prebuilts/libs" @@ -314,7 +304,7 @@ android { // Lawnchair-TODO: Don't include Compose Disabled, but there's has to be another way of making this NOT long java.srcDirs = ['src', 'src_plugins', 'compose/facade/core', 'compose/facade/enabled', 'compose/features'] - kotlin.srcDirs = ['src', 'src_plugins', 'compose/facade/core', 'compose/facade/enabled', 'compose/features'] + kotlin.directories.addAll('src', 'src_plugins', 'compose/facade/core', 'compose/facade/enabled', 'compose/features') manifest.srcFile 'AndroidManifest-common.xml' proto { @@ -324,7 +314,7 @@ android { lawn { java.srcDirs = ['src_flags', 'src_shortcuts_overrides', 'lawnchair/src', 'tests/shared'] - kotlin.srcDirs = ['src_flags', 'src_shortcuts_overrides', 'lawnchair/src', 'tests/shared'] + kotlin.directories.addAll('src_flags', 'src_shortcuts_overrides', 'lawnchair/src', 'tests/shared') aidl.srcDirs = ['lawnchair/aidl'] res.srcDirs = ['lawnchair/res', 'platform_frameworks_libs_systemui/animationlib/res'] manifest.srcFile "lawnchair/AndroidManifest.xml" @@ -359,7 +349,7 @@ android { withQuickstep { res.srcDirs = ['quickstep/res', 'quickstep/recents_ui_overrides/res'] java.srcDirs = ['quickstep/src', 'quickstep/dagger', 'quickstep/recents_ui_overrides/src', 'quickstep/src_protolog'] - kotlin.srcDirs = ['quickstep/src', 'quickstep/dagger', 'quickstep/recents_ui_overrides/src', 'quickstep/src_protolog'] + kotlin.directories.addAll('quickstep/src', 'quickstep/dagger', 'quickstep/recents_ui_overrides/src', 'quickstep/src_protolog') manifest.srcFile "quickstep/AndroidManifest.xml" } } @@ -508,7 +498,7 @@ spotless { } kotlin { target("lawnchair/src/**/*.kt") - ktlint("1.8.0").customRuleSets([ + ktlint(libs.ktlint.get().version).customRuleSets([ libs.composeRules.get().toString() ]).editorConfigOverride([ "ktlint_compose_compositionlocal-allowlist": "disabled", diff --git a/concurrent/build.gradle b/concurrent/build.gradle index 4915c3a3eb..8f609de711 100644 --- a/concurrent/build.gradle +++ b/concurrent/build.gradle @@ -8,7 +8,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') } } } diff --git a/flags/build.gradle b/flags/build.gradle index 7cdb8f89b7..932b6889b1 100644 --- a/flags/build.gradle +++ b/flags/build.gradle @@ -7,7 +7,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') } } } diff --git a/gradle.properties b/gradle.properties index e3126b5582..442bf4bd0b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,13 +1,10 @@ -# Improve build performance by enabling R8 parallelism. -android.r8.maxWorkers=4 - kotlin.code.style=official org.gradle.caching=true -org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8 -XX:+UseParallelGC +org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.configuration-cache=true org.gradle.configuration-cache.parallel=true -# Lawnchair-TODO(Cleanup): Remove these flags once all configuration and plugins support DSL +# TODO: https://github.com/LawnchairLauncher/lawnchair/pull/6277 android.newDsl=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bad925266d..1cef9de297 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ androidx-room = "2.8.4" androidx-lifecycle = "2.10.0" accompanist = "0.37.3" opto = "1.0.18" -protobuf = "4.33.4" +protobuf = "4.33.5" retrofit = "3.0.0" dagger = "2.59" libsu = "6.0.0" @@ -16,7 +16,7 @@ refine = "4.4.0" guava = "33.5.0-android" junitVersion = "4.13.2" mockito = "5.21.0" -mockitoKotlin = "5.4.0" +mockitoKotlin = "6.2.3" truth = "1.4.5" testRules = "1.7.0" testRunner = "1.7.0" @@ -38,7 +38,7 @@ diffplug-spotless = "com.diffplug.spotless:8.2.1" [libraries] # AndroidX -androidx-activity-compose = "androidx.activity:activity-compose:1.12.2" +androidx-activity-compose = "androidx.activity:activity-compose:1.12.3" androidx-benchmark-macro-junit4 = "androidx.benchmark:benchmark-macro-junit4:1.4.1" androidx-concurrent-futures = "androidx.concurrent:concurrent-futures:1.3.0" androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.2.1" @@ -53,7 +53,7 @@ androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.1.0" androidx-junit = "androidx.test.ext:junit:1.3.0" androidx-lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "androidx-lifecycle" } androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" } -androidx-navigation-compose = "androidx.navigation:navigation-compose:2.9.6" +androidx-navigation-compose = "androidx.navigation:navigation-compose:2.9.7" androidx-palette-ktx = "androidx.palette:palette-ktx:1.0.0" androidx-preference-ktx = "androidx.preference:preference-ktx:1.2.1" androidx-profileinstaller = "androidx.profileinstaller:profileinstaller:1.4.1" @@ -65,11 +65,11 @@ androidx-uiautomator = "androidx.test.uiautomator:uiautomator:2.3.0" androidx-window = "androidx.window:window:1.5.1" # Compose -compose-bom = "androidx.compose:compose-bom:2026.01.00" +compose-bom = "androidx.compose:compose-bom:2026.01.01" compose-foundation = { module = "androidx.compose.foundation:foundation" } compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" } compose-material-icons = "androidx.compose.material:material-icons-extended:1.7.8" -compose-material3 = "androidx.compose.material3:material3:1.5.0-alpha12" +compose-material3 = "androidx.compose.material3:material3:1.5.0-alpha13" compose-material3-windowSizeClass = { module = "androidx.compose.material3:material3-window-size-class" } compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } compose-ui = { module = "androidx.compose.ui:ui" } @@ -108,10 +108,6 @@ room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "androidx-room" } room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "androidx-room" } -# Kotlin -kotlin-androidExtensionRuntime = { module = "org.jetbrains.kotlin:kotlin-android-extensions-runtime", version.ref = "kotlin" } -kotlin-parcelizeRuntime = { module = "org.jetbrains.kotlin:kotlin-parcelize-runtime", version.ref = "kotlin" } -kotlin-stdlib-jdk7 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk7", version.ref = "kotlin" } # KotlinX kotlinx-coroutines-android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2" kotlinx-coroutines-test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2" @@ -143,6 +139,8 @@ rikka-refine-runtime = { group = "dev.rikka.tools.refine", name = "runtime", ver smartspacer-sdk = "com.kieronquinn.smartspacer:sdk-client:1.1.2" xdrop-fuzzywuzzy = "me.xdrop:fuzzywuzzy:1.4.0" errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.46.0" +# Dummy to get renovate updates, the version is used in rootProject build.gradle with spotless. +ktlint = "com.pinterest.ktlint:ktlint-cli:1.8.0" composeRules = "io.nlopez.compose.rules:ktlint:0.5.3" google-guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } @@ -152,7 +150,7 @@ junit = { group = "junit", name = "junit", version.ref = "junitVersion" } mockito-kotlin = { group = "org.mockito.kotlin", name = "mockito-kotlin", version.ref = "mockitoKotlin" } mockito-robolectric = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" } mockito-robolectric-bytebuddy = "net.bytebuddy:byte-buddy:1.18.4" -mockito-robolectric-bytebuddy-agent = "net.bytebuddy:byte-buddy-agent:1.15.11" +mockito-robolectric-bytebuddy-agent = "net.bytebuddy:byte-buddy-agent:1.18.4" [bundles] accompanist = ["accompanist-adaptive", "accompanist-drawablepainter", "accompanist-permissions"] diff --git a/modules/widgetpicker/build.gradle.kts b/modules/widgetpicker/build.gradle.kts index ebef90e46a..5dcd1fcb42 100644 --- a/modules/widgetpicker/build.gradle.kts +++ b/modules/widgetpicker/build.gradle.kts @@ -32,28 +32,32 @@ android { } sourceSets { named("main") { - java.srcDirs("src") - kotlin.srcDirs("src") + java.directories.add("src") + kotlin.directories.add("src") manifest.srcFile("AndroidManifest.xml") - res.srcDirs("res") + res.directories.add("res") } named("androidTest") { - java.srcDirs( - "tests/multivalentScreenshotTests/src", - "tests/multivalentTestsForDevice/src", + java.directories.addAll( + listOf( + "tests/multivalentScreenshotTests/src", + "tests/multivalentTestsForDevice/src", + ) ) - kotlin.srcDirs( - "tests/multivalentScreenshotTests/src", - "tests/multivalentTestsForDevice/src", + kotlin.directories.addAll( + listOf( + "tests/multivalentScreenshotTests/src", + "tests/multivalentTestsForDevice/src", + ) ) manifest.srcFile("tests/AndroidManifest.xml") } named("test") { - java.srcDirs("tests/multivalentTests/src") - kotlin.srcDirs("tests/multivalentTests/src") - resources.srcDirs("tests/config") + java.directories.add("tests/multivalentTests/src") + kotlin.directories.add("tests/multivalentTests/src") + resources.directories.add("tests/config") manifest.srcFile("tests/AndroidManifest.xml") - res.srcDirs("tests/multivalentScreenshotTests/res") + res.directories.add("tests/multivalentScreenshotTests/res") } } diff --git a/platform_frameworks_libs_systemui b/platform_frameworks_libs_systemui index 2fa2fca4ca..4104075a35 160000 --- a/platform_frameworks_libs_systemui +++ b/platform_frameworks_libs_systemui @@ -1 +1 @@ -Subproject commit 2fa2fca4caa1d5979244b7653d8db01e52e382af +Subproject commit 4104075a356b02f71c9cbc3aa16e68435387c570 diff --git a/systemUI/animation/build.gradle b/systemUI/animation/build.gradle index 4384397681..34123c04ec 100644 --- a/systemUI/animation/build.gradle +++ b/systemUI/animation/build.gradle @@ -12,7 +12,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') aidl.srcDirs = ['src'] manifest.srcFile 'AndroidManifest.xml' res.srcDirs = ['res'] diff --git a/systemUI/common/build.gradle b/systemUI/common/build.gradle index fcce98a345..5b4deda4ef 100644 --- a/systemUI/common/build.gradle +++ b/systemUI/common/build.gradle @@ -9,7 +9,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') manifest.srcFile 'AndroidManifest.xml' } } diff --git a/systemUI/log/build.gradle b/systemUI/log/build.gradle index 246ee5091d..544e845eb0 100644 --- a/systemUI/log/build.gradle +++ b/systemUI/log/build.gradle @@ -11,7 +11,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') aidl.srcDirs = ['src'] manifest.srcFile 'AndroidManifest.xml' } diff --git a/systemUI/plugin/build.gradle b/systemUI/plugin/build.gradle index 5184827eae..fc3a7daf44 100644 --- a/systemUI/plugin/build.gradle +++ b/systemUI/plugin/build.gradle @@ -11,7 +11,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') aidl.srcDirs = ['src'] manifest.srcFile 'AndroidManifest.xml' res.srcDirs = ['res'] diff --git a/systemUI/plugin_core/build.gradle b/systemUI/plugin_core/build.gradle index 625f8f955c..87d7d1dc42 100644 --- a/systemUI/plugin_core/build.gradle +++ b/systemUI/plugin_core/build.gradle @@ -11,7 +11,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') aidl.srcDirs = ['src'] manifest.srcFile 'AndroidManifest.xml' } diff --git a/systemUI/shared/build.gradle b/systemUI/shared/build.gradle index 65308fffa9..cb35face3b 100644 --- a/systemUI/shared/build.gradle +++ b/systemUI/shared/build.gradle @@ -12,7 +12,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') aidl.srcDirs = ['src'] manifest.srcFile 'AndroidManifest.xml' res.srcDirs = ['res'] diff --git a/systemUI/unfold/build.gradle b/systemUI/unfold/build.gradle index 61c70475f5..b9a00a222a 100644 --- a/systemUI/unfold/build.gradle +++ b/systemUI/unfold/build.gradle @@ -12,7 +12,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') aidl.srcDirs = ['src'] } } diff --git a/systemUI/utils/build.gradle b/systemUI/utils/build.gradle index 02183ba0d9..fb53a944fc 100644 --- a/systemUI/utils/build.gradle +++ b/systemUI/utils/build.gradle @@ -8,7 +8,7 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') } } } diff --git a/systemUI/viewcapture/build.gradle b/systemUI/viewcapture/build.gradle index 0ae6b877f3..a7cc597d4e 100644 --- a/systemUI/viewcapture/build.gradle +++ b/systemUI/viewcapture/build.gradle @@ -13,13 +13,13 @@ android { sourceSets { main { java.srcDirs = ['src'] - kotlin.srcDirs = ['src'] + kotlin.directories.add('src') manifest.srcFile 'AndroidManifest.xml' proto.srcDirs = ['src'] } androidTest { java.srcDirs = ["tests"] - kotlin.srcDirs = ['tests'] + kotlin.directories.add('tests') manifest.srcFile "tests/AndroidManifest.xml" } } diff --git a/wmshell/build.gradle b/wmshell/build.gradle index 343038a739..83d3929d67 100644 --- a/wmshell/build.gradle +++ b/wmshell/build.gradle @@ -12,7 +12,7 @@ android { sourceSets { main { java.srcDirs = ['shared/src'] - kotlin.srcDirs = ['shared/src'] + kotlin.directories.add('shared/src') aidl.srcDirs = ['shared/src'] manifest.srcFile 'AndroidManifest.xml' res.srcDirs = ['shared', 'shared/res']