Support videos from other apps. Fixes #949

This commit is contained in:
Buck Doyle 2014-03-03 11:55:34 -05:00
parent dec7fd4c8a
commit 411e3ceff6
3 changed files with 15 additions and 5 deletions

View File

@ -70,6 +70,7 @@
<data android:mimeType="audio/*" /> <data android:mimeType="audio/*" />
<data android:mimeType="image/*" /> <data android:mimeType="image/*" />
<data android:mimeType="text/*" /> <data android:mimeType="text/*" />
<data android:mimeType="video/*" />
</intent-filter> </intent-filter>
</activity> </activity>

View File

@ -137,6 +137,7 @@ public class ConversationActivity extends PassphraseRequiredSherlockFragmentActi
public static final String DRAFT_TEXT_EXTRA = "draft_text"; public static final String DRAFT_TEXT_EXTRA = "draft_text";
public static final String DRAFT_IMAGE_EXTRA = "draft_image"; public static final String DRAFT_IMAGE_EXTRA = "draft_image";
public static final String DRAFT_AUDIO_EXTRA = "draft_audio"; 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"; public static final String DISTRIBUTION_TYPE_EXTRA = "distribution_type";
private static final int PICK_CONTACT = 1; private static final int PICK_CONTACT = 1;
@ -619,12 +620,14 @@ public class ConversationActivity extends PassphraseRequiredSherlockFragmentActi
String draftText = getIntent().getStringExtra(DRAFT_TEXT_EXTRA); String draftText = getIntent().getStringExtra(DRAFT_TEXT_EXTRA);
Uri draftImage = getIntent().getParcelableExtra(DRAFT_IMAGE_EXTRA); Uri draftImage = getIntent().getParcelableExtra(DRAFT_IMAGE_EXTRA);
Uri draftAudio = getIntent().getParcelableExtra(DRAFT_AUDIO_EXTRA); Uri draftAudio = getIntent().getParcelableExtra(DRAFT_AUDIO_EXTRA);
Uri draftVideo = getIntent().getParcelableExtra(DRAFT_VIDEO_EXTRA);
if (draftText != null) composeText.setText(draftText); if (draftText != null) composeText.setText(draftText);
if (draftImage != null) addAttachmentImage(draftImage); if (draftImage != null) addAttachmentImage(draftImage);
if (draftAudio != null) addAttachmentAudio(draftAudio); if (draftAudio != null) addAttachmentAudio(draftAudio);
if (draftVideo != null) addAttachmentVideo(draftVideo);
if (draftText == null && draftImage == null && draftAudio == null) { if (draftText == null && draftImage == null && draftAudio == null && draftVideo == null) {
initializeDraftFromDatabase(); initializeDraftFromDatabase();
} }
} }

View File

@ -141,6 +141,7 @@ public class RoutingActivity extends PassphraseRequiredSherlockActivity {
intent.putExtra(ConversationActivity.DRAFT_TEXT_EXTRA, parameters.draftText); intent.putExtra(ConversationActivity.DRAFT_TEXT_EXTRA, parameters.draftText);
intent.putExtra(ConversationActivity.DRAFT_IMAGE_EXTRA, parameters.draftImage); intent.putExtra(ConversationActivity.DRAFT_IMAGE_EXTRA, parameters.draftImage);
intent.putExtra(ConversationActivity.DRAFT_AUDIO_EXTRA, parameters.draftAudio); intent.putExtra(ConversationActivity.DRAFT_AUDIO_EXTRA, parameters.draftAudio);
intent.putExtra(ConversationActivity.DRAFT_VIDEO_EXTRA, parameters.draftVideo);
return intent; return intent;
} }
@ -200,7 +201,7 @@ public class RoutingActivity extends PassphraseRequiredSherlockActivity {
recipients = null; recipients = null;
} }
return new ConversationParameters(threadId, recipients, null, null, null); return new ConversationParameters(threadId, recipients, null, null, null, null);
} }
private ConversationParameters getConversationParametersForShareAction() { private ConversationParameters getConversationParametersForShareAction() {
@ -208,6 +209,7 @@ public class RoutingActivity extends PassphraseRequiredSherlockActivity {
String draftText = null; String draftText = null;
Uri draftImage = null; Uri draftImage = null;
Uri draftAudio = null; Uri draftAudio = null;
Uri draftVideo = null;
if ("text/plain".equals(type)) { if ("text/plain".equals(type)) {
draftText = getIntent().getStringExtra(Intent.EXTRA_TEXT); draftText = getIntent().getStringExtra(Intent.EXTRA_TEXT);
@ -215,16 +217,18 @@ public class RoutingActivity extends PassphraseRequiredSherlockActivity {
draftImage = getIntent().getParcelableExtra(Intent.EXTRA_STREAM); draftImage = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
} else if (type.startsWith("audio/")) { } else if (type.startsWith("audio/")) {
draftAudio = getIntent().getParcelableExtra(Intent.EXTRA_STREAM); draftAudio = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
} else if (type.startsWith("video/")) {
draftVideo = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
} }
return new ConversationParameters(-1, null, draftText, draftImage, draftAudio); return new ConversationParameters(-1, null, draftText, draftImage, draftAudio, draftVideo);
} }
private ConversationParameters getConversationParametersForInternalAction() { private ConversationParameters getConversationParametersForInternalAction() {
long threadId = getIntent().getLongExtra("thread_id", -1); long threadId = getIntent().getLongExtra("thread_id", -1);
Recipients recipients = getIntent().getParcelableExtra("recipients"); Recipients recipients = getIntent().getParcelableExtra("recipients");
return new ConversationParameters(threadId, recipients, null, null, null); return new ConversationParameters(threadId, recipients, null, null, null, null);
} }
private boolean isShareAction() { private boolean isShareAction() {
@ -241,15 +245,17 @@ public class RoutingActivity extends PassphraseRequiredSherlockActivity {
public final String draftText; public final String draftText;
public final Uri draftImage; public final Uri draftImage;
public final Uri draftAudio; public final Uri draftAudio;
public final Uri draftVideo;
public ConversationParameters(long thread, Recipients recipients, public ConversationParameters(long thread, Recipients recipients,
String draftText, Uri draftImage, Uri draftAudio) String draftText, Uri draftImage, Uri draftAudio, Uri draftVideo)
{ {
this.thread = thread; this.thread = thread;
this.recipients = recipients; this.recipients = recipients;
this.draftText = draftText; this.draftText = draftText;
this.draftImage = draftImage; this.draftImage = draftImage;
this.draftAudio = draftAudio; this.draftAudio = draftAudio;
this.draftVideo = draftVideo;
} }
} }