diff --git a/res/values/strings.xml b/res/values/strings.xml index 85939a0043..44f2e8da6e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -58,8 +58,10 @@ %1$s has updated the group. Tap for SMS fallback Tap for insecure fallback - Fallback to SMS? - Fallback to unencrypted SMS? + Fallback to SMS? + Fallback to MMS? + Fallback to unencrypted SMS? + Fallback to unencrypted MMS? This message will not be encrypted because a secure session could not be established.\n\nSend insecure message? diff --git a/src/org/thoughtcrime/securesms/ConversationItem.java b/src/org/thoughtcrime/securesms/ConversationItem.java index 9553952a59..3c34f34b8c 100644 --- a/src/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/org/thoughtcrime/securesms/ConversationItem.java @@ -518,17 +518,24 @@ public class ConversationItem extends LinearLayout { private void handleMessageApproval() { final int title; final int message; + if (messageRecord.isPendingSecureSmsFallback()) { - title = R.string.ConversationItem_click_to_approve_dialog_title; + if (messageRecord.isMms()) title = R.string.ConversationItem_click_to_approve_mms_dialog_title; + else title = R.string.ConversationItem_click_to_approve_sms_dialog_title; + message = -1; } else { - title = R.string.ConversationItem_click_to_approve_unencrypted_dialog_title; + if (messageRecord.isMms()) title = R.string.ConversationItem_click_to_approve_unencrypted_mms_dialog_title; + else title = R.string.ConversationItem_click_to_approve_unencrypted_sms_dialog_title; + message = R.string.ConversationItem_click_to_approve_unencrypted_dialog_message; } AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(title); + if (message > -1) builder.setMessage(message); + builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { @@ -547,12 +554,17 @@ public class ConversationItem extends LinearLayout { database.markAsOutbox(messageRecord.getId()); database.markAsForcedSms(messageRecord.getId()); } + Intent intent = new Intent(context, SendReceiveService.class); - intent.setAction(SendReceiveService.SEND_SMS_ACTION); + intent.setAction(messageRecord.isMms() ? + SendReceiveService.SEND_MMS_ACTION : + SendReceiveService.SEND_SMS_ACTION); intent.putExtra(SendReceiveService.MASTER_SECRET_EXTRA, masterSecret); + context.startService(intent); } }); + builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) {