Merge "Fix App languages for work profile" into udc-dev am: 568ba14b9b

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22530839

Change-Id: I2502ce3c6d41cafc1f5d1012f4ab315c3e1f209a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-04-12 11:04:46 +00:00
committed by Automerger Merge Worker

View File

@@ -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
@@ -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
),
)
}
@@ -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() {
@@ -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)
}
}
}