Merge "Followup SppRepo refactor in Settings"
This commit is contained in:
@@ -20,7 +20,7 @@ import android.content.Context
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import com.android.settingslib.spa.framework.BrowseActivity
|
import com.android.settingslib.spa.framework.BrowseActivity
|
||||||
|
|
||||||
class SpaActivity : BrowseActivity(settingsPageProviders) {
|
class SpaActivity : BrowseActivity(SpaEnvironment.settingsPageProviders) {
|
||||||
companion object {
|
companion object {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun startSpaActivity(context: Context, startDestination: String) {
|
fun startSpaActivity(context: Context, startDestination: String) {
|
||||||
|
|||||||
@@ -18,20 +18,34 @@ package com.android.settings.spa
|
|||||||
|
|
||||||
import com.android.settings.spa.app.InstallUnknownAppsListProvider
|
import com.android.settings.spa.app.InstallUnknownAppsListProvider
|
||||||
import com.android.settings.spa.home.HomePageProvider
|
import com.android.settings.spa.home.HomePageProvider
|
||||||
|
import com.android.settingslib.spa.framework.common.SettingsEntryRepository
|
||||||
|
import com.android.settingslib.spa.framework.common.SettingsPage
|
||||||
import com.android.settings.spa.notification.AppListNotificationsPageProvider
|
import com.android.settings.spa.notification.AppListNotificationsPageProvider
|
||||||
import com.android.settings.spa.notification.NotificationMainPageProvider
|
import com.android.settings.spa.notification.NotificationMainPageProvider
|
||||||
import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository
|
import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListTemplate
|
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListTemplate
|
||||||
|
|
||||||
private val togglePermissionAppListTemplate = TogglePermissionAppListTemplate(
|
object SpaEnvironment {
|
||||||
allProviders = listOf(InstallUnknownAppsListProvider),
|
val settingsPageProviders: SettingsPageProviderRepository by
|
||||||
)
|
lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||||
|
val togglePermissionAppListTemplate = TogglePermissionAppListTemplate(
|
||||||
|
allProviders = listOf(InstallUnknownAppsListProvider),
|
||||||
|
)
|
||||||
|
SettingsPageProviderRepository(
|
||||||
|
allPageProviders = listOf(
|
||||||
|
HomePageProvider,
|
||||||
|
NotificationMainPageProvider,
|
||||||
|
AppListNotificationsPageProvider,
|
||||||
|
) + togglePermissionAppListTemplate.createPageProviders(),
|
||||||
|
rootPages = listOf(
|
||||||
|
SettingsPage(HomePageProvider.name),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
val settingsEntryRepository: SettingsEntryRepository by
|
||||||
|
lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||||
|
SettingsEntryRepository(settingsPageProviders)
|
||||||
|
}
|
||||||
|
|
||||||
val settingsPageProviders = SettingsPageProviderRepository(
|
// TODO: add other environment setup here.
|
||||||
allPagesList = listOf(
|
}
|
||||||
HomePageProvider,
|
|
||||||
NotificationMainPageProvider,
|
|
||||||
AppListNotificationsPageProvider,
|
|
||||||
) + togglePermissionAppListTemplate.createPageProviders(),
|
|
||||||
rootPages = listOf(HomePageProvider.name),
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -17,9 +17,12 @@
|
|||||||
package com.android.settings.spa.home
|
package com.android.settings.spa.home
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import androidx.compose.material3.Button
|
||||||
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.spa.SpaEnvironment
|
||||||
import com.android.settings.spa.app.InstallUnknownAppsListProvider
|
import com.android.settings.spa.app.InstallUnknownAppsListProvider
|
||||||
import com.android.settings.spa.notification.NotificationMainPageProvider
|
import com.android.settings.spa.notification.NotificationMainPageProvider
|
||||||
import com.android.settingslib.spa.framework.common.SettingsPageProvider
|
import com.android.settingslib.spa.framework.common.SettingsPageProvider
|
||||||
@@ -39,5 +42,16 @@ private fun HomePage() {
|
|||||||
HomeScaffold(title = stringResource(R.string.settings_label)) {
|
HomeScaffold(title = stringResource(R.string.settings_label)) {
|
||||||
InstallUnknownAppsListProvider.EntryItem()
|
InstallUnknownAppsListProvider.EntryItem()
|
||||||
NotificationMainPageProvider.EntryItem()
|
NotificationMainPageProvider.EntryItem()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A test button to generate hierarchy.
|
||||||
|
* TODO: remove it once the content provider is ready.
|
||||||
|
*/
|
||||||
|
Button(onClick = {
|
||||||
|
SpaEnvironment.settingsEntryRepository.printAllPages()
|
||||||
|
SpaEnvironment.settingsEntryRepository.printAllEntries()
|
||||||
|
}) {
|
||||||
|
Text(text = "Generate Entry")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user