Loading src/com/android/settings/spa/system/AppLanguagesListModel.kt +8 −8 Original line number Diff line number Diff line Loading @@ -33,8 +33,10 @@ import com.android.settings.applications.AppLocaleUtil import com.android.settings.applications.appinfo.AppLocaleDetails import com.android.settings.localepicker.AppLocalePickerActivity import com.android.settingslib.spa.framework.util.filterItem import com.android.settingslib.spaprivileged.framework.common.asUser import com.android.settingslib.spaprivileged.model.app.AppListModel import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListItemModel import kotlinx.coroutines.Dispatchers Loading @@ -54,17 +56,18 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) = userIdFlow.map { userId -> packageManager.queryIntentActivitiesAsUser( userId to packageManager.queryIntentActivitiesAsUser( AppLocaleUtil.LAUNCHER_ENTRY_INTENT, PackageManager.ResolveInfoFlags.of(PackageManager.GET_META_DATA.toLong()), userId, ) }.combine(appListFlow) { resolveInfos, appList -> }.combine(appListFlow) { (userId, resolveInfos), appList -> val userContext = context.asUser(UserHandle.of(userId)) appList.map { app -> AppLanguagesRecord( app = app, isAppLocaleSupported = AppLocaleUtil.canDisplayLocaleUi( context, app, resolveInfos userContext, app, resolveInfos ), ) } Loading @@ -86,9 +89,7 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang }.collectAsStateWithLifecycle(initialValue = stringResource(R.string.summary_placeholder)) private fun getSummary(app: ApplicationInfo): String = AppLocaleDetails.getAppDefaultLocale(context, app.packageName)?.let { AppLocaleDetails.getSummary(context, app).toString() } ?: context.getString(R.string.preference_of_system_locale_summary) @Composable override fun AppListItemModel<AppLanguagesRecord>.AppItem() { Loading @@ -96,8 +97,7 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang val intent = Intent(context, AppLocalePickerActivity::class.java).apply { data = Uri.parse("package:${record.app.packageName}") } val userHandle : UserHandle = UserHandle.getUserHandleForUid(record.app.uid) context.startActivityAsUser(intent, userHandle) context.startActivityAsUser(intent, record.app.userHandle) } } } Loading
src/com/android/settings/spa/system/AppLanguagesListModel.kt +8 −8 Original line number Diff line number Diff line Loading @@ -33,8 +33,10 @@ import com.android.settings.applications.AppLocaleUtil import com.android.settings.applications.appinfo.AppLocaleDetails import com.android.settings.localepicker.AppLocalePickerActivity import com.android.settingslib.spa.framework.util.filterItem import com.android.settingslib.spaprivileged.framework.common.asUser import com.android.settingslib.spaprivileged.model.app.AppListModel import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListItemModel import kotlinx.coroutines.Dispatchers Loading @@ -54,17 +56,18 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) = userIdFlow.map { userId -> packageManager.queryIntentActivitiesAsUser( userId to packageManager.queryIntentActivitiesAsUser( AppLocaleUtil.LAUNCHER_ENTRY_INTENT, PackageManager.ResolveInfoFlags.of(PackageManager.GET_META_DATA.toLong()), userId, ) }.combine(appListFlow) { resolveInfos, appList -> }.combine(appListFlow) { (userId, resolveInfos), appList -> val userContext = context.asUser(UserHandle.of(userId)) appList.map { app -> AppLanguagesRecord( app = app, isAppLocaleSupported = AppLocaleUtil.canDisplayLocaleUi( context, app, resolveInfos userContext, app, resolveInfos ), ) } Loading @@ -86,9 +89,7 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang }.collectAsStateWithLifecycle(initialValue = stringResource(R.string.summary_placeholder)) private fun getSummary(app: ApplicationInfo): String = AppLocaleDetails.getAppDefaultLocale(context, app.packageName)?.let { AppLocaleDetails.getSummary(context, app).toString() } ?: context.getString(R.string.preference_of_system_locale_summary) @Composable override fun AppListItemModel<AppLanguagesRecord>.AppItem() { Loading @@ -96,8 +97,7 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang val intent = Intent(context, AppLocalePickerActivity::class.java).apply { data = Uri.parse("package:${record.app.packageName}") } val userHandle : UserHandle = UserHandle.getUserHandleForUid(record.app.uid) context.startActivityAsUser(intent, userHandle) context.startActivityAsUser(intent, record.app.userHandle) } } }