From f70bf9c5bd3f1c638cbcf1c60116982ee0f009bc Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 16 Jan 2019 13:18:16 -0800 Subject: [PATCH] Default to 'All media' bucket for items from the rail. This should give people a better multi-send experience when they want to add more media. --- src/org/thoughtcrime/securesms/ConversationActivity.java | 2 +- src/org/thoughtcrime/securesms/mediasend/Media.java | 2 ++ .../thoughtcrime/securesms/mediasend/MediaRepository.java | 6 ++---- .../securesms/mediasend/MediaSendViewModel.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index b34db22493..4b80dadb91 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -2193,7 +2193,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity @Override public void onQuickAttachment(Uri uri, String mimeType, String bucketId, long dateTaken, int width, int height) { - Media media = new Media(uri, mimeType, dateTaken, width, height, Optional.fromNullable(bucketId), Optional.absent()); + Media media = new Media(uri, mimeType, dateTaken, width, height, Optional.of(Media.ALL_MEDIA_BUCKET_ID), Optional.absent()); startActivityForResult(MediaSendActivity.getIntent(ConversationActivity.this, Collections.singletonList(media), recipient, composeText.getTextTrimmed(), sendButton.getSelectedTransport()), MEDIA_SENDER); } } diff --git a/src/org/thoughtcrime/securesms/mediasend/Media.java b/src/org/thoughtcrime/securesms/mediasend/Media.java index ac3e3e2c1f..e080baca4d 100644 --- a/src/org/thoughtcrime/securesms/mediasend/Media.java +++ b/src/org/thoughtcrime/securesms/mediasend/Media.java @@ -12,6 +12,8 @@ import org.whispersystems.libsignal.util.guava.Optional; */ public class Media implements Parcelable { + public static final String ALL_MEDIA_BUCKET_ID = "org.thoughtcrime.securesms.ALL_MEDIA"; + private final Uri uri; private final String mimeType; private final long date; diff --git a/src/org/thoughtcrime/securesms/mediasend/MediaRepository.java b/src/org/thoughtcrime/securesms/mediasend/MediaRepository.java index ee7aca8148..b627fefec1 100644 --- a/src/org/thoughtcrime/securesms/mediasend/MediaRepository.java +++ b/src/org/thoughtcrime/securesms/mediasend/MediaRepository.java @@ -31,8 +31,6 @@ import java.util.Map; */ class MediaRepository { - private static final String ALL_MEDIA_BUCKET_ID = "org.thoughtcrime.securesms.ALL_MEDIA"; - /** * Retrieves a list of folders that contain media. */ @@ -80,7 +78,7 @@ class MediaRepository { allMediaCount += cameraFolder.getCount(); } - mediaFolders.add(0, new MediaFolder(allMediaThumbnail, context.getString(R.string.MediaRepository_all_media), allMediaCount, ALL_MEDIA_BUCKET_ID, MediaFolder.FolderType.NORMAL)); + mediaFolders.add(0, new MediaFolder(allMediaThumbnail, context.getString(R.string.MediaRepository_all_media), allMediaCount, Media.ALL_MEDIA_BUCKET_ID, MediaFolder.FolderType.NORMAL)); } if (cameraFolder != null) { @@ -150,7 +148,7 @@ class MediaRepository { String[] projection = Build.VERSION.SDK_INT >= 16 ? new String[] { Images.Media._ID, Images.Media.MIME_TYPE, Images.Media.DATE_TAKEN, Images.Media.WIDTH, Images.Media.HEIGHT } : new String[] { Images.Media._ID, Images.Media.MIME_TYPE, Images.Media.DATE_TAKEN }; - if (ALL_MEDIA_BUCKET_ID.equals(bucketId)) { + if (Media.ALL_MEDIA_BUCKET_ID.equals(bucketId)) { selection = Images.Media.DATA + " NOT NULL"; selectionArgs = null; } diff --git a/src/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java b/src/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java index 365e410296..fac79eb156 100644 --- a/src/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java +++ b/src/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java @@ -113,7 +113,7 @@ class MediaSendViewModel extends ViewModel { String candidate = media.get(0).getBucketId().get(); for (int i = 1; i < media.size(); i++) { if (!Util.equals(candidate, media.get(i).getBucketId().orNull())) { - return Optional.absent(); + return Optional.of(Media.ALL_MEDIA_BUCKET_ID); } }