[Settings] Add a flag to control show new App language picker UI or not

Bug: 391519669
Test: manual
Flag: EXEMPT refactor
Change-Id: I75921630b55c21d0b93dc626445f58e6bf1bd043
This commit is contained in:
Zoey Chen
2025-01-21 05:09:25 +00:00
parent cc0c66a7ee
commit b69e2820ea

View File

@@ -16,11 +16,13 @@
package com.android.settings.spa.system package com.android.settings.spa.system
import android.app.settings.SettingsEnums
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.net.Uri import android.net.Uri
import android.os.Bundle
import android.os.UserHandle import android.os.UserHandle
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@@ -30,7 +32,10 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R import com.android.settings.R
import com.android.settings.applications.AppLocaleUtil import com.android.settings.applications.AppLocaleUtil
import com.android.settings.applications.appinfo.AppLocaleDetails import com.android.settings.applications.appinfo.AppLocaleDetails
import com.android.settings.core.SubSettingLauncher
import com.android.settings.flags.Flags
import com.android.settings.localepicker.AppLocalePickerActivity import com.android.settings.localepicker.AppLocalePickerActivity
import com.android.settings.localepicker.AppLocalePickerFragment
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.framework.common.asUser
import com.android.settingslib.spaprivileged.model.app.AppListModel import com.android.settingslib.spaprivileged.model.app.AppListModel
@@ -94,10 +99,23 @@ class AppLanguagesListModel(private val context: Context) : AppListModel<AppLang
@Composable @Composable
override fun AppListItemModel<AppLanguagesRecord>.AppItem() { override fun AppListItemModel<AppLanguagesRecord>.AppItem() {
AppListItem { AppListItem {
val intent = Intent(context, AppLocalePickerActivity::class.java).apply { if (Flags.settingsExpressiveDesignEnabled()) {
data = Uri.parse("package:${record.app.packageName}") val extra = Bundle()
extra.putString(AppLocalePickerFragment.ARG_PACKAGE_NAME, record.app.packageName)
extra.putInt(AppLocalePickerFragment.ARG_PACKAGE_UID, context.userId)
SubSettingLauncher(context)
.setDestination(AppLocalePickerFragment::class.java.canonicalName)
.setTitleText(context.getString(R.string.app_locale_picker_title))
.setSourceMetricsCategory(SettingsEnums.APPS_LOCALE_LIST)
.setArguments(extra)
.setUserHandle(record.app.userHandle)
.launch()
} else {
val intent = Intent(context, AppLocalePickerActivity::class.java).apply {
data = Uri.parse("package:${record.app.packageName}")
}
context.startActivityAsUser(intent, record.app.userHandle)
} }
context.startActivityAsUser(intent, record.app.userHandle)
} }
} }
} }