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:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user