From fdace52c72e8e2fa18d8bbcc516ba585d3a9278b Mon Sep 17 00:00:00 2001 From: Zekan Qian Date: Thu, 2 Feb 2023 09:59:54 +0800 Subject: [PATCH] Remember entries / title in default Page fn. Bug: 244122804 Test: unit-test & local build gallery Change-Id: Iadfe4b2c7f6994767af3fcce54c3d791567dff0a --- .../android/settingslib/spa/framework/BrowseActivity.kt | 4 +--- .../spa/framework/common/SettingsPageProvider.kt | 7 +++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt index a8432d60065ab..bccd8aaea842e 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt @@ -139,9 +139,7 @@ private fun NavControllerWrapperImpl.NavContent(allProvider: Collection - val page = remember(navBackStackEntry.arguments) { - spp.createSettingsPage(navBackStackEntry.arguments) - } + val page = remember { spp.createSettingsPage(navBackStackEntry.arguments) } page.PageWithEvent() } } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt index 42e5f7ed6aae5..c5641303a58c7 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt @@ -18,6 +18,7 @@ package com.android.settingslib.spa.framework.common import android.os.Bundle import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember import androidx.navigation.NamedNavArgument import com.android.settingslib.spa.widget.scaffold.RegularScaffold @@ -52,8 +53,10 @@ interface SettingsPageProvider { /** The [Composable] used to render this page. */ @Composable fun Page(arguments: Bundle?) { - RegularScaffold(title = getTitle(arguments)) { - for (entry in buildEntry(arguments)) { + val title = remember { getTitle(arguments) } + val entries = remember { buildEntry(arguments) } + RegularScaffold(title) { + for (entry in entries) { entry.UiLayout() } }