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
73 lines
1.9 KiB
Plaintext
73 lines
1.9 KiB
Plaintext
// SPDX-FileCopyrightText: The PawletOS Project
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
android_library_import {
|
|
name: "android-device-info",
|
|
aars: ["app/libs/android-device-info.aar"],
|
|
sdk_version: "current",
|
|
}
|
|
|
|
android_app {
|
|
name: "PawletSetupWizard",
|
|
|
|
srcs: ["app/src/main/java/**/*.kt"],
|
|
|
|
resource_dirs: ["app/src/main/res"],
|
|
|
|
manifest: "AndroidManifest.xml",
|
|
|
|
kotlincflags: ["-Xjvm-default=all"],
|
|
|
|
certificate: "platform",
|
|
privileged: true,
|
|
privapp_allowlist: "me.pawlet.setupwizard.xml",
|
|
system_ext_specific: true,
|
|
platform_apis: true,
|
|
|
|
overrides: ["Provision"],
|
|
|
|
optimize: {
|
|
proguard_flags_files: ["proguard.flags"],
|
|
},
|
|
|
|
static_libs: [
|
|
// AndroidX core
|
|
"androidx.core_core-ktx",
|
|
"androidx.appcompat_appcompat",
|
|
"androidx.activity_activity",
|
|
"androidx.activity_activity-compose",
|
|
"androidx.lifecycle_lifecycle-runtime-ktx",
|
|
"androidx.core_core-splashscreen",
|
|
|
|
// Compose runtime + UI
|
|
"androidx.compose.runtime_runtime",
|
|
"androidx.compose.ui_ui",
|
|
"androidx.compose.ui_ui-graphics",
|
|
"androidx.compose.foundation_foundation",
|
|
|
|
// Material3 + icons
|
|
"androidx.compose.material3_material3",
|
|
"androidx.compose.material_material-icons-extended",
|
|
|
|
// Compose animation
|
|
"androidx.compose.animation_animation",
|
|
|
|
// JSON
|
|
"gson",
|
|
|
|
// PawletOS platform APIs
|
|
"pawlet-system",
|
|
|
|
// Telephony helpers
|
|
"telephony-common",
|
|
|
|
// Device info library (local prebuilt)
|
|
"android-device-info",
|
|
],
|
|
|
|
// 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
|
|
}
|