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.applications.appinfo.AppLocaleDetails
|
||||||
import com.android.settings.localepicker.AppLocalePickerActivity
|
import com.android.settings.localepicker.AppLocalePickerActivity
|
||||||
import com.android.settingslib.spa.framework.util.filterItem
|
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.AppListModel
|
||||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
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.AppListItem
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
|
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
|
||||||
import kotlinx.coroutines.Dispatchers
|
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>>) =
|
override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
|
||||||
userIdFlow.map { userId ->
|
userIdFlow.map { userId ->
|
||||||
packageManager.queryIntentActivitiesAsUser(
|
userId to packageManager.queryIntentActivitiesAsUser(
|
||||||
AppLocaleUtil.LAUNCHER_ENTRY_INTENT,
|
AppLocaleUtil.LAUNCHER_ENTRY_INTENT,
|
||||||
PackageManager.ResolveInfoFlags.of(PackageManager.GET_META_DATA.toLong()),
|
PackageManager.ResolveInfoFlags.of(PackageManager.GET_META_DATA.toLong()),
|
||||||
userId,
|
userId,
|
||||||
)
|
)
|
||||||
}.combine(appListFlow) { resolveInfos, appList ->
|
}.combine(appListFlow) { (userId, resolveInfos), appList ->
|
||||||
|
val userContext = context.asUser(UserHandle.of(userId))
|
||||||
appList.map { app ->
|
appList.map { app ->
|
||||||
AppLanguagesRecord(
|
AppLanguagesRecord(
|
||||||
app = app,
|
app = app,
|
||||||
isAppLocaleSupported = AppLocaleUtil.canDisplayLocaleUi(
|
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))
|
}.collectAsStateWithLifecycle(initialValue = stringResource(R.string.summary_placeholder))
|
||||||
|
|
||||||
private fun getSummary(app: ApplicationInfo): String =
|
private fun getSummary(app: ApplicationInfo): String =
|
||||||
AppLocaleDetails.getAppDefaultLocale(context, app.packageName)?.let {
|
AppLocaleDetails.getSummary(context, app).toString()
|
||||||
AppLocaleDetails.getSummary(context, app).toString()
|
|
||||||
} ?: context.getString(R.string.preference_of_system_locale_summary)
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun AppListItemModel<AppLanguagesRecord>.AppItem() {
|
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 {
|
val intent = Intent(context, AppLocalePickerActivity::class.java).apply {
|
||||||
data = Uri.parse("package:${record.app.packageName}")
|
data = Uri.parse("package:${record.app.packageName}")
|
||||||
}
|
}
|
||||||
val userHandle : UserHandle = UserHandle.getUserHandleForUid(record.app.uid)
|
context.startActivityAsUser(intent, record.app.userHandle)
|
||||||
context.startActivityAsUser(intent, userHandle)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user