From 7e27ecb91e65312611c99a4a632d4b502db7b840 Mon Sep 17 00:00:00 2001 From: tom hsu Date: Mon, 23 May 2022 18:50:28 +0800 Subject: [PATCH] [Panlingual] Fix icon shall have work badage in work profile. Bug: 233064114 Test: local Change-Id: I8aa24373f0381b172c30d16aedb2f9ba97238234 --- .../applications/appinfo/AppLocaleDetails.java | 10 +++++++--- .../localepicker/AppLocalePickerActivity.java | 15 ++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java index 88b9d513c82..6ada41bec97 100644 --- a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java +++ b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java @@ -66,11 +66,13 @@ public class AppLocaleDetails extends SettingsPreferenceFragment { /** * Create a instance of AppLocaleDetails. * @param packageName Indicates which application need to show the locale picker. + * @param uid User id. */ - public static AppLocaleDetails newInstance(String packageName) { + public static AppLocaleDetails newInstance(String packageName, int uid) { AppLocaleDetails appLocaleDetails = new AppLocaleDetails(); Bundle bundle = new Bundle(); bundle.putString(AppInfoBase.ARG_PACKAGE_NAME, packageName); + bundle.putInt(AppInfoBase.ARG_PACKAGE_UID, uid); appLocaleDetails.setArguments(bundle); return appLocaleDetails; } @@ -81,13 +83,15 @@ public class AppLocaleDetails extends SettingsPreferenceFragment { Bundle bundle = getArguments(); mPackageName = bundle.getString(AppInfoBase.ARG_PACKAGE_NAME, ""); if (mPackageName.isEmpty()) { - Log.d(TAG, "No package name."); + Log.d(TAG, "There is no package name."); finish(); } + int uid = bundle.getInt(AppInfoBase.ARG_PACKAGE_UID, getContext().getUserId()); + addPreferencesFromResource(R.xml.app_locale_details); mPrefOfDescription = getPreferenceScreen().findPreference(KEY_APP_DESCRIPTION); mPrefOfDisclaimer = getPreferenceScreen().findPreference(KEY_APP_DISCLAIMER); - mApplicationInfo = getApplicationInfo(mPackageName, getContext().getUserId()); + mApplicationInfo = getApplicationInfo(mPackageName, uid); setDisclaimerPreference(); } diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java index 377a076ec63..b7fef30a58e 100644 --- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java +++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java @@ -62,13 +62,14 @@ public class AppLocalePickerActivity extends SettingsBaseActivity finish(); return; } - int uid = getIntent().getIntExtra(AppInfoBase.ARG_PACKAGE_UID, -1); - if (uid == -1) { - Log.w(TAG, "Unexpected user id"); - finish(); + mContextAsUser = this; + if (getIntent().hasExtra(AppInfoBase.ARG_PACKAGE_UID)) { + int userId = getIntent().getIntExtra(AppInfoBase.ARG_PACKAGE_UID, -1); + if (userId != -1) { + UserHandle userHandle = UserHandle.getUserHandleForUid(userId); + mContextAsUser = createContextAsUser(userHandle, 0); + } } - UserHandle userHandle = UserHandle.getUserHandleForUid(uid); - mContextAsUser = createContextAsUser(userHandle, 0); setTitle(R.string.app_locale_picker_title); getActionBar().setDisplayHomeAsUpEnabled(true); @@ -79,7 +80,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity false /* translate only */, mPackageName, this); - mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName); + mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, mContextAsUser.getUserId()); mAppLocaleDetailContainer = launchAppLocaleDetailsPage(); // Launch Locale picker part. launchLocalePickerPage();