mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-26 09:59:28 +00:00
in-app image media preview
// FREEBIE
This commit is contained in:
@@ -18,15 +18,19 @@ package org.thoughtcrime.securesms.database.model;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.SpannableString;
|
||||
import android.util.Log;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.database.MmsDatabase;
|
||||
import org.thoughtcrime.securesms.database.SmsDatabase;
|
||||
import org.thoughtcrime.securesms.mms.Slide;
|
||||
import org.thoughtcrime.securesms.mms.SlideDeck;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.Recipients;
|
||||
import org.whispersystems.textsecure.util.ListenableFutureTask;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
/**
|
||||
* Represents the message record model for MMS messages that contain
|
||||
* media (ie: they've been downloaded).
|
||||
@@ -36,10 +40,11 @@ import org.whispersystems.textsecure.util.ListenableFutureTask;
|
||||
*/
|
||||
|
||||
public class MediaMmsMessageRecord extends MessageRecord {
|
||||
private final static String TAG = MediaMmsMessageRecord.class.getSimpleName();
|
||||
|
||||
private final Context context;
|
||||
private final int partCount;
|
||||
private final ListenableFutureTask<SlideDeck> slideDeck;
|
||||
private final ListenableFutureTask<SlideDeck> slideDeckFutureTask;
|
||||
|
||||
public MediaMmsMessageRecord(Context context, long id, Recipients recipients,
|
||||
Recipient individualRecipient, int recipientDeviceId,
|
||||
@@ -51,15 +56,48 @@ public class MediaMmsMessageRecord extends MessageRecord {
|
||||
super(context, id, body, recipients, individualRecipient, recipientDeviceId,
|
||||
dateSent, dateReceived, threadId, deliveredCount, DELIVERY_STATUS_NONE, mailbox);
|
||||
|
||||
this.context = context.getApplicationContext();
|
||||
this.partCount = partCount;
|
||||
this.slideDeck = slideDeck;
|
||||
this.context = context.getApplicationContext();
|
||||
this.partCount = partCount;
|
||||
this.slideDeckFutureTask = slideDeck;
|
||||
}
|
||||
|
||||
public ListenableFutureTask<SlideDeck> getSlideDeck() {
|
||||
return slideDeck;
|
||||
public ListenableFutureTask<SlideDeck> getSlideDeckFuture() {
|
||||
return slideDeckFutureTask;
|
||||
}
|
||||
|
||||
private SlideDeck getSlideDeckSync() {
|
||||
try {
|
||||
return slideDeckFutureTask.get();
|
||||
} catch (InterruptedException e) {
|
||||
Log.w(TAG, e);
|
||||
return null;
|
||||
} catch (ExecutionException e) {
|
||||
Log.w(TAG, e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean containsMediaSlide() {
|
||||
SlideDeck deck = getSlideDeckSync();
|
||||
return deck != null && deck.containsMediaSlide();
|
||||
}
|
||||
|
||||
public Slide getMediaSlideSync() {
|
||||
SlideDeck deck = getSlideDeckSync();
|
||||
if (deck == null) {
|
||||
return null;
|
||||
}
|
||||
List<Slide> slides = deck.getSlides();
|
||||
|
||||
for (Slide slide : slides) {
|
||||
if (slide.hasImage() || slide.hasVideo() || slide.hasAudio()) {
|
||||
return slide;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public int getPartCount() {
|
||||
return partCount;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user