Pass viewable locales to LocalePickerWithRegion
Bug: b/249219775 Test: Manual test Change-Id: I48f2f02a365d3597023e021a7819d31709e6d5d8
This commit is contained in:
@@ -78,6 +78,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
|||||||
mContextAsUser,
|
mContextAsUser,
|
||||||
this,
|
this,
|
||||||
false /* translate only */,
|
false /* translate only */,
|
||||||
|
null,
|
||||||
mPackageName,
|
mPackageName,
|
||||||
this);
|
this);
|
||||||
mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, mContextAsUser.getUserId());
|
mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName, mContextAsUser.getUserId());
|
||||||
|
@@ -307,6 +307,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment {
|
|||||||
|
|
||||||
final Intent intent = new Intent(getActivity(),
|
final Intent intent = new Intent(getActivity(),
|
||||||
LocalePickerWithRegionActivity.class);
|
LocalePickerWithRegionActivity.class);
|
||||||
|
intent.putExtras(getActivity().getIntent().getExtras());
|
||||||
startActivityForResult(intent, REQUEST_LOCALE_PICKER);
|
startActivityForResult(intent, REQUEST_LOCALE_PICKER);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -19,6 +19,9 @@ package com.android.settings.localepicker;
|
|||||||
import android.app.FragmentTransaction;
|
import android.app.FragmentTransaction;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.LocaleList;
|
||||||
|
import android.provider.Settings;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import com.android.internal.app.LocalePickerWithRegion;
|
import com.android.internal.app.LocalePickerWithRegion;
|
||||||
@@ -29,7 +32,7 @@ import com.android.settings.core.SettingsBaseActivity;
|
|||||||
/** A activity to show the locale picker page. */
|
/** A activity to show the locale picker page. */
|
||||||
public class LocalePickerWithRegionActivity extends SettingsBaseActivity
|
public class LocalePickerWithRegionActivity extends SettingsBaseActivity
|
||||||
implements LocalePickerWithRegion.LocaleSelectedListener {
|
implements LocalePickerWithRegion.LocaleSelectedListener {
|
||||||
|
private static final String TAG = LocalePickerWithRegionActivity.class.getSimpleName();
|
||||||
private static final String PARENT_FRAGMENT_NAME = "localeListEditor";
|
private static final String PARENT_FRAGMENT_NAME = "localeListEditor";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -37,9 +40,20 @@ public class LocalePickerWithRegionActivity extends SettingsBaseActivity
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
setTitle(R.string.add_a_language);
|
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(
|
final LocalePickerWithRegion selector = LocalePickerWithRegion.createLanguagePicker(
|
||||||
this, LocalePickerWithRegionActivity.this, false /* translate only */);
|
this,
|
||||||
|
LocalePickerWithRegionActivity.this,
|
||||||
|
false /* translate only */,
|
||||||
|
explicitLocales);
|
||||||
getFragmentManager()
|
getFragmentManager()
|
||||||
.beginTransaction()
|
.beginTransaction()
|
||||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||||
@@ -78,5 +92,10 @@ public class LocalePickerWithRegionActivity extends SettingsBaseActivity
|
|||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isDeviceDemoMode() {
|
||||||
|
return Settings.Global.getInt(
|
||||||
|
getContentResolver(), Settings.Global.DEVICE_DEMO_MODE, 0) == 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user