basic handling of multiple selected files

This commit is contained in:
B. Petersen
2024-10-11 00:02:43 +02:00
committed by bjoern
parent 3d55ea931c
commit 139b7f84f4
2 changed files with 23 additions and 11 deletions
@@ -24,7 +24,7 @@ import static org.thoughtcrime.securesms.util.RelayUtil.isSharing;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.ClipData;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
@@ -33,7 +33,6 @@ import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Vibrator;
import android.provider.Browser;
@@ -347,14 +346,27 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
switch (reqCode) {
case PICK_GALLERY:
MediaType mediaType;
String mimeType = MediaUtil.getMimeType(this, data.getData());
if (MediaUtil.isGif(mimeType)) mediaType = MediaType.GIF;
else if (MediaUtil.isVideo(mimeType)) mediaType = MediaType.VIDEO;
else mediaType = MediaType.IMAGE;
setMedia(data.getData(), mediaType);
final Uri singleUri = data.getData();
if (singleUri != null) {
MediaType mediaType;
String mimeType = MediaUtil.getMimeType(this, singleUri);
if (MediaUtil.isGif(mimeType)) mediaType = MediaType.GIF;
else if (MediaUtil.isVideo(mimeType)) mediaType = MediaType.VIDEO;
else mediaType = MediaType.IMAGE;
setMedia(singleUri, mediaType);
} else {
final ClipData multipleUris = data.getClipData();
if (multipleUris != null) {
final int uriCount = multipleUris.getItemCount();
if (uriCount > 0) {
ArrayList<Uri> uriList = new ArrayList<>(uriCount);
for (int i = 0; i < uriCount; i++) {
uriList.add(multipleUris.getItemAt(i).getUri());
}
askSendingFiles(uriList, () -> SendRelayedMessageUtil.handleSharing(this, chatId, uriList, null));
}
}
}
break;
case PICK_DOCUMENT:
@@ -57,7 +57,7 @@ public class SendRelayedMessageUtil {
dcContext.forwardMsgs(forwardedMessageIDs, chatId);
}
private static void handleSharing(Context context, int chatId, ArrayList<Uri> sharedUris, String sharedText) {
public static void handleSharing(Context context, int chatId, ArrayList<Uri> sharedUris, String sharedText) {
DcContext dcContext = DcHelper.getContext(context);
ArrayList<Uri> uris = sharedUris;
String text = sharedText;