mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
Merge pull request #2721 from deltachat/adb/issue-2720
allow to select all media
This commit is contained in:
@@ -160,6 +160,12 @@ class ProfileDocumentsAdapter extends StickyHeaderGridAdapter {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void selectAll() {
|
||||
selected.clear();
|
||||
selected.addAll(media.getAll());
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public int getSelectedMediaCount() {
|
||||
return selected.size();
|
||||
}
|
||||
|
||||
@@ -150,6 +150,11 @@ public class ProfileDocumentsFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void updateActionModeBar() {
|
||||
actionMode.setTitle(String.valueOf(getListAdapter().getSelectedMediaCount()));
|
||||
setCorrectMenuVisibility(actionMode.getMenu());
|
||||
}
|
||||
|
||||
private void handleMediaMultiSelectClick(@NonNull DcMsg mediaRecord) {
|
||||
ProfileDocumentsAdapter adapter = getListAdapter();
|
||||
|
||||
@@ -158,8 +163,7 @@ public class ProfileDocumentsFragment
|
||||
actionMode.finish();
|
||||
actionMode = null;
|
||||
} else {
|
||||
actionMode.setTitle(String.valueOf(adapter.getSelectedMediaCount()));
|
||||
setCorrectMenuVisibility(actionMode.getMenu());
|
||||
updateActionModeBar();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,6 +275,10 @@ public class ProfileDocumentsFragment
|
||||
case R.id.menu_resend:
|
||||
handleResendMessage(getListAdapter().getSelectedMedia());
|
||||
return true;
|
||||
case R.id.menu_select_all:
|
||||
getListAdapter().selectAll();
|
||||
updateActionModeBar();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -124,6 +124,12 @@ class ProfileGalleryAdapter extends StickyHeaderGridAdapter {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void selectAll() {
|
||||
selected.clear();
|
||||
selected.addAll(media.getAll());
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public int getSelectedMediaCount() {
|
||||
return selected.size();
|
||||
}
|
||||
|
||||
@@ -142,6 +142,11 @@ public class ProfileGalleryFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void updateActionModeBar() {
|
||||
actionMode.setTitle(String.valueOf(getListAdapter().getSelectedMediaCount()));
|
||||
setCorrectMenuVisibility(actionMode.getMenu());
|
||||
}
|
||||
|
||||
private void handleMediaMultiSelectClick(@NonNull DcMsg mediaRecord) {
|
||||
ProfileGalleryAdapter adapter = getListAdapter();
|
||||
|
||||
@@ -150,8 +155,7 @@ public class ProfileGalleryFragment
|
||||
actionMode.finish();
|
||||
actionMode = null;
|
||||
} else {
|
||||
actionMode.setTitle(String.valueOf(adapter.getSelectedMediaCount()));
|
||||
setCorrectMenuVisibility(actionMode.getMenu());
|
||||
updateActionModeBar();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,6 +262,10 @@ public class ProfileGalleryFragment
|
||||
case R.id.menu_resend:
|
||||
handleResendMessage(getListAdapter().getSelectedMedia());
|
||||
return true;
|
||||
case R.id.menu_select_all:
|
||||
getListAdapter().selectAll();
|
||||
updateActionModeBar();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -272,6 +272,7 @@ public class ProfileSettingsFragment extends Fragment
|
||||
menu.findItem(R.id.save).setVisible(false);
|
||||
menu.findItem(R.id.share).setVisible(false);
|
||||
menu.findItem(R.id.menu_resend).setVisible(false);
|
||||
menu.findItem(R.id.menu_select_all).setVisible(false);
|
||||
mode.setTitle("1");
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
|
||||
@@ -118,6 +118,17 @@ public class BucketedThreadMediaLoader extends AsyncTaskLoader<BucketedThreadMed
|
||||
OLDER.add(imageMessage);
|
||||
}
|
||||
|
||||
public LinkedList<DcMsg> getAll() {
|
||||
LinkedList<DcMsg> messages = new LinkedList<>();
|
||||
for (TimeBucket section : TIME_SECTIONS) {
|
||||
messages.addAll(section.records);
|
||||
}
|
||||
for (List<DcMsg> records : OLDER.months.values()) {
|
||||
messages.addAll(records);
|
||||
}
|
||||
return messages;
|
||||
}
|
||||
|
||||
public int getSectionCount() {
|
||||
return (int)Stream.of(TIME_SECTIONS)
|
||||
.filter(timeBucket -> !timeBucket.isEmpty())
|
||||
|
||||
Reference in New Issue
Block a user