diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java index 2629b6ca639..aecc5710252 100644 --- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java +++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java @@ -78,6 +78,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity mContextAsUser, this, false /* translate only */, + null, mPackageName, this); mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, mContextAsUser.getUserId()); diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java index 1d6fb47d76a..6ce72de2ce2 100644 --- a/src/com/android/settings/localepicker/LocaleListEditor.java +++ b/src/com/android/settings/localepicker/LocaleListEditor.java @@ -307,6 +307,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment { final Intent intent = new Intent(getActivity(), LocalePickerWithRegionActivity.class); + intent.putExtras(getActivity().getIntent().getExtras()); startActivityForResult(intent, REQUEST_LOCALE_PICKER); } }); diff --git a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java index a8c93c17944..9c7e6370db3 100644 --- a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java +++ b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java @@ -19,6 +19,9 @@ package com.android.settings.localepicker; import android.app.FragmentTransaction; import android.content.Intent; import android.os.Bundle; +import android.os.LocaleList; +import android.provider.Settings; +import android.util.Log; import android.view.MenuItem; import com.android.internal.app.LocalePickerWithRegion; @@ -29,7 +32,7 @@ import com.android.settings.core.SettingsBaseActivity; /** A activity to show the locale picker page. */ public class LocalePickerWithRegionActivity extends SettingsBaseActivity implements LocalePickerWithRegion.LocaleSelectedListener { - + private static final String TAG = LocalePickerWithRegionActivity.class.getSimpleName(); private static final String PARENT_FRAGMENT_NAME = "localeListEditor"; @Override @@ -37,9 +40,20 @@ public class LocalePickerWithRegionActivity extends SettingsBaseActivity super.onCreate(savedInstanceState); getActionBar().setDisplayHomeAsUpEnabled(true); setTitle(R.string.add_a_language); + LocaleList explicitLocales = null; + if (isDeviceDemoMode()) { + Bundle bundle = getIntent().getExtras(); + explicitLocales = bundle == null + ? null + : bundle.getParcelable(Settings.EXTRA_EXPLICIT_LOCALES, LocaleList.class); + Log.i(TAG, "Has explicit locales : " + explicitLocales); + } final LocalePickerWithRegion selector = LocalePickerWithRegion.createLanguagePicker( - this, LocalePickerWithRegionActivity.this, false /* translate only */); + this, + LocalePickerWithRegionActivity.this, + false /* translate only */, + explicitLocales); getFragmentManager() .beginTransaction() .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) @@ -78,5 +92,10 @@ public class LocalePickerWithRegionActivity extends SettingsBaseActivity finish(); } } + + private boolean isDeviceDemoMode() { + return Settings.Global.getInt( + getContentResolver(), Settings.Global.DEVICE_DEMO_MODE, 0) == 1; + } }