Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 568ba14b authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix App languages for work profile" into udc-dev

parents c00fb2ef 9661f163
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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)
        }
    }
}