Merge "Add startDestination arg to SpaActivity"
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
android:label="@string/app_label"
|
||||
android:supportsRtl="true">
|
||||
<activity
|
||||
android:name="com.android.settingslib.spa.gallery.MainActivity"
|
||||
android:name=".MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
@@ -36,24 +36,28 @@ open class SpaActivity(
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setTheme(R.style.Theme_SpaLib_DayNight)
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
setContent {
|
||||
MainContent()
|
||||
SettingsTheme {
|
||||
MainContent()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun MainContent() {
|
||||
SettingsTheme {
|
||||
val navController = rememberNavController()
|
||||
CompositionLocalProvider(navController.localNavController()) {
|
||||
NavHost(navController, settingsPageRepository.startDestination) {
|
||||
for (page in settingsPageRepository.allPages) {
|
||||
composable(
|
||||
route = page.route,
|
||||
arguments = page.arguments,
|
||||
) { navBackStackEntry ->
|
||||
page.Page(navBackStackEntry.arguments)
|
||||
}
|
||||
val startDestination =
|
||||
intent?.getStringExtra(KEY_START_DESTINATION) ?: settingsPageRepository.startDestination
|
||||
|
||||
val navController = rememberNavController()
|
||||
CompositionLocalProvider(navController.localNavController()) {
|
||||
NavHost(navController, startDestination) {
|
||||
for (page in settingsPageRepository.allPages) {
|
||||
composable(
|
||||
route = page.route,
|
||||
arguments = page.arguments,
|
||||
) { navBackStackEntry ->
|
||||
page.Page(navBackStackEntry.arguments)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -62,4 +66,8 @@ open class SpaActivity(
|
||||
|
||||
private val SettingsPageProvider.route: String
|
||||
get() = name + arguments.joinToString("") { argument -> "/{${argument.name}}" }
|
||||
|
||||
companion object {
|
||||
const val KEY_START_DESTINATION = "spa:SpaActivity:startDestination"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user