mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-24 08:58:45 +00:00
Join attachments instead of running an asynchronous query.
No more SlideDeck futures, just SlideDecks. // FREEBIE
This commit is contained in:
@@ -347,13 +347,13 @@ public class MessageNotifier {
|
||||
else reader = DatabaseFactory.getMmsSmsDatabase(context).readerFor(cursor, masterSecret);
|
||||
|
||||
while ((record = reader.getNext()) != null) {
|
||||
Recipient recipient = record.getIndividualRecipient();
|
||||
Recipients recipients = record.getRecipients();
|
||||
long threadId = record.getThreadId();
|
||||
CharSequence body = record.getDisplayBody();
|
||||
Recipients threadRecipients = null;
|
||||
ListenableFutureTask<SlideDeck> slideDeck = null;
|
||||
long timestamp;
|
||||
Recipient recipient = record.getIndividualRecipient();
|
||||
Recipients recipients = record.getRecipients();
|
||||
long threadId = record.getThreadId();
|
||||
CharSequence body = record.getDisplayBody();
|
||||
Recipients threadRecipients = null;
|
||||
SlideDeck slideDeck = null;
|
||||
long timestamp;
|
||||
|
||||
if (record.isPush()) timestamp = record.getDateSent();
|
||||
else timestamp = record.getDateReceived();
|
||||
@@ -366,12 +366,12 @@ public class MessageNotifier {
|
||||
body = SpanUtil.italic(context.getString(R.string.MessageNotifier_locked_message));
|
||||
} else if (record.isMms() && TextUtils.isEmpty(body)) {
|
||||
body = SpanUtil.italic(context.getString(R.string.MessageNotifier_media_message));
|
||||
slideDeck = ((MediaMmsMessageRecord)record).getSlideDeckFuture();
|
||||
slideDeck = ((MediaMmsMessageRecord)record).getSlideDeck();
|
||||
} else if (record.isMms() && !record.isMmsNotification()) {
|
||||
String message = context.getString(R.string.MessageNotifier_media_message_with_text, body);
|
||||
int italicLength = message.length() - body.length();
|
||||
body = SpanUtil.italic(message, italicLength);
|
||||
slideDeck = ((MediaMmsMessageRecord)record).getSlideDeckFuture();
|
||||
slideDeck = ((MediaMmsMessageRecord)record).getSlideDeck();
|
||||
}
|
||||
|
||||
if (threadRecipients == null || !threadRecipients.isMuted()) {
|
||||
|
||||
@@ -21,12 +21,12 @@ public class NotificationItem {
|
||||
private final long threadId;
|
||||
private final CharSequence text;
|
||||
private final long timestamp;
|
||||
private final ListenableFutureTask<SlideDeck> slideDeck;
|
||||
private final @Nullable SlideDeck slideDeck;
|
||||
|
||||
public NotificationItem(Recipient individualRecipient, Recipients recipients,
|
||||
Recipients threadRecipients, long threadId,
|
||||
CharSequence text, long timestamp,
|
||||
@Nullable ListenableFutureTask<SlideDeck> slideDeck)
|
||||
@Nullable SlideDeck slideDeck)
|
||||
{
|
||||
this.individualRecipient = individualRecipient;
|
||||
this.recipients = recipients;
|
||||
@@ -57,7 +57,7 @@ public class NotificationItem {
|
||||
return threadId;
|
||||
}
|
||||
|
||||
public @Nullable ListenableFutureTask<SlideDeck> getSlideDeck() {
|
||||
public @Nullable SlideDeck getSlideDeck() {
|
||||
return slideDeck;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import android.support.v4.app.NotificationCompat;
|
||||
import android.support.v4.app.NotificationCompat.Action;
|
||||
import android.support.v4.app.RemoteInput;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.util.Log;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
||||
@@ -26,7 +25,6 @@ import org.thoughtcrime.securesms.mms.SlideDeck;
|
||||
import org.thoughtcrime.securesms.preferences.NotificationPrivacyPreference;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.BitmapUtil;
|
||||
import org.thoughtcrime.securesms.util.ListenableFutureTask;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@@ -38,8 +36,8 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
|
||||
|
||||
private final List<CharSequence> messageBodies = new LinkedList<>();
|
||||
|
||||
private ListenableFutureTask<SlideDeck> slideDeck;
|
||||
private final MasterSecret masterSecret;
|
||||
private SlideDeck slideDeck;
|
||||
private final MasterSecret masterSecret;
|
||||
|
||||
public SingleRecipientNotificationBuilder(@NonNull Context context,
|
||||
@Nullable MasterSecret masterSecret,
|
||||
@@ -81,7 +79,7 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
|
||||
setNumber(messageCount);
|
||||
}
|
||||
|
||||
public void setPrimaryMessageBody(CharSequence message, @Nullable ListenableFutureTask<SlideDeck> slideDeck) {
|
||||
public void setPrimaryMessageBody(CharSequence message, @Nullable SlideDeck slideDeck) {
|
||||
if (privacy.isDisplayMessage()) {
|
||||
setContentText(message);
|
||||
this.slideDeck = slideDeck;
|
||||
@@ -166,30 +164,25 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
|
||||
}
|
||||
}
|
||||
|
||||
private boolean hasBigPictureSlide(@Nullable ListenableFutureTask<SlideDeck> slideDeck) {
|
||||
try {
|
||||
if (masterSecret == null || slideDeck == null || Build.VERSION.SDK_INT < 16) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Slide thumbnailSlide = slideDeck.get().getThumbnailSlide();
|
||||
|
||||
return thumbnailSlide != null &&
|
||||
thumbnailSlide.hasImage() &&
|
||||
!thumbnailSlide.isInProgress() &&
|
||||
thumbnailSlide.getThumbnailUri() != null;
|
||||
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
Log.w(TAG, e);
|
||||
private boolean hasBigPictureSlide(@Nullable SlideDeck slideDeck) {
|
||||
if (masterSecret == null || slideDeck == null || Build.VERSION.SDK_INT < 16) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Slide thumbnailSlide = slideDeck.getThumbnailSlide();
|
||||
|
||||
return thumbnailSlide != null &&
|
||||
thumbnailSlide.hasImage() &&
|
||||
!thumbnailSlide.isInProgress() &&
|
||||
thumbnailSlide.getThumbnailUri() != null;
|
||||
}
|
||||
|
||||
private Bitmap getBigPicture(@NonNull MasterSecret masterSecret,
|
||||
@NonNull ListenableFutureTask<SlideDeck> slideDeck)
|
||||
@NonNull SlideDeck slideDeck)
|
||||
{
|
||||
try {
|
||||
Uri uri = slideDeck.get().getThumbnailSlide().getThumbnailUri();
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
Uri uri = slideDeck.getThumbnailSlide().getThumbnailUri();
|
||||
|
||||
return Glide.with(context)
|
||||
.load(new DecryptableStreamUriLoader.DecryptableUri(masterSecret, uri))
|
||||
|
||||
Reference in New Issue
Block a user