Steps: add Bluetooth, SIM-missing, Date/Time, Restore (auto-skip),
Location, microG, Screen-lock, Biometric, Navigation, Theme,
Privacy/Metrics, Device-specific, Recovery-update, and an OTA
update-check step, all on a shared WizardStepScaffold with DeviceProfile
gating. PartnerReceiver + SETUP_COMPLETE broadcast added.
microG: gate the step on microG's GmsCore being installed
(microGAvailable) rather than hasGMS(), which additionally requires
Google's setup wizard and is therefore always false on a microG build.
OTA: UpdateChecker mirrors the Updater's read-only check (server URL from
the Updater's own resources, same version/timestamp/release-type rules)
and delegates download + A/B install to the Updater (update_engine). Props
are read via reflection so the module still builds under Gradle.
Kiosk + deep links gated off via WizardFlags (immersive skipped entirely,
oxmc http/oxn VIEW filters removed from both manifests). Permissions gate
removed (platform-signed SETUP_WIZARD already holds what it needs).
Cleanup: purge Applebee's-mockup code (login/AuthManager, oxmcservers,
ManagerInfo/UserInfo, TemperatureUnit, SettingsScreen, weather + oxmc API
strings). Rework theme off the all-purple palette to neutral surfaces with
violet/pink/teal accents; fix white-on-primary button contrast.
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