diff --git a/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java b/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java index 6bf94a61200..55331ab3536 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 d335324a339..2186bc14c45 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -654,8 +654,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 691344da60f..8d28d6bc306 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,15 +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; @@ -82,12 +71,12 @@ public class AppLocalePickerActivity extends SettingsBaseActivity getActionBar().setDisplayHomeAsUpEnabled(true); mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker( - mContextAsUser, + this, this, false /* translate only */, mPackageName, this); - mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, mContextAsUser.getUserId()); + mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, getUserId()); mAppLocaleDetailContainer = launchAppLocaleDetailsPage(); // Launch Locale picker part. launchLocalePickerPage(); @@ -127,7 +116,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; @@ -169,8 +158,8 @@ public class AppLocalePickerActivity extends SettingsBaseActivity } private boolean canDisplayLocaleUi() { - return AppLocaleUtil.canDisplayLocaleUi(mContextAsUser, mPackageName, - mContextAsUser.getPackageManager().queryIntentActivities( - AppLocaleUtil.LAUNCHER_ENTRY_INTENT, PackageManager.GET_META_DATA)); + return AppLocaleUtil.canDisplayLocaleUi(this, mPackageName, + getPackageManager().queryIntentActivities(AppLocaleUtil.LAUNCHER_ENTRY_INTENT, + PackageManager.GET_META_DATA)); } } diff --git a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java index 77b2abb76dc..a8748f4b0a5 100644 --- a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java +++ b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java @@ -73,7 +73,6 @@ import java.util.Locale; shadows = { AppLocalePickerActivityTest.ShadowApplicationPackageManager.class, AppLocalePickerActivityTest.ShadowResources.class, - AppLocalePickerActivityTest.ShadowUserHandle.class, AppLocalePickerActivityTest.ShadowLocaleConfig.class, }) public class AppLocalePickerActivityTest { @@ -100,7 +99,6 @@ public class AppLocalePickerActivityTest { mPackageManager.removePackage(TEST_PACKAGE_NAME); ShadowResources.setDisAllowPackage(false); ShadowApplicationPackageManager.setNoLaunchEntry(false); - ShadowUserHandle.setUserId(0); ShadowLocaleConfig.setStatus(LocaleConfig.STATUS_SUCCESS); } @@ -164,17 +162,6 @@ public class AppLocalePickerActivityTest { assertThat(controller.get().isFinishing()).isTrue(); } - @Test - public void launchAppLocalePickerActivity_modifyAppLocalesOfAnotherUser_failed() { - ShadowUserHandle.setUserId(10); - - ActivityController controller = - initActivityController(true); - controller.create(); - - assertThat(controller.get().isFinishing()).isTrue(); - } - @Test public void launchAppLocalePickerActivity_intentWithoutPackageName_failed() { ActivityController controller = @@ -286,19 +273,6 @@ public class AppLocalePickerActivityTest { } } - @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; - } - } - @Implements(LocaleConfig.class) public static class ShadowLocaleConfig { private static int sStatus = 0;