fix: Module bugs

This commit is contained in:
Pun Butrach
2025-11-17 20:53:41 +07:00
parent dafe6fbd90
commit ba6a8df5fc
4 changed files with 50 additions and 46 deletions

View File

@@ -319,7 +319,7 @@ android {
sourceSets {
main {
res.srcDirs = ['res']
java.srcDirs = ['src', 'src_plugins']
java.srcDirs = ['src', 'src_plugins', 'compose']
manifest.srcFile 'AndroidManifest-common.xml'
proto {
srcDirs = ['protos/', 'quickstep/protos_overrides/']
@@ -408,6 +408,8 @@ dependencies {
withQuickstepImplementation projects.flags
withQuickstepImplementation projects.dagger
withQuickstepImplementation projects.concurrent
// withQuickstepImplementation projects.compose
withQuickstepImplementation projects.modules.widgetpicker
implementation libs.androidx.dynamicanimation
implementation fileTree(dir: FRAMEWORK_PREBUILTS_DIR, include: 'SystemUI-statsd-16.jar')

View File

@@ -10,10 +10,16 @@ coreKtx = "1.17.0"
error_prone_annotations = "2.44.0"
espressoCore = "3.7.0"
junit = "1.3.0"
junitVersion = "4.13.2"
mockito = "5.14.2"
mockitoKotlin = "5.4.0"
opto = "1.0.18"
protocVersion = "4.33.1"
retrofit = "3.0.0"
room = "2.8.3"
testRules = "1.7.0"
testRunner = "1.7.0"
truth = "1.4.5"
activityCompose = "1.11.0"
airbnbLottie = "6.7.1"
@@ -106,25 +112,33 @@ androidx-preference-ktx = { group = "androidx.preference", name = "preference-kt
androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profileinstaller", version.ref = "profileinstaller" }
androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
androidx-slice-core = { group = "androidx.slice", name = "slice-core", version.ref = "slice" }
androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "testRules" }
androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "testRunner" }
androidx-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "uiautomator" }
androidx-window = { group = "androidx.window", name = "window", version.ref = "window" }
# Compose
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose" }
compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout", version.ref = "compose" }
compose-material = { group = "androidx.compose.material", name = "material", version.ref = "composeMaterial" }
compose-material-icons = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "composeMaterialIcons" }
compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "composeMaterial3" }
compose-material3-windowSizeClass = { group = "androidx.compose.material3", name = "material3-window-size-class", version.ref = "composeMaterial3" }
compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "compose" }
compose-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata", version.ref = "compose" }
compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" }
compose-ui-google-fonts = { group = "androidx.compose.ui", name = "ui-text-google-fonts", version.ref = "compose" }
compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics", version.ref = "compose"}
compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4", version.ref = "compose" }
compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest", version.ref = "compose" }
compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "compose" }
compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview", version.ref = "compose" }
compose-ui-util = { group = "androidx.compose.ui", name = "ui-util", version.ref = "compose" }
dagger = { group = "com.google.dagger", name = "dagger", version.ref = "dagger" }
dagger-compiler = { group = "com.google.dagger", name = "dagger-compiler", version.ref = "dagger" }
dagger-android-processor = { group = "com.google.dagger", name = "dagger-android-processor", version.ref = "dagger" }
dagger-hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "dagger" }
dagger-hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "dagger" }
@@ -155,6 +169,7 @@ kotlin-parcelizeRuntime = { module = "org.jetbrains.kotlin:kotlin-parcelize-runt
kotlin-stdlib-jdk7 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk7", version.ref = "kotlin" }
# KotlinX
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
# Other
@@ -164,7 +179,14 @@ chickenhook-restrictionbypass = { group = "com.github.ChickenHook", name = "Rest
coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" }
google-errorprone-annotations = { module = "com.google.errorprone:error_prone_annotations", version.ref = "error_prone_annotations" }
google-material = { group = "com.google.android.material", name = "material", version.ref = "googleMaterial" }
google-truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }
hoko-blur = { group = "io.github.hokofly", name = "hoko-blur", version.ref = "hokoBlur" }
junit = { group = "junit", name = "junit", version.ref = "junitVersion" }
mockito-android = { group = "org.mockito", name = "mockito-android", version.ref = "mockito" }
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 = { group = "net.bytebuddy", name = "byte-buddy", version = "1.15.11" }
mockito-robolectric-bytebuddy-agent = { group = "net.bytebuddy", name = "byte-buddy-agent", version = "1.15.11" }
javax-inject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" }
kdrag0n-colorkt = { group = "dev.kdrag0n", name = "colorkt", version.ref = "kdrag0nColorkt" }
leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanaryAndroid" }

View File

@@ -15,19 +15,12 @@
*/
plugins {
id(libs.plugins.android.library.get().pluginId)
id(libs.plugins.kotlin.android.get().pluginId)
id(libs.plugins.kotlin.kapt.get().pluginId)
id(libs.plugins.compose.compiler.get().pluginId)
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.google.ksp)
alias(libs.plugins.kotlin.compose)
}
// For the screenshot testing lib dependencies
apply<ResourceFixerPlugin>()
val androidTop = extra["ANDROID_TOP"].toString()
val robolibBuildDir = project(":RobolectricLib").layout.buildDirectory.toString()
val widgetPickerDir = "$androidTop/packages/apps/Launcher3/modules/widgetpicker"
android.buildFeatures.compose = true
android {
@@ -39,32 +32,24 @@ android {
}
sourceSets {
named("main") {
java.setSrcDirs(listOf("$widgetPickerDir/src"))
manifest.srcFile("$widgetPickerDir/AndroidManifest.xml")
res.setSrcDirs(listOf("$widgetPickerDir/res"))
java.setSrcDirs(listOf("src"))
manifest.srcFile("AndroidManifest.xml")
res.setSrcDirs(listOf("res"))
}
named("androidTest") {
java.setSrcDirs(
listOf(
"$widgetPickerDir/tests/multivalentScreenshotTests/src",
"$widgetPickerDir/tests/multivalentTestsForDevice/src",
"tests/multivalentScreenshotTests/src",
"tests/multivalentTestsForDevice/src",
)
)
manifest.srcFile("$widgetPickerDir/tests/AndroidManifest.xml")
manifest.srcFile("tests/AndroidManifest.xml")
}
named("test") {
java.setSrcDirs(listOf("$widgetPickerDir/tests/multivalentTests/src"))
resources.setSrcDirs(listOf("$widgetPickerDir/tests/config"))
manifest.srcFile("$widgetPickerDir/tests/AndroidManifest.xml")
res.setSrcDirs(listOf("$widgetPickerDir/tests/multivalentScreenshotTests/res"))
}
}
signingConfigs {
getByName("debug") {
// This is necessary or the private APIs from the studiow-generate SDK won't work.
// Without the platform keystore, it will crash with:
// "java.lang.NoSuchMethodError: No static method asyncTraceForTrackBegin"
storeFile = file("$androidTop/vendor/google/certs/devkeys/platform.keystore")
java.setSrcDirs(listOf("tests/multivalentTests/src"))
resources.setSrcDirs(listOf("tests/config"))
manifest.srcFile("tests/AndroidManifest.xml")
res.setSrcDirs(listOf("tests/multivalentScreenshotTests/res"))
}
}
@@ -80,8 +65,8 @@ android {
dependencies {
implementation(libs.androidx.core)
implementation(libs.dagger)
kapt(libs.dagger.compiler)
kapt(libs.dagger.android.processor)
ksp(libs.dagger.compiler)
ksp(libs.dagger.android.processor)
// Compose UI dependencies
implementation(libs.compose.ui)
@@ -91,11 +76,11 @@ dependencies {
implementation(libs.androidx.activity.compose)
// Other UI dependencies
implementation(libs.androidx.material3.window.size.cls)
implementation(libs.compose.material3.windowSizeClass)
implementation(libs.androidx.window)
// Compose android studio preview support
implementation(libs.compose.material.icons.extended)
implementation(libs.compose.material.icons)
implementation(libs.compose.ui.tooling.preview)
debugImplementation(libs.compose.ui.tooling)
@@ -120,16 +105,6 @@ dependencies {
androidTestApi(libs.compose.ui.test.junit4)
debugApi(libs.compose.ui.test.manifest)
// Shared testing libs
testImplementation(project(":RobolectricLib"))
testImplementation(project(":SharedTestLib"))
androidTestImplementation(project(":SharedTestLib"))
androidTestImplementation(project(":PlatformParameterizedLib"))
androidTestImplementation(project(":ScreenshotLib"))
androidTestImplementation(project(":ScreenshotComposeLib"))
}
// Work around for kotlin bug with symlinked source: http://b/316363701
tasks.matching { it.name.matches(Regex("widgetpicker.*compile.*TestKotlin")) }.configureEach {
inputs.dir("$widgetPickerDir/tests/multivalentTests/src")
implementation(projects.concurrent)
implementation(projects.dagger)
}

View File

@@ -28,6 +28,8 @@ develocity {
}
}
rootProject.name = "lawnchair"
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
@@ -107,3 +109,6 @@ include ':flags'
include ':wmshell'
include ':dagger'
include ':concurrent'
//include ':compose'
include ':modules:widgetpicker'