[Settings] Create new fragment for app language

Bug: 388199937
Test: manual
Flag: EXEMPT refactor
Change-Id: I9afc5039456d7824421138209c62fd1b08f3698c
This commit is contained in:
Zoey Chen
2025-01-21 06:06:27 +00:00
parent 4943337ee3
commit 55b6541023
2 changed files with 454 additions and 11 deletions

View File

@@ -71,6 +71,9 @@ public class RegionAndNumberingSystemPickerFragment extends DashboardFragment im
private static final String KEY_PREFERENCE_SYSTEM_LOCALE_LIST = "system_locale_list";
private static final String KEY_PREFERENCE_SYSTEM_LOCALE_SUGGESTED_LIST =
"system_locale_suggested_list";
private static final String KEY_PREFERENCE_APP_LOCALE_LIST = "app_locale_list";
private static final String KEY_PREFERENCE_APP_LOCALE_SUGGESTED_LIST =
"app_locale_suggested_list";
private static final String KEY_TOP_INTRO_PREFERENCE = "top_intro_region";
private static final String EXTRA_EXPAND_SEARCH_VIEW = "expand_search_view";
@@ -82,6 +85,10 @@ public class RegionAndNumberingSystemPickerFragment extends DashboardFragment im
private SystemLocaleAllListPreferenceController mSystemLocaleAllListPreferenceController;
@SuppressWarnings("NullAway")
private SystemLocaleSuggestedListPreferenceController mSuggestedListPreferenceController;
@SuppressWarnings("NullAway")
private AppLocaleAllListPreferenceController mAppLocaleAllListPreferenceController;
@SuppressWarnings("NullAway")
private AppLocaleSuggestedListPreferenceController mAppLocaleSuggestedListPreferenceController;
@Nullable
private LocaleStore.LocaleInfo mLocaleInfo;
@Nullable
@@ -95,6 +102,8 @@ public class RegionAndNumberingSystemPickerFragment extends DashboardFragment im
private boolean mIsNumberingMode;
@Nullable
private CharSequence mPrefix;
@SuppressWarnings("NullAway")
private String mPackageName;
@Override
public void onCreate(@NonNull Bundle icicle) {
@@ -298,21 +307,36 @@ public class RegionAndNumberingSystemPickerFragment extends DashboardFragment im
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
return buildPreferenceControllers(context, getSettingsLifecycle());
return buildPreferenceControllers(context);
}
private List<AbstractPreferenceController> buildPreferenceControllers(
@NonNull Context context, @Nullable Lifecycle lifecycle) {
@NonNull Context context) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
mLocaleInfo = (LocaleStore.LocaleInfo) getArguments().getSerializable(EXTRA_TARGET_LOCALE);
mIsNumberingMode = getArguments().getBoolean(EXTRA_IS_NUMBERING_SYSTEM);
mSuggestedListPreferenceController = new SystemLocaleSuggestedListPreferenceController(
context, KEY_PREFERENCE_SYSTEM_LOCALE_SUGGESTED_LIST, mLocaleInfo,
mIsNumberingMode);
mSystemLocaleAllListPreferenceController = new SystemLocaleAllListPreferenceController(
context, KEY_PREFERENCE_SYSTEM_LOCALE_LIST, mLocaleInfo, mIsNumberingMode);
controllers.add(mSuggestedListPreferenceController);
controllers.add(mSystemLocaleAllListPreferenceController);
Bundle args = getArguments();
mLocaleInfo = (LocaleStore.LocaleInfo) args.getSerializable(EXTRA_TARGET_LOCALE);
mIsNumberingMode = args.getBoolean(EXTRA_IS_NUMBERING_SYSTEM);
mPackageName = args.getString(EXTRA_APP_PACKAGE_NAME);
Log.d(TAG, "buildPreferenceControllers packageName = " + mPackageName);
if (TextUtils.isEmpty(mPackageName)) {
mSuggestedListPreferenceController = new SystemLocaleSuggestedListPreferenceController(
context, KEY_PREFERENCE_SYSTEM_LOCALE_SUGGESTED_LIST, mLocaleInfo,
mIsNumberingMode);
mSystemLocaleAllListPreferenceController = new SystemLocaleAllListPreferenceController(
context, KEY_PREFERENCE_SYSTEM_LOCALE_LIST, mLocaleInfo, mIsNumberingMode);
controllers.add(mSuggestedListPreferenceController);
controllers.add(mSystemLocaleAllListPreferenceController);
} else {
mAppLocaleSuggestedListPreferenceController =
new AppLocaleSuggestedListPreferenceController(context,
KEY_PREFERENCE_APP_LOCALE_SUGGESTED_LIST, mPackageName,
mIsNumberingMode, mLocaleInfo);
mAppLocaleAllListPreferenceController = new AppLocaleAllListPreferenceController(
context, KEY_PREFERENCE_APP_LOCALE_LIST, mPackageName, mIsNumberingMode,
mLocaleInfo);
controllers.add(mAppLocaleSuggestedListPreferenceController);
controllers.add(mAppLocaleAllListPreferenceController);
}
return controllers;
}