[Panlingual] Handle onLocaleSelected. am: 963abde2dc

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17518130

Change-Id: Ifde27e7a8e2f79e0507d994977f80f881f38b54d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
danielwbhuang
2022-03-31 12:17:58 +00:00
committed by Automerger Merge Worker

View File

@@ -17,7 +17,9 @@
package com.android.settings.localepicker;
import android.app.FragmentTransaction;
import android.app.LocaleManager;
import android.os.Bundle;
import android.os.LocaleList;
import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
@@ -36,11 +38,13 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
implements LocalePickerWithRegion.LocaleSelectedListener {
private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
private String mPackageName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String packageName = getIntent().getData().getSchemeSpecificPart();
if (TextUtils.isEmpty(packageName)) {
mPackageName = getIntent().getData().getSchemeSpecificPart();
if (TextUtils.isEmpty(mPackageName)) {
Log.d(TAG, "There is no package name.");
finish();
return;
@@ -50,7 +54,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
setContentView(R.layout.app_locale_picker);
// Create App locale info detail part.
AppLocaleDetails appLocaleDetails = AppLocaleDetails.newInstance(packageName);
AppLocaleDetails appLocaleDetails = AppLocaleDetails.newInstance(mPackageName);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.app_locale_detail, appLocaleDetails)
@@ -92,9 +96,23 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
}
@Override
public void onLocaleSelected(LocaleStore.LocaleInfo locale) {
// TODO When locale is selected, this shall set per app language here.
public void onLocaleSelected(LocaleStore.LocaleInfo localeInfo) {
if (localeInfo == null || localeInfo.getLocale() == null || localeInfo.isSystemLocale()) {
setAppDefaultLocale("");
} else {
setAppDefaultLocale(localeInfo.getLocale().getLanguage());
}
finish();
}
/** Sets the app's locale to the supplied language tag */
private void setAppDefaultLocale(String languageTag) {
LocaleManager localeManager = getSystemService(LocaleManager.class);
if (localeManager == null) {
Log.w(TAG, "LocaleManager is null, cannot set default app locale");
return;
}
localeManager.setApplicationLocales(mPackageName, LocaleList.forLanguageTags(languageTag));
}
}