Merge "Clean up forked collectAsStateWithLifecycle"

This commit is contained in:
Chaohui Wang
2022-12-05 13:04:00 +00:00
committed by Android (Google) Code Review
9 changed files with 27 additions and 13 deletions

View File

@@ -28,8 +28,9 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R import com.android.settings.R
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spaprivileged.model.app.resolveActionForApp import com.android.settingslib.spaprivileged.model.app.resolveActionForApp
@@ -45,6 +46,7 @@ import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.plus import kotlinx.coroutines.plus
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun AppAllServicesPreference(app: ApplicationInfo) { fun AppAllServicesPreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -27,6 +27,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R import com.android.settings.R
import com.android.settings.Utils import com.android.settings.Utils
import com.android.settings.applications.appinfo.AppInfoDashboardFragment import com.android.settings.applications.appinfo.AppInfoDashboardFragment
@@ -34,7 +36,6 @@ import com.android.settings.datausage.AppDataUsage
import com.android.settings.datausage.DataUsageUtils import com.android.settings.datausage.DataUsageUtils
import com.android.settingslib.net.NetworkCycleDataForUid import com.android.settingslib.net.NetworkCycleDataForUid
import com.android.settingslib.net.NetworkCycleDataForUidLoader import com.android.settingslib.net.NetworkCycleDataForUidLoader
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.framework.compose.toState
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
@@ -43,6 +44,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun AppDataUsagePreference(app: ApplicationInfo) { fun AppDataUsagePreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -27,7 +27,8 @@ import com.android.settings.R
import com.android.settings.Utils import com.android.settings.Utils
import com.android.settings.applications.AppStoreUtil import com.android.settings.applications.AppStoreUtil
import com.android.settingslib.applications.AppUtils import com.android.settingslib.applications.AppUtils
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spaprivileged.framework.common.asUser import com.android.settingslib.spaprivileged.framework.common.asUser
@@ -44,6 +45,7 @@ import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun AppInstallerInfoPreference(app: ApplicationInfo) { fun AppInstallerInfoPreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -31,7 +31,8 @@ import com.android.settings.applications.AppInfoBase
import com.android.settings.applications.AppLocaleUtil import com.android.settings.applications.AppLocaleUtil
import com.android.settings.applications.appinfo.AppLocaleDetails import com.android.settings.applications.appinfo.AppLocaleDetails
import com.android.settings.localepicker.AppLocalePickerActivity import com.android.settings.localepicker.AppLocalePickerActivity
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.model.app.userHandle
@@ -40,6 +41,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun AppLocalePreference(app: ApplicationInfo) { fun AppLocalePreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -28,7 +28,8 @@ import androidx.compose.ui.platform.LocalContext
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.overlay.FeatureFactory import com.android.settings.overlay.FeatureFactory
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spaprivileged.model.app.resolveActionForApp import com.android.settingslib.spaprivileged.model.app.resolveActionForApp
@@ -43,6 +44,7 @@ import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.plus import kotlinx.coroutines.plus
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun AppSettingsPreference(app: ApplicationInfo) { fun AppSettingsPreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -35,7 +35,8 @@ import com.android.settings.R
import com.android.settings.Utils.PROPERTY_APP_HIBERNATION_ENABLED import com.android.settings.Utils.PROPERTY_APP_HIBERNATION_ENABLED
import com.android.settings.Utils.PROPERTY_HIBERNATION_TARGETS_PRE_S_APPS import com.android.settings.Utils.PROPERTY_HIBERNATION_TARGETS_PRE_S_APPS
import com.android.settingslib.spa.framework.compose.OverridableFlow import com.android.settingslib.spa.framework.compose.OverridableFlow
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.widget.preference.SwitchPreference import com.android.settingslib.spa.widget.preference.SwitchPreference
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
@@ -51,6 +52,7 @@ import kotlinx.coroutines.withContext
import kotlin.coroutines.resume import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine import kotlin.coroutines.suspendCoroutine
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun HibernationSwitchPreference(app: ApplicationInfo) { fun HibernationSwitchPreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -34,7 +34,8 @@ import androidx.compose.ui.platform.LocalContext
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.Utils import com.android.settings.Utils
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.framework.theme.SettingsDimension import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
@@ -45,6 +46,7 @@ import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun InstantAppDomainsPreference(app: ApplicationInfo) { fun InstantAppDomainsPreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -25,7 +25,8 @@ import androidx.compose.ui.res.stringResource
import com.android.settings.R import com.android.settings.R
import com.android.settings.applications.appinfo.AppInfoDashboardFragment import com.android.settings.applications.appinfo.AppInfoDashboardFragment
import com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesDetails import com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesDetails
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spaprivileged.framework.common.crossProfileApps import com.android.settingslib.spaprivileged.framework.common.crossProfileApps
@@ -33,6 +34,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.flowOn
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
fun InteractAcrossProfilesDetailsPreference(app: ApplicationInfo) { fun InteractAcrossProfilesDetailsPreference(app: ApplicationInfo) {
val context = LocalContext.current val context = LocalContext.current

View File

@@ -23,16 +23,13 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.State import androidx.compose.runtime.State
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R import com.android.settings.R
import com.android.settings.applications.AppLocaleUtil import com.android.settings.applications.AppLocaleUtil
import com.android.settings.applications.appinfo.AppLocaleDetails import com.android.settings.applications.appinfo.AppLocaleDetails
import com.android.settingslib.applications.ApplicationsState
import com.android.settingslib.applications.ApplicationsState.AppEntry
import com.android.settingslib.spa.framework.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.framework.util.asyncMapItem
import com.android.settingslib.spaprivileged.model.app.AppListModel import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.userId
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flow
@@ -70,6 +67,7 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang
recordList.filter { it.isAppLocaleSupported } recordList.filter { it.isAppLocaleSupported }
} }
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable @Composable
override fun getSummary(option: Int, record: AppLanguagesRecord): State<String>? = override fun getSummary(option: Int, record: AppLanguagesRecord): State<String>? =
remember(record.app) { remember(record.app) {