Merge "[Panlingual] Can't set per-app languages for apps on work profile page" into tm-qpr-dev am: d06d826549
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22173333 Change-Id: I3d91cd2c803357778718e7d70350aa73c4cec675 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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(
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
||||
|
@@ -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<TestAppLocalePickerActivity> controller =
|
||||
initActivityController(true);
|
||||
controller.create();
|
||||
|
||||
assertThat(controller.get().isFinishing()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchAppLocalePickerActivity_intentWithoutPackageName_failed() {
|
||||
ActivityController<TestAppLocalePickerActivity> 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;
|
||||
|
Reference in New Issue
Block a user