diff --git a/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java b/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java index d58607fa66f..f1a6d363b20 100644 --- a/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java @@ -28,7 +28,6 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import com.android.settings.SettingsPreferenceFragment; -import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.AppLocaleUtil; import com.android.settings.localepicker.AppLocalePickerActivity; @@ -72,7 +71,6 @@ public class AppLocalePreferenceController extends AppInfoPreferenceControllerBa if (mParent != null) { Intent intent = new Intent(mContext, AppLocalePickerActivity.class); intent.setData(Uri.parse("package:" + mParent.getAppEntry().info.packageName)); - intent.putExtra(AppInfoBase.ARG_PACKAGE_UID, mParent.getAppEntry().info.uid); mContext.startActivity(intent); return true; } else { diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index cb1009a941d..0fbbf18f0a5 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -709,8 +709,8 @@ public class ManageApplications extends InstrumentedFragment case LIST_TYPE_APPS_LOCALE: Intent intent = new Intent(getContext(), AppLocalePickerActivity.class); intent.setData(Uri.parse("package:" + mCurrentPkgName)); - intent.putExtra(AppInfoBase.ARG_PACKAGE_UID, mCurrentUid); - startActivity(intent); + getContext().startActivityAsUser(intent, + UserHandle.getUserHandleForUid(mCurrentUid)); break; case LIST_TYPE_BATTERY_OPTIMIZATION: AdvancedPowerUsageDetail.startBatteryDetailPage( diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java index 6dab5cf8bdc..9efaf63c687 100644 --- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java +++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java @@ -18,12 +18,10 @@ package com.android.settings.localepicker; import android.app.FragmentTransaction; import android.app.LocaleManager; -import android.content.Context; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.os.LocaleList; -import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; import android.view.MenuItem; @@ -34,7 +32,6 @@ import android.widget.ListView; import com.android.internal.app.LocalePickerWithRegion; import com.android.internal.app.LocaleStore; import com.android.settings.R; -import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.AppLocaleUtil; import com.android.settings.applications.appinfo.AppLocaleDetails; import com.android.settings.core.SettingsBaseActivity; @@ -46,7 +43,6 @@ public class AppLocalePickerActivity extends SettingsBaseActivity private String mPackageName; private LocalePickerWithRegion mLocalePickerWithRegion; private AppLocaleDetails mAppLocaleDetails; - private Context mContextAsUser; private View mAppLocaleDetailContainer; @Override @@ -64,16 +60,8 @@ public class AppLocalePickerActivity extends SettingsBaseActivity finish(); return; } - mContextAsUser = this; - if (getIntent().hasExtra(AppInfoBase.ARG_PACKAGE_UID)) { - int uid = getIntent().getIntExtra(AppInfoBase.ARG_PACKAGE_UID, -1); - if (uid != -1) { - UserHandle userHandle = UserHandle.getUserHandleForUid(uid); - mContextAsUser = createContextAsUser(userHandle, 0); - } - } - if (!canDisplayLocaleUi() || mContextAsUser.getUserId() != UserHandle.myUserId()) { + if (!canDisplayLocaleUi()) { Log.w(TAG, "Not allow to display Locale Settings UI."); finish(); return; @@ -83,13 +71,13 @@ public class AppLocalePickerActivity extends SettingsBaseActivity getActionBar().setDisplayHomeAsUpEnabled(true); mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker( - mContextAsUser, + this, this, false /* translate only */, null, mPackageName, this); - mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, mContextAsUser.getUserId()); + mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, getUserId()); mAppLocaleDetailContainer = launchAppLocaleDetailsPage(); // Launch Locale picker part. launchLocalePickerPage(); @@ -129,7 +117,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity /** Sets the app's locale to the supplied language tag */ private void setAppDefaultLocale(String languageTag) { Log.d(TAG, "setAppDefaultLocale: " + languageTag); - LocaleManager localeManager = mContextAsUser.getSystemService(LocaleManager.class); + LocaleManager localeManager = getSystemService(LocaleManager.class); if (localeManager == null) { Log.w(TAG, "LocaleManager is null, cannot set default app locale"); return; @@ -172,8 +160,8 @@ public class AppLocalePickerActivity extends SettingsBaseActivity private boolean canDisplayLocaleUi() { try { - PackageManager packageManager = mContextAsUser.getPackageManager(); - return AppLocaleUtil.canDisplayLocaleUi(mContextAsUser, + PackageManager packageManager = getPackageManager(); + return AppLocaleUtil.canDisplayLocaleUi(this, packageManager.getApplicationInfo(mPackageName, 0), packageManager.queryIntentActivities(AppLocaleUtil.LAUNCHER_ENTRY_INTENT, PackageManager.GET_META_DATA)); diff --git a/src/com/android/settings/spa/system/AppLanguagesListModel.kt b/src/com/android/settings/spa/system/AppLanguagesListModel.kt index 4aa4c7a5700..3141d68c94f 100644 --- a/src/com/android/settings/spa/system/AppLanguagesListModel.kt +++ b/src/com/android/settings/spa/system/AppLanguagesListModel.kt @@ -21,6 +21,7 @@ import android.content.Intent import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.net.Uri +import android.os.UserHandle import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.remember @@ -94,9 +95,9 @@ class AppLanguagesListModel(private val context: Context) : AppListModel controller = - initActivityController(true); - controller.create(); - - assertThat(controller.get().isFinishing()).isTrue(); - } - @Test public void launchAppLocalePickerActivity_intentWithoutPackageName_failed() { ActivityController controller = @@ -292,17 +279,4 @@ public class AppLocalePickerActivityTest { sDisAllowPackage = disAllowPackage; } } - - @Implements(UserHandle.class) - public static class ShadowUserHandle { - private static int sUserId = 0; - private static void setUserId(int userId) { - sUserId = userId; - } - - @Implementation - public static int getUserId(int userId) { - return sUserId; - } - } }