mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2026-02-04 16:45:45 +00:00
Move "select all" to overflow menu (#8147)
No app seems to use the standard select all icon anymore, and users in my tests were confused.
This commit is contained in:
committed by
GitHub
parent
93e9ddcad4
commit
7bba2dea97
@ -60,8 +60,8 @@ public abstract class SelectableAdapter<T extends RecyclerView.ViewHolder> exten
|
||||
@Override
|
||||
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
||||
onSelectedItemsUpdated();
|
||||
toggleSelectAllIcon(menu.findItem(R.id.select_toggle), false);
|
||||
return false;
|
||||
toggleSelectAllIcon(menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -70,9 +70,30 @@ public abstract class SelectableAdapter<T extends RecyclerView.ViewHolder> exten
|
||||
boolean selectAll = selectedIds.size() != getItemCount();
|
||||
shouldSelectLazyLoadedItems = selectAll;
|
||||
setSelected(0, getItemCount(), selectAll);
|
||||
toggleSelectAllIcon(item, selectAll);
|
||||
toggleSelectAllIcon(mode.getMenu());
|
||||
onSelectedItemsUpdated();
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.select_all_above) {
|
||||
int firstSelectedPosition = 0;
|
||||
for (int i = 0; i < getItemCount(); i++) {
|
||||
if (isSelected(i)) {
|
||||
firstSelectedPosition = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
setSelected(0, firstSelectedPosition, true);
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.select_all_below) {
|
||||
shouldSelectLazyLoadedItems = true;
|
||||
int lastSelectedPosition = 0;
|
||||
for (int i = getItemCount() - 1; i >= 0; i--) {
|
||||
if (isSelected(i)) {
|
||||
lastSelectedPosition = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
setSelected(lastSelectedPosition + 1, getItemCount(), true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -158,14 +179,10 @@ public abstract class SelectableAdapter<T extends RecyclerView.ViewHolder> exten
|
||||
return selectedIds.size();
|
||||
}
|
||||
|
||||
private void toggleSelectAllIcon(MenuItem selectAllItem, boolean allSelected) {
|
||||
if (allSelected) {
|
||||
selectAllItem.setIcon(R.drawable.ic_select_none);
|
||||
selectAllItem.setTitle(R.string.deselect_all_label);
|
||||
} else {
|
||||
selectAllItem.setIcon(R.drawable.ic_select_all);
|
||||
selectAllItem.setTitle(R.string.select_all_label);
|
||||
}
|
||||
private void toggleSelectAllIcon(Menu menu) {
|
||||
boolean allSelected = selectedIds.size() == getItemCount();
|
||||
menu.findItem(R.id.select_toggle).setTitle(allSelected
|
||||
? R.string.deselect_all_label : R.string.select_all_label);
|
||||
}
|
||||
|
||||
protected void onSelectedItemsUpdated() {
|
||||
|
||||
@ -204,28 +204,20 @@ public class EpisodeItemListAdapter extends SelectableAdapter<EpisodeItemViewHol
|
||||
public void onCreateContextMenu(final ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
|
||||
MenuInflater inflater = mainActivityRef.get().getMenuInflater();
|
||||
if (inActionMode()) {
|
||||
inflater.inflate(R.menu.multi_select_context_popup, menu);
|
||||
} else {
|
||||
if (longPressedItem == null) {
|
||||
return;
|
||||
}
|
||||
inflater.inflate(R.menu.feeditemlist_context, menu);
|
||||
menu.setHeaderTitle(longPressedItem.getTitle());
|
||||
FeedItemMenuHandler.onPrepareMenu(menu, Collections.singletonList(longPressedItem), R.id.skip_episode_item);
|
||||
return;
|
||||
}
|
||||
if (longPressedItem == null) {
|
||||
return;
|
||||
}
|
||||
inflater.inflate(R.menu.feeditemlist_context, menu);
|
||||
menu.setHeaderTitle(longPressedItem.getTitle());
|
||||
FeedItemMenuHandler.onPrepareMenu(menu, Collections.singletonList(longPressedItem), R.id.skip_episode_item);
|
||||
}
|
||||
|
||||
public boolean onContextItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.multi_select) {
|
||||
startSelectMode(longPressedPosition);
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.select_all_above) {
|
||||
setSelected(0, longPressedPosition, true);
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.select_all_below) {
|
||||
shouldSelectLazyLoadedItems = true;
|
||||
setSelected(longPressedPosition + 1, getItemCount(), true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@+id/select_all_above"
|
||||
android:title="@string/select_all_above">
|
||||
</item>
|
||||
<item
|
||||
android:id="@+id/select_all_below"
|
||||
android:title="@string/select_all_below">
|
||||
</item>
|
||||
</menu>
|
||||
@ -1,8 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:ignore="AppCompatResource">
|
||||
|
||||
<item
|
||||
android:id="@+id/select_toggle"
|
||||
android:title="@string/select_all_label"
|
||||
app:showAsAction="always"/>
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/select_all_above"
|
||||
android:title="@string/select_all_above"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/select_all_below"
|
||||
android:title="@string/select_all_below"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
|
||||
@ -4,16 +4,14 @@
|
||||
|
||||
<item
|
||||
android:id="@id/select_all_item"
|
||||
android:icon="@drawable/ic_select_all"
|
||||
android:title="@string/select_all_label"
|
||||
custom:showAsAction="ifRoom">
|
||||
custom:showAsAction="never">
|
||||
</item>
|
||||
|
||||
<item
|
||||
android:id="@id/deselect_all_item"
|
||||
android:icon="@drawable/ic_select_none"
|
||||
android:title="@string/deselect_all_label"
|
||||
custom:showAsAction="ifRoom">
|
||||
custom:showAsAction="never">
|
||||
</item>
|
||||
|
||||
</menu>
|
||||
|
||||
@ -13,8 +13,7 @@
|
||||
<item
|
||||
android:id="@+id/action_select_all"
|
||||
android:title="@string/select_all_label"
|
||||
android:icon="@drawable/ic_select_all"
|
||||
app:showAsAction="always" />
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_cancel_copy"
|
||||
android:title="@string/cancel_label"
|
||||
|
||||
Reference in New Issue
Block a user