Fix the Soong build: restore library wiring, fix API 36 skew

- Android.bp: android-device-info is used by the wizard source (b11cf5b
  dropped it in error); re-add its android_library_import plus the
  core-splashscreen and coil-compose imports from
  prebuilts/application_libs, and a Soong-only BuildConfig stub under
  soong-stubs/ (Gradle generates its own, so the stub stays out of the
  Gradle source set).
- onNewIntent takes a non-null Intent on API 36.
- Region/Locale wizard pages pass a value-discarding lambda; the wizard
  only advances.
- SetupCompleteScreen: drawContent() needs the explicit drawWithContent
  receiver inside clipPath after the Compose receiver-scoping change.
This commit is contained in:
oxmc
2026-07-15 15:45:05 -07:00
parent 0caf9c7ef2
commit f7f9adbc01
5 changed files with 35 additions and 10 deletions
+15 -6
View File
@@ -4,7 +4,11 @@
android_app {
name: "PawletSetupWizard",
srcs: ["app/src/main/java/**/*.kt"],
srcs: [
"app/src/main/java/**/*.kt",
// Soong-only BuildConfig stand-in (Gradle generates its own).
"soong-stubs/**/*.kt",
],
resource_dirs: ["app/src/main/res"],
@@ -31,6 +35,7 @@ android_app {
"androidx.activity_activity",
"androidx.activity_activity-compose",
"androidx.lifecycle_lifecycle-runtime-ktx",
"androidx.core_core-splashscreen",
// Compose runtime + UI
"androidx.compose.runtime_runtime",
@@ -53,10 +58,14 @@ android_app {
// Telephony helpers
"telephony-common",
],
// OkHttp and Coil are not available as AOSP static_libs.
// Add them as android_library_import entries pointing to AARs in app/libs/
// once prebuilts are sourced from the Gradle dependency cache.
// See: https://git.oxmc.me/PawletOS/android_packages_apps_SetupWizard
// Device info library — source android_library from
// external/application_libs/AndroidDeviceInfo (the app/libs/ AAR is
// Gradle-only; defining an import here would collide with that module)
"android-device-info",
// Images — prebuilts/application_libs/coil (pulls okhttp3/okio/
// coroutines transitively via the import's static_libs)
"coil-compose",
],
}
@@ -76,7 +76,7 @@ class EntryPoint : BaseKioskActivity() {
}
}
override fun onNewIntent(intent: Intent?) {
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
uriHandler.handleIntent(intent)
}
@@ -21,14 +21,15 @@ fun buildBuiltinPages(
id = "region",
order = 10,
content = { onNext, onBack ->
RegionSelectionScreen(onBack = onBack, onContinue = onNext)
// The screen persists the chosen region itself; the wizard only advances.
RegionSelectionScreen(onBack = onBack, onContinue = { onNext() })
}
),
WizardPage(
id = "locale",
order = 20,
content = { onNext, onBack ->
LocaleSelectionScreen(onBack = onBack, onContinue = onNext)
LocaleSelectionScreen(onBack = onBack, onContinue = { onNext() })
}
),
WizardPage(
@@ -87,7 +87,7 @@ fun SetupCompleteScreen(
)
)
}
clipPath(path) { drawContent() }
clipPath(path) { this@drawWithContent.drawContent() }
}
) {
Surface(
@@ -0,0 +1,15 @@
// SPDX-FileCopyrightText: The PawletOS Project
// SPDX-License-Identifier: Apache-2.0
//
// Soong-only stand-in for the Gradle-generated BuildConfig. This directory is
// listed in Android.bp srcs but is NOT part of the Gradle source set, so the
// two build systems never both define the class.
package me.pawlet.setupwizard
object BuildConfig {
const val DEBUG = false
const val APPLICATION_ID = "me.pawlet.setupwizard"
const val BUILD_TYPE = "release"
const val VERSION_CODE = 1
const val VERSION_NAME = "1.0.0"
}