Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/debug/DebugActivity.kt +1 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ class DebugActivity : ComponentActivity() { RegularScaffold(title = "Page - ${page.debugBrief()}") { Text(text = "id = ${page.id}") Text(text = page.debugArguments()) Text(text = "enabled = ${page.isEnabled()}") Text(text = "Entry size: ${pageWithEntry.entries.size}") Preference(model = object : PreferenceModel { override val title = "open page" Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/debug/DebugFormat.kt +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ fun SettingsEntry.debugContent(entryRepository: SettingsEntryRepository): String "linkFrom = ${fromPage?.debugBrief()} ${fromPage?.debugArguments()}", "linkTo = ${toPage?.debugBrief()} ${toPage?.debugArguments()}", "hierarchy_path = $entryPathWithName", "------ ATTRIBUTION ------", "allowSearch = $isAllowSearch", "isSearchDynamic = $isSearchDataDynamic", "isSearchMutable = $hasMutableStatus", "hasSlice = $hasSliceSupport", "------ SEARCH ------", "search_path = $entryPathWithTitle", searchData?.debugContent() ?: "no search data", Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt +8 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.unit.IntOffset import androidx.core.view.WindowCompat Loading @@ -42,6 +43,7 @@ import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory import com.android.settingslib.spa.framework.common.createSettingsPage import com.android.settingslib.spa.framework.compose.AnimatedNavHost import com.android.settingslib.spa.framework.compose.LocalNavController import com.android.settingslib.spa.framework.compose.NavControllerWrapperImpl Loading Loading @@ -136,7 +138,12 @@ private fun NavControllerWrapperImpl.NavContent(allProvider: Collection<Settings AnimatedContentScope.SlideDirection.Right, animationSpec = slideEffect ) + fadeOut(animationSpec = fadeEffect) }, ) { navBackStackEntry -> spp.PageWithEvent(navBackStackEntry.arguments) } ) { navBackStackEntry -> val page = remember(navBackStackEntry.arguments) { spp.createSettingsPage(navBackStackEntry.arguments) } page.PageWithEvent() } } } } Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsEntry.kt +1 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ class SettingsEntryBuilder(private val name: String, private val owner: Settings toPage = toPage, // attributes // TODO: set isEnabled & (isAllowSearch, hasSliceSupport) separately isAllowSearch = isEnabled && isAllowSearch, isSearchDataDynamic = isSearchDataDynamic, hasMutableStatus = hasMutableStatus, Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPage.kt +14 −5 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settingslib.spa.framework.common import android.os.Bundle import androidx.compose.runtime.Composable import androidx.navigation.NamedNavArgument import com.android.settingslib.spa.framework.util.isRuntimeParam import com.android.settingslib.spa.framework.util.navLink Loading Loading @@ -91,14 +92,22 @@ data class SettingsPage( } fun isBrowsable(): Boolean { return !isCreateBy(NULL_PAGE_NAME) && !hasRuntimeParam() return !isCreateBy(NULL_PAGE_NAME) && !hasRuntimeParam() } fun isEnabled(): Boolean { if (!SpaEnvironmentFactory.isReady()) return false private fun getProvider(): SettingsPageProvider? { if (!SpaEnvironmentFactory.isReady()) return null val pageProviderRepository by SpaEnvironmentFactory.instance.pageProviderRepository return pageProviderRepository.getProviderOrNull(sppName)?.isEnabled(arguments) ?: false return pageProviderRepository.getProviderOrNull(sppName) } fun isEnabled(): Boolean { return getProvider()?.isEnabled(arguments) ?: false } @Composable fun UiLayout() { getProvider()?.Page(arguments) } } Loading Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/debug/DebugActivity.kt +1 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ class DebugActivity : ComponentActivity() { RegularScaffold(title = "Page - ${page.debugBrief()}") { Text(text = "id = ${page.id}") Text(text = page.debugArguments()) Text(text = "enabled = ${page.isEnabled()}") Text(text = "Entry size: ${pageWithEntry.entries.size}") Preference(model = object : PreferenceModel { override val title = "open page" Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/debug/DebugFormat.kt +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ fun SettingsEntry.debugContent(entryRepository: SettingsEntryRepository): String "linkFrom = ${fromPage?.debugBrief()} ${fromPage?.debugArguments()}", "linkTo = ${toPage?.debugBrief()} ${toPage?.debugArguments()}", "hierarchy_path = $entryPathWithName", "------ ATTRIBUTION ------", "allowSearch = $isAllowSearch", "isSearchDynamic = $isSearchDataDynamic", "isSearchMutable = $hasMutableStatus", "hasSlice = $hasSliceSupport", "------ SEARCH ------", "search_path = $entryPathWithTitle", searchData?.debugContent() ?: "no search data", Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt +8 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.unit.IntOffset import androidx.core.view.WindowCompat Loading @@ -42,6 +43,7 @@ import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory import com.android.settingslib.spa.framework.common.createSettingsPage import com.android.settingslib.spa.framework.compose.AnimatedNavHost import com.android.settingslib.spa.framework.compose.LocalNavController import com.android.settingslib.spa.framework.compose.NavControllerWrapperImpl Loading Loading @@ -136,7 +138,12 @@ private fun NavControllerWrapperImpl.NavContent(allProvider: Collection<Settings AnimatedContentScope.SlideDirection.Right, animationSpec = slideEffect ) + fadeOut(animationSpec = fadeEffect) }, ) { navBackStackEntry -> spp.PageWithEvent(navBackStackEntry.arguments) } ) { navBackStackEntry -> val page = remember(navBackStackEntry.arguments) { spp.createSettingsPage(navBackStackEntry.arguments) } page.PageWithEvent() } } } } Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsEntry.kt +1 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ class SettingsEntryBuilder(private val name: String, private val owner: Settings toPage = toPage, // attributes // TODO: set isEnabled & (isAllowSearch, hasSliceSupport) separately isAllowSearch = isEnabled && isAllowSearch, isSearchDataDynamic = isSearchDataDynamic, hasMutableStatus = hasMutableStatus, Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPage.kt +14 −5 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settingslib.spa.framework.common import android.os.Bundle import androidx.compose.runtime.Composable import androidx.navigation.NamedNavArgument import com.android.settingslib.spa.framework.util.isRuntimeParam import com.android.settingslib.spa.framework.util.navLink Loading Loading @@ -91,14 +92,22 @@ data class SettingsPage( } fun isBrowsable(): Boolean { return !isCreateBy(NULL_PAGE_NAME) && !hasRuntimeParam() return !isCreateBy(NULL_PAGE_NAME) && !hasRuntimeParam() } fun isEnabled(): Boolean { if (!SpaEnvironmentFactory.isReady()) return false private fun getProvider(): SettingsPageProvider? { if (!SpaEnvironmentFactory.isReady()) return null val pageProviderRepository by SpaEnvironmentFactory.instance.pageProviderRepository return pageProviderRepository.getProviderOrNull(sppName)?.isEnabled(arguments) ?: false return pageProviderRepository.getProviderOrNull(sppName) } fun isEnabled(): Boolean { return getProvider()?.isEnabled(arguments) ?: false } @Composable fun UiLayout() { getProvider()?.Page(arguments) } } Loading