Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b10a28f6 authored by Zekan Qian's avatar Zekan Qian Committed by Android (Google) Code Review
Browse files

Merge changes I1abd0ec8,I084cb05b

* changes:
  Add more debug information.
  Add UiLayout function in SettingsPage
parents 2409beff 2c89f046
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+5 −0
Original line number Diff line number Diff line
@@ -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",
+8 −1
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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()
            }
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -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,
+14 −5
Original line number Diff line number Diff line
@@ -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
@@ -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