coil-network-okhttp / coil-core declare okhttp3 and okio as static_libs,
but that transitive link (java_import jars through the Coil AAR imports)
does not reach this app's R8 program, so R8 reported okhttp3.*/okio.* as
missing and Coil's OkHttp fetcher would NoClassDefFoundError when loading
network images (device render from deviceInfo[4]). List okhttp3 and okio
directly in static_libs so their classes are in the dex.
The tree pins prebuilt_libs_coil at 3.5.0 (coil3.* packages); move the
three image-loading screens to coil3.compose and add coil-network-okhttp
— Coil 3 core ships no network fetcher, so http(s) image URLs need it
(it self-registers through ServiceLoader). Gradle catalog bumped to the
matching io.coil-kt.coil3 coordinates.
- 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.
Replaces the LineageOS-based Java wizard with a new Kotlin/Jetpack
Compose wizard built on the PawletOS design language.
Key changes:
- Extensible WizardPage registry with DeviceProfile-based gating
(phone/tablet/embedded form factors, hasWifi, hasTelephony)
- SetupWizardManager drives navigation via StateFlow<Int> over
a runtime-built page list; supports oxn://page?id= deep link jumps
- Circular-reveal collapse animation on finish (900ms, matches
LineageOS FinishActivity behaviour) via Compose drawWithContent/clipPath
- finishSetupWizard() sets DEVICE_PROVISIONED + USER_SETUP_COMPLETE
and disables the HOME component on completion
- EntryPoint registered with CATEGORY_HOME + CATEGORY_SETUP_WIZARD
so AOSP launches the wizard on first boot
- Deep link handling: cdn.oxmc.me / oxmc.me / pawlet.oxmc.me (http/https)
and oxn:// scheme (apk install, page navigation, management)
- Full package rename: dev.oxmc.setupwizard -> me.pawlet.setupwizard
- Dual build system: Gradle (app/build.gradle.kts) for Studio development,
Android.bp + root AndroidManifest.xml for AOSP/Soong ROM build
- Signed with platform certificate, system_ext, sharedUserId=android.uid.system