Pass viewable locales to LocalePickerWithRegion

Bug: b/249219775
Test: Manual test
Change-Id: I48f2f02a365d3597023e021a7819d31709e6d5d8
This commit is contained in:
tom hsu
2023-01-16 15:16:28 +08:00
parent b427e8f02a
commit 5342479f89
3 changed files with 23 additions and 2 deletions

View File

@@ -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;
}
}