Skip to content

Commit 31167d1

Browse files
committed
use wildcard media types, don't crash on preview fail
// FREEBIE
1 parent 6e3751a commit 31167d1

5 files changed

Lines changed: 24 additions & 1 deletion

File tree

res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
<string name="ConversationItem_click_to_approve_unencrypted_sms_dialog_title">Fallback to unencrypted SMS?</string>
6868
<string name="ConversationItem_click_to_approve_unencrypted_mms_dialog_title">Fallback to unencrypted MMS?</string>
6969
<string name="ConversationItem_click_to_approve_unencrypted_dialog_message">This message will <b>not</b> be encrypted because a secure session could not be established.\n\nSend insecure message?</string>
70+
<string name="ConversationItem_unable_to_open_media">Can\'t find an app able to open this media.</string>
7071

7172
<!-- ConversationActivity -->
7273
<string name="ConversationActivity_initiate_secure_session_question">Initiate secure session?</string>

src/org/thoughtcrime/securesms/ConversationItem.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.thoughtcrime.securesms;
1818

1919
import android.app.AlertDialog;
20+
import android.content.ActivityNotFoundException;
2021
import android.content.Context;
2122
import android.content.DialogInterface;
2223
import android.content.Intent;
@@ -36,6 +37,7 @@
3637
import android.widget.ImageView;
3738
import android.widget.LinearLayout;
3839
import android.widget.TextView;
40+
import android.widget.Toast;
3941

4042
import org.thoughtcrime.securesms.database.DatabaseFactory;
4143
import org.thoughtcrime.securesms.database.MmsDatabase;
@@ -446,7 +448,12 @@ private void fireIntent() {
446448
Intent intent = new Intent(Intent.ACTION_VIEW);
447449
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
448450
intent.setDataAndType(slide.getUri(), slide.getContentType());
449-
context.startActivity(intent);
451+
try {
452+
context.startActivity(intent);
453+
} catch (ActivityNotFoundException anfe) {
454+
Log.w(TAG, "No activity existed to view the media.");
455+
Toast.makeText(context, R.string.ConversationItem_unable_to_open_media, Toast.LENGTH_LONG).show();
456+
}
450457
}
451458

452459
public void onClick(View v) {

src/org/thoughtcrime/securesms/mms/AudioSlide.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ public AudioSlide(Context context, PduPart part) {
3838
super(context, part);
3939
}
4040

41+
@Override
42+
public String getContentType() {
43+
return "audio/*";
44+
}
45+
4146
public AudioSlide(Context context, Uri uri) throws IOException, MediaTooLargeException {
4247
super(context, constructPartFromUri(context, uri));
4348
}

src/org/thoughtcrime/securesms/mms/ImageSlide.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ public ImageSlide(Context context, MasterSecret masterSecret, PduPart part) {
6060
super(context, masterSecret, part);
6161
}
6262

63+
@Override
64+
public String getContentType() {
65+
return "image/*";
66+
}
67+
6368
public ImageSlide(Context context, Uri uri) throws IOException, BitmapDecodingException {
6469
super(context, constructPartFromUri(context, uri));
6570
}

src/org/thoughtcrime/securesms/mms/VideoSlide.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ public VideoSlide(Context context, PduPart part) {
3939
super(context, part);
4040
}
4141

42+
@Override
43+
public String getContentType() {
44+
return "video/*";
45+
}
46+
4247
public VideoSlide(Context context, Uri uri) throws IOException, MediaTooLargeException {
4348
super(context, constructPartFromUri(context, uri));
4449
}

0 commit comments

Comments
 (0)