Merge "Hide "Remove" menu & the drag handle when there's just one locale" into nyc-dev
diff --git a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
index b56dd6c..28a5588 100644
--- a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
+++ b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
@@ -153,7 +153,7 @@
dragCell.setMiniLabel(mNumberFormatter.format(i + 1));
dragCell.setShowCheckbox(mRemoveMode);
dragCell.setShowMiniLabel(!mRemoveMode);
- dragCell.setShowHandle(!mRemoveMode);
+ dragCell.setShowHandle(!mRemoveMode && mDragEnabled);
dragCell.setChecked(false);
dragCell.setTag(feedItem);
dragCell.getCheckbox()
diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java
index 18bec15..ef3fbaa 100644
--- a/src/com/android/settings/localepicker/LocaleListEditor.java
+++ b/src/com/android/settings/localepicker/LocaleListEditor.java
@@ -67,7 +67,7 @@
setHasOptionsMenu(true);
LocaleStore.fillCache(this.getContext());
- List<LocaleStore.LocaleInfo> feedsList = getUserLocaleList(this.getContext());
+ final List<LocaleStore.LocaleInfo> feedsList = getUserLocaleList(this.getContext());
mAdapter = new LocaleDragAndDropAdapter(this.getContext(), feedsList);
}
@@ -144,6 +144,7 @@
public void onClick(DialogInterface dialog, int which) {
mAdapter.removeChecked();
setRemoveMode(!mRemoveMode);
+ updateVisibilityOfRemoveMenu();
}
})
.create()
@@ -158,6 +159,7 @@
menuItem.setIcon(R.drawable.ic_delete);
super.onCreateOptionsMenu(menu, inflater);
mMenu = menu;
+ updateVisibilityOfRemoveMenu();
}
private static List<LocaleStore.LocaleInfo> getUserLocaleList(Context context) {
@@ -201,6 +203,15 @@
@Override
public void onLocaleSelected(LocaleStore.LocaleInfo locale) {
mAdapter.addLocale(locale);
+ updateVisibilityOfRemoveMenu();
}
+ // 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() {
+ final MenuItem menuItemRemove = mMenu.findItem(MENU_ID_REMOVE);
+ if (menuItemRemove != null) {
+ menuItemRemove.setVisible(mAdapter.getItemCount() > 1);
+ }
+ }
}