android-16.0
Lets a product-specific RRO redirect a top-level customization option to launch a different app/Intent entirely instead of PawletOS's own built-in page (Step 1's real scoped-preview pages), without this module needing to know about any OEM's app ahead of time. OemOptionOverride reads config_override_component_<OPTION_NAME> (see res/values/pawlet_oem_overrides.xml, all empty by default -- every option keeps exactly its Step-1 behavior until an OEM sets one). Option names are read reflectively off the option's own enum name rather than a compile-time import, since WallpaperPicker2Lib is a dependency *of* ThemePicker (which owns the concrete option enums), not the reverse -- any future OEM-added option works automatically. Wired into CustomizationPickerFragment2's single navigateToSecondary callback: an override short-circuits to an explicit Intent launch instead of either the built-in page or (for options ThemePicker wires externally, see companion change there) the stock external activity. Only covers the 5 options actually dispatched through navigateToSecondary in this module (Clock, Shortcuts, Colors, App icons, Grid); the other 5 (Lock screen notifications, More lock screen settings, Screensaver, Pack theme, Color contrast) are wired directly in ThemePicker's own ThemePickerCustomizationOptionBinder.kt and need the companion change there to actually take effect -- their resource keys are declared here already so the names are stable. Confirmed live on pawlet_rpi4 (2026-10-18): no behavior change with the (default, empty) overrides -- Colors/Icons still open as Step-1 pages, Color contrast still launches the real external activity, no crashes navigating either path.
Description
No description provided
28 MiB
Languages
Kotlin
68.4%
Java
31.6%