From c82afd894476b86e64a12a18dff3028a3950fce2 Mon Sep 17 00:00:00 2001 From: FeuRenard Date: Fri, 6 Apr 2018 21:29:52 +0200 Subject: [PATCH] Allow selecting all media in overview --- res/menu/media_overview_context.xml | 5 +++++ res/values/strings.xml | 1 + src/org/thoughtcrime/securesms/MediaGalleryAdapter.java | 9 +++++++++ .../thoughtcrime/securesms/MediaOverviewActivity.java | 8 ++++++++ 4 files changed, 23 insertions(+) diff --git a/res/menu/media_overview_context.xml b/res/menu/media_overview_context.xml index 4c3c26f78..b3486221c 100644 --- a/res/menu/media_overview_context.xml +++ b/res/menu/media_overview_context.xml @@ -4,4 +4,9 @@ android:title="@string/delete" android:icon="@drawable/ic_delete_white_24dp" app:showAsAction="always"/> + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 43806c528..6a1a483bc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -394,6 +394,7 @@ Deleting Deleting messages... Documents + Select all Signal call in progress diff --git a/src/org/thoughtcrime/securesms/MediaGalleryAdapter.java b/src/org/thoughtcrime/securesms/MediaGalleryAdapter.java index 526531e0d..43ee4fe89 100644 --- a/src/org/thoughtcrime/securesms/MediaGalleryAdapter.java +++ b/src/org/thoughtcrime/securesms/MediaGalleryAdapter.java @@ -154,6 +154,15 @@ class MediaGalleryAdapter extends StickyHeaderGridAdapter { notifyDataSetChanged(); } + void selectAllMedia() { + for (int section = 0; section < media.getSectionCount(); section++) { + for (int item = 0; item < media.getSectionItemCount(section); item++) { + selected.add(media.get(section, item)); + } + } + this.notifyDataSetChanged(); + } + interface ItemClickListener { void onMediaClicked(@NonNull MediaRecord mediaRecord); void onMediaLongClicked(MediaRecord mediaRecord); diff --git a/src/org/thoughtcrime/securesms/MediaOverviewActivity.java b/src/org/thoughtcrime/securesms/MediaOverviewActivity.java index 19553265e..cda67fa16 100644 --- a/src/org/thoughtcrime/securesms/MediaOverviewActivity.java +++ b/src/org/thoughtcrime/securesms/MediaOverviewActivity.java @@ -357,6 +357,11 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity { builder.show(); } + private void handleSelectAllMedia() { + getListAdapter().selectAllMedia(); + actionMode.setTitle(String.valueOf(getListAdapter().getSelectedMediaCount())); + } + private MediaGalleryAdapter getListAdapter() { return (MediaGalleryAdapter) recyclerView.getAdapter(); } @@ -401,6 +406,9 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity { handleDeleteMedia(getListAdapter().getSelectedMedia()); exitMultiSelect(); return true; + case R.id.select_all: + handleSelectAllMedia(); + return true; } return false; }