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
40 lines
2.2 KiB
TOML
40 lines
2.2 KiB
TOML
[versions]
|
|
agp = "9.0.1"
|
|
kotlin = "2.2.10"
|
|
coreKtx = "1.17.0"
|
|
lifecycleRuntimeKtx = "2.6.1"
|
|
activityCompose = "1.8.0"
|
|
composeBom = "2024.09.00"
|
|
coil = "2.7.0"
|
|
okhttp = "4.12.0"
|
|
splashscreen = "1.0.1"
|
|
gson = "2.11.0"
|
|
material = "1.9.0"
|
|
appcompat = "1.7.0"
|
|
animation = "1.10.3"
|
|
|
|
[libraries]
|
|
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
|
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
|
|
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
|
|
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
|
|
androidx-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" }
|
|
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
|
|
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
|
|
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
|
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
|
|
androidx-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
|
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
|
|
|
coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" }
|
|
coil-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" }
|
|
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
|
|
okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" }
|
|
androidx-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "splashscreen" }
|
|
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
|
|
androidx-compose-animation = { group = "androidx.compose.animation", name = "animation", version.ref = "animation" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
|
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } |