Overview › Android Version & Form-Factor Readiness

Android Version & Form-Factor Readiness

Detailed static-analysis report for android version & form-factor readiness.

Source: codebase scan · 2026-05-07

Executive summary

The app declares compileSdk 36 / minSdk 31 / targetSdk 36 — modern. But targeting SDK 36 means Android 15 / Android 16-preview behavior changes apply, and several are not yet handled: edge-to-edge enforcement, Android 12 SplashScreen API migration, photo picker. Notification permission (Android 13) and foreground-service types (Android 14) are handled. Form-factor readiness is poor: legacy sw600dp dimensions only, no WindowSizeClass, no Wear/Auto/TV/Chromebook variants.

Android 12-15+ behavior change matrix

VersionChangeStatusEvidence
12 (31)Splash Screen API (SplashScreenView)NOT MIGRATEDCustom Lottie-based splash in feature/splash; no androidx.core:core-splashscreen
12 (31)Notification trampoline restrictionCONFIRMVerify push handlers don't trampoline through services
13 (33)Themed app icons (monochrome)HANDLEDfeature/productdetaillanding/.../mipmap-anydpi-v26/ic_launcher.xml with <monochrome>
13 (33)POST_NOTIFICATIONS runtime permissionHANDLEDManifest declared + UI in feature/onboarding/.../NotificationPermissionComponent.kt
13 (33)Photo Picker (PickVisualMedia)NOT FOUNDStill using legacy storage permissions for media access
13 (33)Per-app language preferencesNOT FOUNDNo LocaleManager.setApplicationLocales usage
14 (34)Foreground service typesHANDLEDshared/geofence/src/main/AndroidManifest.xml line 9 — foregroundServiceType="location"
14 (34)RECEIVER_EXPORTED / NOT_EXPORTED on dynamic registersNEEDS AUDITregisterReceiver in FindAStoreFragment.java — no explicit flag
14 (34)Selected Photos AccessNEEDS AUDITConfirm partial-access UX where applicable
14 (34)CredentialManager / PasskeyHANDLEDandroidx.credentials + NokNok FIDO2 in shared/auth/.../AuthenticatorUtilImpl.kt
15 (35)Edge-to-edge enforced for targetSdk 35+MISSINGNo enableEdgeToEdge() calls. With targetSdk 36, this WILL break system-bar overlap
15 (35)Predictive back gestureHANDLEDOnBackPressedCallback usage in MainActivity.java + OnboardingActivity.kt
16 (36)16 KB native page sizeCONFIRMNo bundled .so files in this app's first-party code; verify all third-party SDKs (NokNok, ThreatMetrix, ML Kit) ship 16KB-aligned variants
CRITICAL

Edge-to-edge missing despite targetSdk 36

Android 15+ enforces edge-to-edge for apps targeting SDK 35+. Without enableEdgeToEdge() + correct insets handling, system bars will overlap your UI on Android 15 devices.
Recommendation: Call enableEdgeToEdge() in every Activity's onCreate before super. Apply WindowInsets handling on root Composables. Test on a Pixel 8/9 with Android 15.
HIGH

Splash screen not migrated to Android 12 API

Custom splash via feature/splash + Lottie animation. Android 12+ users see the system-provided splash flash before your custom one — feels janky.
Recommendation: Adopt androidx.core:core-splashscreen; configure Theme.SplashScreen with brand-aligned colors; bridge to existing Lottie animation as a post-splash flow.
MEDIUM

Photo Picker not adopted

Modern Android prefers ActivityResultContracts.PickVisualMedia for image selection — no permission needed.
Recommendation: Replace any image-selection UX (e.g. profile photo upload) with PickVisualMedia.

Form-factor readiness

Form factorStatusEvidence
Phone (compact)PRIMARYDefault development target
Tablet (medium / expanded)LEGACYvalues-sw600dp in 7 modules; no WindowSizeClass usage
FoldableUNTESTEDNo WindowSizeClass, no posture-aware code
Wear OSN/ANo :wear module
AutoN/ANo automotive metadata
TVN/ANo leanback resources
ChromebookUNTESTEDNo keyboard / mouse / window-resize testing
HIGH

No WindowSizeClass — adaptive UI absent

Tablet support is via legacy sw600dp dimens only. On a foldable (e.g. Galaxy Z Fold) the inner screen will render the phone layout stretched.
Recommendation: Adopt androidx.compose.material3.windowsizeclass. Define COMPACT / MEDIUM / EXPANDED variants of high-traffic screens (Home, PDP, Cart). Add a foldable QA pass.

Privacy Sandbox readiness

MEDIUM

Topics API / SDK Runtime not evaluated

If any analytics / advertising SDK is using GAID, the Privacy Sandbox migration (Topics API, SDK Runtime, Attribution Reporting) becomes relevant. Static review can't confirm GAID usage in third-party SDKs.
Recommendation: Audit Adobe + Firebase + ThreatMetrix configurations for advertising-ID dependence; subscribe to each vendor's Privacy Sandbox migration timeline.
INFO

Recommended cadence

Re-run this matrix every six months; new Android versions ship in August/September. Build a checklist into the quarterly release prep.
Costco Android · Code Review Report · Generated 2026-05-07 · 626 machine-curated findings