Loading packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppInfoPage.kt +3 −4 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ import androidx.navigation.NavType import androidx.navigation.navArgument import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.rememberContext import com.android.settingslib.spa.widget.preference.SwitchPreference import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel import com.android.settingslib.spaprivileged.model.app.AppRecord Loading @@ -44,7 +43,7 @@ private const val PACKAGE_NAME = "packageName" private const val USER_ID = "userId" internal class TogglePermissionAppInfoPageProvider( private val factory: TogglePermissionAppListModelFactory, private val appListTemplate: TogglePermissionAppListTemplate, ) : SettingsPageProvider { override val name = NAME Loading @@ -57,10 +56,10 @@ internal class TogglePermissionAppInfoPageProvider( @Composable override fun Page(arguments: Bundle?) { checkNotNull(arguments) val permission = checkNotNull(arguments.getString(PERMISSION)) val permissionType = checkNotNull(arguments.getString(PERMISSION)) val packageName = checkNotNull(arguments.getString(PACKAGE_NAME)) val userId = arguments.getInt(USER_ID) val listModel = rememberContext { context -> factory.createModel(permission, context) } val listModel = appListTemplate.rememberModel(permissionType) TogglePermissionAppInfoPage(listModel, packageName, userId) } Loading packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListModel.kt→packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppList.kt +21 −15 Original line number Diff line number Diff line Loading @@ -47,20 +47,14 @@ interface TogglePermissionAppListModel<T : AppRecord> { fun setAllowed(record: T, newAllowed: Boolean) } interface TogglePermissionAppListModelFactory { fun createModel( permission: String, context: Context, ): TogglePermissionAppListModel<out AppRecord> interface TogglePermissionAppListProvider { val permissionType: String fun createPageProviders(): List<SettingsPageProvider> = listOf( TogglePermissionAppListPageProvider(this), TogglePermissionAppInfoPageProvider(this), ) fun createModel(context: Context): TogglePermissionAppListModel<out AppRecord> @Composable fun EntryItem(permissionType: String) { val listModel = rememberModel(permissionType) fun EntryItem() { val listModel = rememberContext(::createModel) Preference( object : PreferenceModel { override val title = stringResource(listModel.pageTitleResId) Loading @@ -74,10 +68,22 @@ interface TogglePermissionAppListModelFactory { * * Expose route to enable enter from non-SPA pages. */ fun getRoute(permissionType: String): String = fun getRoute(): String = TogglePermissionAppListPageProvider.getRoute(permissionType) } class TogglePermissionAppListTemplate( allProviders: List<TogglePermissionAppListProvider>, ) { private val listModelProviderMap = allProviders.associateBy { it.permissionType } fun createPageProviders(): List<SettingsPageProvider> = listOf( TogglePermissionAppListPageProvider(this), TogglePermissionAppInfoPageProvider(this), ) @Composable internal fun TogglePermissionAppListModelFactory.rememberModel(permission: String) = rememberContext { context -> createModel(permission, context) } internal fun rememberModel(permissionType: String) = rememberContext { context -> listModelProviderMap.getValue(permissionType).createModel(context) } } packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListPage.kt +2 −2 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ private const val NAME = "TogglePermissionAppList" private const val PERMISSION = "permission" internal class TogglePermissionAppListPageProvider( private val factory: TogglePermissionAppListModelFactory, private val appListTemplate: TogglePermissionAppListTemplate, ) : SettingsPageProvider { override val name = NAME Loading @@ -55,7 +55,7 @@ internal class TogglePermissionAppListPageProvider( @Composable private fun TogglePermissionAppList(permissionType: String) { val listModel = factory.rememberModel(permissionType) val listModel = appListTemplate.rememberModel(permissionType) val context = LocalContext.current val internalListModel = remember { TogglePermissionInternalAppListModel(context, listModel) Loading Loading
packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppInfoPage.kt +3 −4 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ import androidx.navigation.NavType import androidx.navigation.navArgument import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.rememberContext import com.android.settingslib.spa.widget.preference.SwitchPreference import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel import com.android.settingslib.spaprivileged.model.app.AppRecord Loading @@ -44,7 +43,7 @@ private const val PACKAGE_NAME = "packageName" private const val USER_ID = "userId" internal class TogglePermissionAppInfoPageProvider( private val factory: TogglePermissionAppListModelFactory, private val appListTemplate: TogglePermissionAppListTemplate, ) : SettingsPageProvider { override val name = NAME Loading @@ -57,10 +56,10 @@ internal class TogglePermissionAppInfoPageProvider( @Composable override fun Page(arguments: Bundle?) { checkNotNull(arguments) val permission = checkNotNull(arguments.getString(PERMISSION)) val permissionType = checkNotNull(arguments.getString(PERMISSION)) val packageName = checkNotNull(arguments.getString(PACKAGE_NAME)) val userId = arguments.getInt(USER_ID) val listModel = rememberContext { context -> factory.createModel(permission, context) } val listModel = appListTemplate.rememberModel(permissionType) TogglePermissionAppInfoPage(listModel, packageName, userId) } Loading
packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListModel.kt→packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppList.kt +21 −15 Original line number Diff line number Diff line Loading @@ -47,20 +47,14 @@ interface TogglePermissionAppListModel<T : AppRecord> { fun setAllowed(record: T, newAllowed: Boolean) } interface TogglePermissionAppListModelFactory { fun createModel( permission: String, context: Context, ): TogglePermissionAppListModel<out AppRecord> interface TogglePermissionAppListProvider { val permissionType: String fun createPageProviders(): List<SettingsPageProvider> = listOf( TogglePermissionAppListPageProvider(this), TogglePermissionAppInfoPageProvider(this), ) fun createModel(context: Context): TogglePermissionAppListModel<out AppRecord> @Composable fun EntryItem(permissionType: String) { val listModel = rememberModel(permissionType) fun EntryItem() { val listModel = rememberContext(::createModel) Preference( object : PreferenceModel { override val title = stringResource(listModel.pageTitleResId) Loading @@ -74,10 +68,22 @@ interface TogglePermissionAppListModelFactory { * * Expose route to enable enter from non-SPA pages. */ fun getRoute(permissionType: String): String = fun getRoute(): String = TogglePermissionAppListPageProvider.getRoute(permissionType) } class TogglePermissionAppListTemplate( allProviders: List<TogglePermissionAppListProvider>, ) { private val listModelProviderMap = allProviders.associateBy { it.permissionType } fun createPageProviders(): List<SettingsPageProvider> = listOf( TogglePermissionAppListPageProvider(this), TogglePermissionAppInfoPageProvider(this), ) @Composable internal fun TogglePermissionAppListModelFactory.rememberModel(permission: String) = rememberContext { context -> createModel(permission, context) } internal fun rememberModel(permissionType: String) = rememberContext { context -> listModelProviderMap.getValue(permissionType).createModel(context) } }
packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/TogglePermissionAppListPage.kt +2 −2 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ private const val NAME = "TogglePermissionAppList" private const val PERMISSION = "permission" internal class TogglePermissionAppListPageProvider( private val factory: TogglePermissionAppListModelFactory, private val appListTemplate: TogglePermissionAppListTemplate, ) : SettingsPageProvider { override val name = NAME Loading @@ -55,7 +55,7 @@ internal class TogglePermissionAppListPageProvider( @Composable private fun TogglePermissionAppList(permissionType: String) { val listModel = factory.rememberModel(permissionType) val listModel = appListTemplate.rememberModel(permissionType) val context = LocalContext.current val internalListModel = remember { TogglePermissionInternalAppListModel(context, listModel) Loading