From ae379cd3ddc6ccc7161214e9a58ffff3dc2bec1c Mon Sep 17 00:00:00 2001 From: Jake McGinty Date: Mon, 16 Nov 2015 10:48:28 -0800 Subject: [PATCH] fix external gif sharing fixes #4539 Closes #4556 // FREEBIE --- src/org/thoughtcrime/securesms/ConversationActivity.java | 3 +++ src/org/thoughtcrime/securesms/ShareActivity.java | 5 ++++- src/org/thoughtcrime/securesms/mms/GifSlide.java | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index 5c3963a860..7edd4c87f9 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -157,6 +157,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity public static final String THREAD_ID_EXTRA = "thread_id"; public static final String DRAFT_TEXT_EXTRA = "draft_text"; public static final String DRAFT_IMAGE_EXTRA = "draft_image"; + public static final String DRAFT_GIF_EXTRA = "draft_gif"; public static final String DRAFT_AUDIO_EXTRA = "draft_audio"; public static final String DRAFT_VIDEO_EXTRA = "draft_video"; public static final String DISTRIBUTION_TYPE_EXTRA = "distribution_type"; @@ -710,12 +711,14 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void initializeDraft() { String draftText = getIntent().getStringExtra(DRAFT_TEXT_EXTRA); + Uri draftGif = getIntent().getParcelableExtra(DRAFT_GIF_EXTRA); Uri draftImage = getIntent().getParcelableExtra(DRAFT_IMAGE_EXTRA); Uri draftAudio = getIntent().getParcelableExtra(DRAFT_AUDIO_EXTRA); Uri draftVideo = getIntent().getParcelableExtra(DRAFT_VIDEO_EXTRA); if (draftText != null) composeText.setText(draftText); + if (draftGif != null) setMedia(draftGif, MediaType.GIF); if (draftImage != null) setMedia(draftImage, MediaType.IMAGE); else if (draftAudio != null) setMedia(draftAudio, MediaType.AUDIO); else if (draftVideo != null) setMedia(draftVideo, MediaType.VIDEO); diff --git a/src/org/thoughtcrime/securesms/ShareActivity.java b/src/org/thoughtcrime/securesms/ShareActivity.java index 1f26924cb0..ef0e614262 100644 --- a/src/org/thoughtcrime/securesms/ShareActivity.java +++ b/src/org/thoughtcrime/securesms/ShareActivity.java @@ -36,6 +36,7 @@ import org.thoughtcrime.securesms.providers.PersistentBlobProvider; import org.thoughtcrime.securesms.recipients.Recipients; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; +import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.ViewUtil; import java.io.IOException; @@ -188,7 +189,9 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity final String type = streamExtra != null ? getMimeType(streamExtra) : getIntent().getType(); if (resolvedExtra != null) { - if (ContentType.isImageType(type)) { + if (MediaUtil.isGif(type)) { + intent.putExtra(ConversationActivity.DRAFT_GIF_EXTRA, resolvedExtra); + } else if (ContentType.isImageType(type)) { intent.putExtra(ConversationActivity.DRAFT_IMAGE_EXTRA, resolvedExtra); } else if (ContentType.isAudioType(type)) { intent.putExtra(ConversationActivity.DRAFT_AUDIO_EXTRA, resolvedExtra); diff --git a/src/org/thoughtcrime/securesms/mms/GifSlide.java b/src/org/thoughtcrime/securesms/mms/GifSlide.java index 44fc838f7f..22b4b410da 100644 --- a/src/org/thoughtcrime/securesms/mms/GifSlide.java +++ b/src/org/thoughtcrime/securesms/mms/GifSlide.java @@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.crypto.MasterSecret; import java.io.IOException; import java.io.InputStream; +import ws.com.google.android.mms.ContentType; import ws.com.google.android.mms.pdu.PduPart; public class GifSlide extends ImageSlide { @@ -18,8 +19,8 @@ public class GifSlide extends ImageSlide { super(context, attachment); } - public GifSlide(Context context, Uri uri, long dataSize) throws IOException { - super(context, uri, dataSize); + public GifSlide(Context context, Uri uri, long size) throws IOException { + super(context, constructAttachmentFromUri(context, uri, ContentType.IMAGE_GIF, size)); } @Override