Support sharing multiple photos/videos into Signal.

This commit is contained in:
Greyson Parrelli
2020-02-05 16:34:54 -05:00
parent 7ab240643e
commit 9bac88697b
17 changed files with 517 additions and 218 deletions

View File

@@ -142,11 +142,11 @@ public class MediaSendActivity extends PassphraseRequiredActionBarActivity imple
/**
* Get an intent to launch the media send flow starting with the picker.
*/
public static Intent buildGalleryIntent(@NonNull Context context, @NonNull Recipient recipient, @NonNull String body, @NonNull TransportOption transport) {
public static Intent buildGalleryIntent(@NonNull Context context, @NonNull Recipient recipient, @Nullable String body, @NonNull TransportOption transport) {
Intent intent = new Intent(context, MediaSendActivity.class);
intent.putExtra(KEY_RECIPIENT, recipient.getId());
intent.putExtra(KEY_TRANSPORT, transport);
intent.putExtra(KEY_BODY, body);
intent.putExtra(KEY_BODY, body == null ? "" : body);
return intent;
}

View File

@@ -0,0 +1,6 @@
package org.thoughtcrime.securesms.mediasend;
public class MediaSendConstants {
public static final int MAX_PUSH = 32;
public static final int MAX_SMS = 1;
}

View File

@@ -51,9 +51,6 @@ class MediaSendViewModel extends ViewModel {
private static final String TAG = MediaSendViewModel.class.getSimpleName();
private static final int MAX_PUSH = 32;
private static final int MAX_SMS = 1;
private final Application application;
private final MediaRepository repository;
private final MediaUploadRepository uploadRepository;
@@ -122,11 +119,11 @@ class MediaSendViewModel extends ViewModel {
if (transport.isSms()) {
isSms = true;
maxSelection = MAX_SMS;
maxSelection = MediaSendConstants.MAX_SMS;
mediaConstraints = MediaConstraints.getMmsMediaConstraints(transport.getSimSubscriptionId().or(-1));
} else {
isSms = false;
maxSelection = MAX_PUSH;
maxSelection = MediaSendConstants.MAX_PUSH;
mediaConstraints = MediaConstraints.getPushMediaConstraints();
}
@@ -151,7 +148,9 @@ class MediaSendViewModel extends ViewModel {
if (filteredMedia.size() != newMedia.size()) {
error.setValue(Error.ITEM_TOO_LARGE);
} else if (filteredMedia.size() > maxSelection) {
}
if (filteredMedia.size() > maxSelection) {
filteredMedia = filteredMedia.subList(0, maxSelection);
error.setValue(Error.TOO_MANY_ITEMS);
}