Merge "[Language] Should show confirm dialog when deleting the system language and making the second language automatically become the system language" into udc-qpr-dev am: 7fd3730909
am: 6572d4d09e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24069201 Change-Id: If40a1678b673aa4331fa3e9624f4c7b858da3ebf Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -395,10 +395,13 @@ class LocaleDragAndDropAdapter
|
||||
// drag locale's original position to the top.
|
||||
mDragLocale = (LocaleStore.LocaleInfo) savedInstanceState.getSerializable(
|
||||
CFGKEY_DRAG_LOCALE);
|
||||
mFeedItemList.removeIf(
|
||||
localeInfo -> TextUtils.equals(localeInfo.getId(), mDragLocale.getId()));
|
||||
mFeedItemList.add(0, mDragLocale);
|
||||
notifyItemRangeChanged(0, mFeedItemList.size());
|
||||
if (mDragLocale != null) {
|
||||
mFeedItemList.removeIf(
|
||||
localeInfo -> TextUtils.equals(localeInfo.getId(),
|
||||
mDragLocale.getId()));
|
||||
mFeedItemList.add(0, mDragLocale);
|
||||
notifyItemRangeChanged(0, mFeedItemList.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -456,7 +456,13 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View
|
||||
// to remove.
|
||||
mRemoveMode = false;
|
||||
mShowingRemoveDialog = false;
|
||||
LocaleStore.LocaleInfo firstLocale =
|
||||
mAdapter.getFeedItemList().get(0);
|
||||
mAdapter.removeChecked();
|
||||
boolean isFirstRemoved =
|
||||
firstLocale != mAdapter.getFeedItemList().get(0);
|
||||
showConfirmDialog(isFirstRemoved, isFirstRemoved ? firstLocale
|
||||
: mAdapter.getFeedItemList().get(0));
|
||||
setRemoveMode(false);
|
||||
}
|
||||
})
|
||||
@@ -522,22 +528,27 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
if (event.getAction() == MotionEvent.ACTION_UP
|
||||
|| event.getAction() == MotionEvent.ACTION_CANCEL) {
|
||||
LocaleStore.LocaleInfo localeInfo = mAdapter.getFeedItemList().get(0);
|
||||
if (!localeInfo.getLocale().equals(LocalePicker.getLocales().get(0))) {
|
||||
final LocaleDialogFragment localeDialogFragment =
|
||||
LocaleDialogFragment.newInstance();
|
||||
Bundle args = new Bundle();
|
||||
args.putInt(LocaleDialogFragment.ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT);
|
||||
args.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, localeInfo);
|
||||
localeDialogFragment.setArguments(args);
|
||||
localeDialogFragment.show(mFragmentManager, TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT);
|
||||
} else {
|
||||
mAdapter.doTheUpdate();
|
||||
}
|
||||
showConfirmDialog(false, mAdapter.getFeedItemList().get(0));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void showConfirmDialog(boolean isFirstRemoved, LocaleStore.LocaleInfo localeInfo) {
|
||||
Locale currentSystemLocale = LocalePicker.getLocales().get(0);
|
||||
if (!localeInfo.getLocale().equals(currentSystemLocale)) {
|
||||
final LocaleDialogFragment localeDialogFragment =
|
||||
LocaleDialogFragment.newInstance();
|
||||
Bundle args = new Bundle();
|
||||
args.putInt(LocaleDialogFragment.ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT);
|
||||
args.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE,
|
||||
isFirstRemoved ? LocaleStore.getLocaleInfo(currentSystemLocale) : localeInfo);
|
||||
localeDialogFragment.setArguments(args);
|
||||
localeDialogFragment.show(mFragmentManager, TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT);
|
||||
} else {
|
||||
mAdapter.doTheUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
// Hide the "Remove" menu if there is only one locale in the list, show it otherwise
|
||||
// This is called when the menu is first created, and then one add / remove locale
|
||||
private void updateVisibilityOfRemoveMenu() {
|
||||
|
Reference in New Issue
Block a user