mirror of
https://github.com/deltachat/deltachat-android.git
synced 2025-10-03 09:49:21 +02:00
show webxdc icon in quotes
This commit is contained in:
parent
f5570baa0b
commit
8566a67068
1 changed files with 27 additions and 13 deletions
|
@ -22,6 +22,7 @@ import com.b44t.messenger.DcContact;
|
||||||
import com.b44t.messenger.DcMsg;
|
import com.b44t.messenger.DcMsg;
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
import org.thoughtcrime.securesms.attachments.Attachment;
|
import org.thoughtcrime.securesms.attachments.Attachment;
|
||||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri;
|
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri;
|
||||||
|
@ -189,29 +190,42 @@ public class QuoteView extends FrameLayout implements RecipientForeverObserver {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setQuoteAttachment(@NonNull GlideRequests glideRequests, @NonNull SlideDeck slideDeck) {
|
private void setQuoteAttachment(@NonNull GlideRequests glideRequests, @NonNull SlideDeck slideDeck) {
|
||||||
List<Slide> imageVideoSlides = Stream.of(slideDeck.getSlides()).filter(s -> s.hasImage() || s.hasVideo() || s.hasSticker()).limit(1).toList();
|
List<Slide> thumbnailSlides = Stream.of(slideDeck.getSlides()).filter(s -> s.hasImage() || s.hasVideo() || s.hasSticker() || s.isWebxdcDocument()).limit(1).toList();
|
||||||
List<Slide> audioSlides = Stream.of(slideDeck.getSlides()).filter(s -> s.hasAudio()).limit(1).toList();
|
List<Slide> audioSlides = Stream.of(slideDeck.getSlides()).filter(s -> s.hasAudio()).limit(1).toList();
|
||||||
List<Slide> documentSlides = Stream.of(attachments.getSlides()).filter(Slide::hasDocument).limit(1).toList();
|
List<Slide> documentSlides = Stream.of(attachments.getSlides()).filter(Slide::hasDocument).limit(1).toList();
|
||||||
|
|
||||||
attachmentVideoOverlayView.setVisibility(GONE);
|
attachmentVideoOverlayView.setVisibility(GONE);
|
||||||
|
|
||||||
if (!imageVideoSlides.isEmpty() && imageVideoSlides.get(0).getUri() != null) {
|
if (!thumbnailSlides.isEmpty() && thumbnailSlides.get(0).getUri() != null) {
|
||||||
thumbnailView.setVisibility(VISIBLE);
|
thumbnailView.setVisibility(VISIBLE);
|
||||||
attachmentContainerView.setVisibility(GONE);
|
attachmentContainerView.setVisibility(GONE);
|
||||||
dismissView.setBackgroundResource(R.drawable.dismiss_background);
|
dismissView.setBackgroundResource(R.drawable.dismiss_background);
|
||||||
|
|
||||||
Uri thumbnailUri = imageVideoSlides.get(0).getUri();
|
if (thumbnailSlides.get(0).isWebxdcDocument()) {
|
||||||
if (imageVideoSlides.get(0).hasVideo()) {
|
try {
|
||||||
attachmentVideoOverlayView.setVisibility(VISIBLE);
|
JSONObject info = quotedMsg.getWebxdcInfo();
|
||||||
MediaUtil.createVideoThumbnailIfNeeded(getContext(), imageVideoSlides.get(0).getUri(), imageVideoSlides.get(0).getThumbnailUri(), null);
|
byte[] blob = quotedMsg.getWebxdcBlob(info.getString("icon"));
|
||||||
thumbnailUri = imageVideoSlides.get(0).getThumbnailUri();
|
glideRequests.load(blob)
|
||||||
|
.centerCrop()
|
||||||
|
.override(getContext().getResources().getDimensionPixelSize(R.dimen.quote_thumb_size))
|
||||||
|
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||||
|
.into(thumbnailView);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Uri thumbnailUri = thumbnailSlides.get(0).getUri();
|
||||||
|
if (thumbnailSlides.get(0).hasVideo()) {
|
||||||
|
attachmentVideoOverlayView.setVisibility(VISIBLE);
|
||||||
|
MediaUtil.createVideoThumbnailIfNeeded(getContext(), thumbnailSlides.get(0).getUri(), thumbnailSlides.get(0).getThumbnailUri(), null);
|
||||||
|
thumbnailUri = thumbnailSlides.get(0).getThumbnailUri();
|
||||||
|
}
|
||||||
|
glideRequests.load(new DecryptableUri(thumbnailUri))
|
||||||
|
.centerCrop()
|
||||||
|
.override(getContext().getResources().getDimensionPixelSize(R.dimen.quote_thumb_size))
|
||||||
|
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||||
|
.into(thumbnailView);
|
||||||
}
|
}
|
||||||
glideRequests.load(new DecryptableUri(thumbnailUri))
|
|
||||||
.centerCrop()
|
|
||||||
.override(getContext().getResources().getDimensionPixelSize(R.dimen.quote_thumb_size))
|
|
||||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
|
||||||
.into(thumbnailView);
|
|
||||||
|
|
||||||
} else if(!audioSlides.isEmpty()) {
|
} else if(!audioSlides.isEmpty()) {
|
||||||
thumbnailView.setVisibility(GONE);
|
thumbnailView.setVisibility(GONE);
|
||||||
attachmentContainerView.setVisibility(GONE);
|
attachmentContainerView.setVisibility(GONE);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue