AppScaffold

internal fun AppScaffold(currentRoute: AppRoute, router: RootAppRouter, buildInfoProvider: BuildInfoProvider, preferenceManager: PreferenceManager, showHomeChrome: Boolean = currentRoute.isHomeRoute(), content: @Composable (Modifier) -> Unit)(source)

Renders the AppScaffold UI for the SDAI presentation layer.

System-bar handling in this scaffold is intentionally explicit. Material Scaffold defaults and raw Compose WindowInsets.statusBars/navigationBars are not stable enough for the app's release matrix because Android has two layout contracts in the wild: legacy windows that are already resized away from system bars, and Android 15+ edge-to-edge windows where the app must reserve safe space itself. The Pixel 3a XL/API 32 release regression came from applying a Compose system-bar inset on top of a window that had already consumed it, which moved toolbars and persistent bottom controls by exactly one system-bar height. Keep the platform-specific inset helpers in this scaffold path so future SDK or CI/Docker build changes do not silently reintroduce duplicated padding.

Author

Dmitriy Moroz

Parameters

currentRoute

current route value consumed by the API.

router

router value consumed by the API.

buildInfoProvider

build info provider value consumed by the API.

preferenceManager

preference manager value consumed by the API.

content

content value consumed by the API.