Loading src/com/android/settings/spa/app/AllAppList.kt +7 −3 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.template.app.AppList import com.android.settingslib.spaprivileged.template.app.AppListInput import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListPage import com.android.settingslib.spaprivileged.template.app.getStorageSize import kotlinx.coroutines.flow.Flow Loading Loading @@ -70,9 +71,7 @@ fun AllAppListPage( showInstantApps = true, moreOptions = { ResetAppPreferences(resetAppDialogPresenter::open) }, appList = appList, ) { AppListItem(onClick = AppInfoSettingsProvider.navigator(app = record.app)) } ) } data class AppRecordWithSize( Loading @@ -88,4 +87,9 @@ class AllAppListModel( @Composable override fun getSummary(option: Int, record: AppRecordWithSize) = record.app.getSummary() @Composable override fun AppListItemModel<AppRecordWithSize>.AppItem() { AppListItem(onClick = AppInfoSettingsProvider.navigator(app = record.app)) } } src/com/android/settings/spa/development/UsageStats.kt +1 −13 Original line number Diff line number Diff line Loading @@ -21,11 +21,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.android.settings.R 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.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListPage object UsageStatsPageProvider : SettingsPageProvider { Loading @@ -37,14 +33,6 @@ object UsageStatsPageProvider : SettingsPageProvider { title = stringResource(R.string.testing_usage_stats), listModel = rememberContext(::UsageStatsListModel), primaryUserOnly = true, ) { AppListItem {} } } @Composable fun EntryItem() { Preference(object : PreferenceModel { override val title = stringResource(R.string.testing_usage_stats) override val onClick = navigator(name) }) ) } } src/com/android/settings/spa/notification/AppListNotifications.kt +1 −40 Original line number Diff line number Diff line Loading @@ -16,27 +16,17 @@ package com.android.settings.spa.notification import android.app.settings.SettingsEnums import android.content.Context import android.content.pm.ApplicationInfo import android.os.Bundle import androidx.compose.runtime.Composable import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.produceState import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import com.android.settings.R import com.android.settings.applications.AppInfoBase import com.android.settings.notification.app.AppNotificationSettings 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.framework.compose.toState import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListPage import com.android.settingslib.spaprivileged.template.app.AppListSwitchItem object AppListNotificationsPageProvider : SettingsPageProvider { override val name = "AppListNotifications" Loading @@ -46,7 +36,7 @@ object AppListNotificationsPageProvider : SettingsPageProvider { AppListPage( title = stringResource(R.string.app_notifications_title), listModel = rememberContext(::AppNotificationsListModel), ) { AppNotificationsItem() } ) } @Composable Loading @@ -58,32 +48,3 @@ object AppListNotificationsPageProvider : SettingsPageProvider { }) } } @Composable private fun AppListItemModel<AppNotificationsRecord>.AppNotificationsItem() { val appNotificationsRepository = rememberContext(::AppNotificationRepository) val context = LocalContext.current AppListSwitchItem( onClick = { navigateToAppNotificationSettings( context = context, app = record.app, ) }, checked = record.controller.isEnabled.observeAsState(), changeable = produceState(initialValue = false) { value = appNotificationsRepository.isChangeable(record.app) }, onCheckedChange = record.controller::setEnabled, ) } private fun navigateToAppNotificationSettings(context: Context, app: ApplicationInfo) { AppInfoBase.startAppInfoFragment( AppNotificationSettings::class.java, context.getString(R.string.notifications_title), app, context, SettingsEnums.MANAGE_APPLICATIONS_NOTIFICATIONS, ) } src/com/android/settings/spa/notification/AppNotificationsListModel.kt +29 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,16 @@ package com.android.settings.spa.notification import android.app.settings.SettingsEnums import android.content.Context import android.content.pm.ApplicationInfo import android.icu.text.RelativeDateTimeFormatter import androidx.compose.runtime.Composable import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.produceState import com.android.settings.R import com.android.settings.applications.AppInfoBase import com.android.settings.notification.app.AppNotificationSettings import com.android.settings.spa.notification.SpinnerItem.Companion.toSpinnerItem import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spa.framework.util.asyncFilter Loading @@ -28,6 +33,8 @@ import com.android.settingslib.spa.framework.util.asyncForEach import com.android.settingslib.spaprivileged.model.app.AppEntry import com.android.settingslib.spaprivileged.model.app.AppListModel import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListSwitchItem import com.android.settingslib.utils.StringUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine Loading Loading @@ -114,6 +121,28 @@ class AppNotificationsListModel( ) } } @Composable override fun AppListItemModel<AppNotificationsRecord>.AppItem() { AppListSwitchItem( onClick = { navigateToAppNotificationSettings(app = record.app) }, checked = record.controller.isEnabled.observeAsState(), changeable = produceState(initialValue = false) { value = repository.isChangeable(record.app) }, onCheckedChange = record.controller::setEnabled, ) } private fun navigateToAppNotificationSettings(app: ApplicationInfo) { AppInfoBase.startAppInfoFragment( AppNotificationSettings::class.java, context.getString(R.string.notifications_title), app, context, SettingsEnums.MANAGE_APPLICATIONS_NOTIFICATIONS, ) } } private enum class SpinnerItem(val stringResId: Int) { Loading src/com/android/settings/spa/system/AppLanguages.kt +2 −20 Original line number Diff line number Diff line Loading @@ -16,17 +16,13 @@ package com.android.settings.spa.system import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import com.android.settings.R import com.android.settings.localepicker.AppLocalePickerActivity import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.rememberContext Loading @@ -35,8 +31,6 @@ import com.android.settingslib.spa.framework.theme.SettingsDimension import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.ui.SettingsBody import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListPage object AppLanguagesPageProvider : SettingsPageProvider { Loading @@ -52,7 +46,7 @@ object AppLanguagesPageProvider : SettingsPageProvider { SettingsBody(stringResource(R.string.desc_app_locale_selection_supported)) } }, ) { AppLanguageItem() } ) } @Composable Loading @@ -64,15 +58,3 @@ object AppLanguagesPageProvider : SettingsPageProvider { }) } } @Composable private fun AppListItemModel<AppLanguagesRecord>.AppLanguageItem() { val context = LocalContext.current AppListItem { val intent = Intent(context, AppLocalePickerActivity::class.java).apply { data = Uri.parse("package:${record.app.packageName}") putExtra("uid", record.app.uid) } context.startActivity(intent) } } Loading
src/com/android/settings/spa/app/AllAppList.kt +7 −3 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.template.app.AppList import com.android.settingslib.spaprivileged.template.app.AppListInput import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListPage import com.android.settingslib.spaprivileged.template.app.getStorageSize import kotlinx.coroutines.flow.Flow Loading Loading @@ -70,9 +71,7 @@ fun AllAppListPage( showInstantApps = true, moreOptions = { ResetAppPreferences(resetAppDialogPresenter::open) }, appList = appList, ) { AppListItem(onClick = AppInfoSettingsProvider.navigator(app = record.app)) } ) } data class AppRecordWithSize( Loading @@ -88,4 +87,9 @@ class AllAppListModel( @Composable override fun getSummary(option: Int, record: AppRecordWithSize) = record.app.getSummary() @Composable override fun AppListItemModel<AppRecordWithSize>.AppItem() { AppListItem(onClick = AppInfoSettingsProvider.navigator(app = record.app)) } }
src/com/android/settings/spa/development/UsageStats.kt +1 −13 Original line number Diff line number Diff line Loading @@ -21,11 +21,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.android.settings.R 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.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListPage object UsageStatsPageProvider : SettingsPageProvider { Loading @@ -37,14 +33,6 @@ object UsageStatsPageProvider : SettingsPageProvider { title = stringResource(R.string.testing_usage_stats), listModel = rememberContext(::UsageStatsListModel), primaryUserOnly = true, ) { AppListItem {} } } @Composable fun EntryItem() { Preference(object : PreferenceModel { override val title = stringResource(R.string.testing_usage_stats) override val onClick = navigator(name) }) ) } }
src/com/android/settings/spa/notification/AppListNotifications.kt +1 −40 Original line number Diff line number Diff line Loading @@ -16,27 +16,17 @@ package com.android.settings.spa.notification import android.app.settings.SettingsEnums import android.content.Context import android.content.pm.ApplicationInfo import android.os.Bundle import androidx.compose.runtime.Composable import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.produceState import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import com.android.settings.R import com.android.settings.applications.AppInfoBase import com.android.settings.notification.app.AppNotificationSettings 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.framework.compose.toState import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListPage import com.android.settingslib.spaprivileged.template.app.AppListSwitchItem object AppListNotificationsPageProvider : SettingsPageProvider { override val name = "AppListNotifications" Loading @@ -46,7 +36,7 @@ object AppListNotificationsPageProvider : SettingsPageProvider { AppListPage( title = stringResource(R.string.app_notifications_title), listModel = rememberContext(::AppNotificationsListModel), ) { AppNotificationsItem() } ) } @Composable Loading @@ -58,32 +48,3 @@ object AppListNotificationsPageProvider : SettingsPageProvider { }) } } @Composable private fun AppListItemModel<AppNotificationsRecord>.AppNotificationsItem() { val appNotificationsRepository = rememberContext(::AppNotificationRepository) val context = LocalContext.current AppListSwitchItem( onClick = { navigateToAppNotificationSettings( context = context, app = record.app, ) }, checked = record.controller.isEnabled.observeAsState(), changeable = produceState(initialValue = false) { value = appNotificationsRepository.isChangeable(record.app) }, onCheckedChange = record.controller::setEnabled, ) } private fun navigateToAppNotificationSettings(context: Context, app: ApplicationInfo) { AppInfoBase.startAppInfoFragment( AppNotificationSettings::class.java, context.getString(R.string.notifications_title), app, context, SettingsEnums.MANAGE_APPLICATIONS_NOTIFICATIONS, ) }
src/com/android/settings/spa/notification/AppNotificationsListModel.kt +29 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,16 @@ package com.android.settings.spa.notification import android.app.settings.SettingsEnums import android.content.Context import android.content.pm.ApplicationInfo import android.icu.text.RelativeDateTimeFormatter import androidx.compose.runtime.Composable import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.produceState import com.android.settings.R import com.android.settings.applications.AppInfoBase import com.android.settings.notification.app.AppNotificationSettings import com.android.settings.spa.notification.SpinnerItem.Companion.toSpinnerItem import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spa.framework.util.asyncFilter Loading @@ -28,6 +33,8 @@ import com.android.settingslib.spa.framework.util.asyncForEach import com.android.settingslib.spaprivileged.model.app.AppEntry import com.android.settingslib.spaprivileged.model.app.AppListModel import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListSwitchItem import com.android.settingslib.utils.StringUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine Loading Loading @@ -114,6 +121,28 @@ class AppNotificationsListModel( ) } } @Composable override fun AppListItemModel<AppNotificationsRecord>.AppItem() { AppListSwitchItem( onClick = { navigateToAppNotificationSettings(app = record.app) }, checked = record.controller.isEnabled.observeAsState(), changeable = produceState(initialValue = false) { value = repository.isChangeable(record.app) }, onCheckedChange = record.controller::setEnabled, ) } private fun navigateToAppNotificationSettings(app: ApplicationInfo) { AppInfoBase.startAppInfoFragment( AppNotificationSettings::class.java, context.getString(R.string.notifications_title), app, context, SettingsEnums.MANAGE_APPLICATIONS_NOTIFICATIONS, ) } } private enum class SpinnerItem(val stringResId: Int) { Loading
src/com/android/settings/spa/system/AppLanguages.kt +2 −20 Original line number Diff line number Diff line Loading @@ -16,17 +16,13 @@ package com.android.settings.spa.system import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import com.android.settings.R import com.android.settings.localepicker.AppLocalePickerActivity import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.rememberContext Loading @@ -35,8 +31,6 @@ import com.android.settingslib.spa.framework.theme.SettingsDimension import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.ui.SettingsBody import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListPage object AppLanguagesPageProvider : SettingsPageProvider { Loading @@ -52,7 +46,7 @@ object AppLanguagesPageProvider : SettingsPageProvider { SettingsBody(stringResource(R.string.desc_app_locale_selection_supported)) } }, ) { AppLanguageItem() } ) } @Composable Loading @@ -64,15 +58,3 @@ object AppLanguagesPageProvider : SettingsPageProvider { }) } } @Composable private fun AppListItemModel<AppLanguagesRecord>.AppLanguageItem() { val context = LocalContext.current AppListItem { val intent = Intent(context, AppLocalePickerActivity::class.java).apply { data = Uri.parse("package:${record.app.packageName}") putExtra("uid", record.app.uid) } context.startActivity(intent) } }