From 1f994495f885b1da7991ebd620d8568f003bf97e Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 6 Apr 2020 11:36:39 -0300 Subject: [PATCH] Clear search if user sends message. --- .../ConversationListFragment.java | 14 +++++++++++--- .../securesms/sms/MessageSender.java | 18 ++++++++++++++++++ .../securesms/util/CommunicationActions.java | 2 ++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java index de80909e2b..491e620bb5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java @@ -20,7 +20,6 @@ import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.app.ProgressDialog; -import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.res.TypedArray; @@ -30,7 +29,6 @@ import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; -import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; @@ -116,9 +114,9 @@ import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.notifications.MarkReadReceiver; import org.thoughtcrime.securesms.notifications.MessageNotifier; import org.thoughtcrime.securesms.permissions.Permissions; -import org.thoughtcrime.securesms.profiles.ProfileName; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.service.KeyCachingService; +import org.thoughtcrime.securesms.sms.MessageSender; import org.thoughtcrime.securesms.util.AvatarUtil; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.StickyHeaderDecoration; @@ -305,6 +303,10 @@ public class ConversationListFragment extends MainFragment implements LoaderMana @Override public boolean onBackPressed() { + return closeSearchIfOpen(); + } + + private boolean closeSearchIfOpen() { if (searchToolbar.isVisible() || activeAdapter == searchAdapter) { activeAdapter = defaultAdapter; list.removeItemDecoration(searchAdapterDecoration); @@ -820,6 +822,12 @@ public class ConversationListFragment extends MainFragment implements LoaderMana updateReminders(); } + @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) + public void onEvent(MessageSender.MessageSentEvent event) { + EventBus.getDefault().removeStickyEvent(event); + closeSearchIfOpen(); + } + protected @IdRes int getToolbarRes() { return R.id.toolbar; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java index 4e34ace138..505c664379 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java @@ -25,6 +25,7 @@ import androidx.annotation.Nullable; import com.annimon.stream.Stream; +import org.greenrobot.eventbus.EventBus; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.attachments.AttachmentId; @@ -99,6 +100,7 @@ public class MessageSender { long messageId = database.insertMessageOutbox(allocatedThreadId, message, forceSms, System.currentTimeMillis(), insertListener); sendTextMessage(context, recipient, forceSms, keyExchange, messageId); + onMessageSent(); return allocatedThreadId; } @@ -125,6 +127,7 @@ public class MessageSender { long messageId = database.insertMessageOutbox(message, allocatedThreadId, forceSms, insertListener); sendMediaMessage(context, recipient, forceSms, messageId, Collections.emptyList()); + onMessageSent(); return allocatedThreadId; } catch (MmsException e) { @@ -164,6 +167,7 @@ public class MessageSender { attachmentDatabase.updateMessageId(attachmentIds, messageId); sendMediaMessage(context, recipient, false, messageId, jobIds); + onMessageSent(); return allocatedThreadId; } catch (MmsException e) { @@ -241,6 +245,7 @@ public class MessageSender { } } + onMessageSent(); mmsDatabase.setTransactionSuccessful(); } catch (MmsException e) { Log.w(TAG, "Failed to send messages.", e); @@ -285,6 +290,7 @@ public class MessageSender { try { ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, false)); + onMessageSent(); } catch (NoSuchMessageException e) { Log.w(TAG, "[sendNewReaction] Could not find message! Ignoring."); } @@ -297,6 +303,7 @@ public class MessageSender { try { ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, true)); + onMessageSent(); } catch (NoSuchMessageException e) { Log.w(TAG, "[sendReactionRemoval] Could not find message! Ignoring."); } @@ -305,6 +312,7 @@ public class MessageSender { public static void resendGroupMessage(Context context, MessageRecord messageRecord, RecipientId filterRecipientId) { if (!messageRecord.isMms()) throw new AssertionError("Not Group"); sendGroupPush(context, messageRecord.getRecipient(), messageRecord.getId(), filterRecipientId, Collections.emptyList()); + onMessageSent(); } public static void resend(Context context, MessageRecord messageRecord) { @@ -318,6 +326,12 @@ public class MessageSender { } else { sendTextMessage(context, recipient, forceSms, keyExchange, messageId); } + + onMessageSent(); + } + + public static void onMessageSent() { + EventBus.getDefault().postSticky(MessageSentEvent.INSTANCE); } private static void sendMediaMessage(Context context, Recipient recipient, boolean forceSms, long messageId, @NonNull Collection uploadJobIds) @@ -538,4 +552,8 @@ public class MessageSender { ParcelUtil.writeStringCollection(dest, jobIds); } } + + public enum MessageSentEvent { + INSTANCE + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java b/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java index 08d07fcaba..256eb22266 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java @@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.service.WebRtcCallService; +import org.thoughtcrime.securesms.sms.MessageSender; public class CommunicationActions { @@ -182,6 +183,7 @@ public class CommunicationActions { activityIntent.putExtra(WebRtcCallActivity.EXTRA_ENABLE_VIDEO_IF_AVAILABLE, true); } + MessageSender.onMessageSent(); activity.startActivity(activityIntent); }) .execute();