From 57cb68849e6d096517f4a8daab78f388755c98b4 Mon Sep 17 00:00:00 2001 From: brumsel Date: Sat, 15 Aug 2015 14:00:08 +0200 Subject: [PATCH] Don't notify of failure when viewing message details If message delivery fails and the currently visible activity is the MessageDetailsActivity of the failed message, treat the failure notification as an in-thread notification. Closes #3947 --- .../thoughtcrime/securesms/ConversationFragment.java | 1 + src/org/thoughtcrime/securesms/ConversationItem.java | 1 + .../securesms/MessageDetailsActivity.java | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/src/org/thoughtcrime/securesms/ConversationFragment.java b/src/org/thoughtcrime/securesms/ConversationFragment.java index a2297fc270..fb3b43c49a 100644 --- a/src/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/org/thoughtcrime/securesms/ConversationFragment.java @@ -301,6 +301,7 @@ public class ConversationFragment extends Fragment Intent intent = new Intent(getActivity(), MessageDetailsActivity.class); intent.putExtra(MessageDetailsActivity.MASTER_SECRET_EXTRA, masterSecret); intent.putExtra(MessageDetailsActivity.MESSAGE_ID_EXTRA, message.getId()); + intent.putExtra(MessageDetailsActivity.THREAD_ID_EXTRA, threadId); intent.putExtra(MessageDetailsActivity.TYPE_EXTRA, message.isMms() ? MmsSmsDatabase.MMS_TRANSPORT : MmsSmsDatabase.SMS_TRANSPORT); intent.putExtra(MessageDetailsActivity.RECIPIENTS_IDS_EXTRA, recipients.getIds()); startActivity(intent); diff --git a/src/org/thoughtcrime/securesms/ConversationItem.java b/src/org/thoughtcrime/securesms/ConversationItem.java index d27fd577a6..08debe8c95 100644 --- a/src/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/org/thoughtcrime/securesms/ConversationItem.java @@ -536,6 +536,7 @@ public class ConversationItem extends LinearLayout Intent intent = new Intent(context, MessageDetailsActivity.class); intent.putExtra(MessageDetailsActivity.MASTER_SECRET_EXTRA, masterSecret); intent.putExtra(MessageDetailsActivity.MESSAGE_ID_EXTRA, messageRecord.getId()); + intent.putExtra(MessageDetailsActivity.THREAD_ID_EXTRA, messageRecord.getThreadId()); intent.putExtra(MessageDetailsActivity.TYPE_EXTRA, messageRecord.isMms() ? MmsSmsDatabase.MMS_TRANSPORT : MmsSmsDatabase.SMS_TRANSPORT); intent.putExtra(MessageDetailsActivity.IS_PUSH_GROUP_EXTRA, groupThread && messageRecord.isPush()); intent.putExtra(MessageDetailsActivity.RECIPIENTS_IDS_EXTRA, conversationRecipients.getIds()); diff --git a/src/org/thoughtcrime/securesms/MessageDetailsActivity.java b/src/org/thoughtcrime/securesms/MessageDetailsActivity.java index 9c483b31da..d5cd6492aa 100644 --- a/src/org/thoughtcrime/securesms/MessageDetailsActivity.java +++ b/src/org/thoughtcrime/securesms/MessageDetailsActivity.java @@ -42,6 +42,7 @@ import org.thoughtcrime.securesms.database.MmsSmsDatabase; import org.thoughtcrime.securesms.database.SmsDatabase; import org.thoughtcrime.securesms.database.loaders.MessageDetailsLoader; import org.thoughtcrime.securesms.database.model.MessageRecord; +import org.thoughtcrime.securesms.notifications.MessageNotifier; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientFactory; import org.thoughtcrime.securesms.recipients.Recipients; @@ -67,11 +68,13 @@ public class MessageDetailsActivity extends PassphraseRequiredActionBarActivity public final static String MASTER_SECRET_EXTRA = "master_secret"; public final static String MESSAGE_ID_EXTRA = "message_id"; + public final static String THREAD_ID_EXTRA = "thread_id"; public final static String IS_PUSH_GROUP_EXTRA = "is_push_group"; public final static String TYPE_EXTRA = "type"; public final static String RECIPIENTS_IDS_EXTRA = "recipients_ids"; private MasterSecret masterSecret; + private long threadId; private boolean isPushGroup; private ConversationItem conversationItem; private ViewGroup itemParent; @@ -109,6 +112,14 @@ public class MessageDetailsActivity extends PassphraseRequiredActionBarActivity dynamicTheme.onResume(this); dynamicLanguage.onResume(this); getSupportActionBar().setTitle(R.string.AndroidManifest__message_details); + + MessageNotifier.setVisibleThread(threadId); + } + + @Override + protected void onPause() { + super.onPause(); + MessageNotifier.setVisibleThread(-1L); } private void initializeActionBar() { @@ -143,6 +154,7 @@ public class MessageDetailsActivity extends PassphraseRequiredActionBarActivity View header = inflater.inflate(R.layout.message_details_header, recipientsList, false); masterSecret = getIntent().getParcelableExtra(MASTER_SECRET_EXTRA); + threadId = getIntent().getLongExtra(THREAD_ID_EXTRA, -1); isPushGroup = getIntent().getBooleanExtra(IS_PUSH_GROUP_EXTRA, false); itemParent = (ViewGroup) header.findViewById(R.id.item_container); recipientsList = (ListView ) findViewById(R.id.recipients_list);