Clear search if user sends message.

This commit is contained in:
Alex Hart 2020-04-06 11:36:39 -03:00 committed by Greyson Parrelli
parent fb1637006d
commit 1f994495f8
3 changed files with 31 additions and 3 deletions

View file

@ -20,7 +20,6 @@ import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.ActivityNotFoundException;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.TypedArray; import android.content.res.TypedArray;
@ -30,7 +29,6 @@ import android.graphics.BitmapFactory;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Paint; import android.graphics.Paint;
import android.net.Uri;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Bundle; 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.MarkReadReceiver;
import org.thoughtcrime.securesms.notifications.MessageNotifier; import org.thoughtcrime.securesms.notifications.MessageNotifier;
import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.profiles.ProfileName;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.service.KeyCachingService; import org.thoughtcrime.securesms.service.KeyCachingService;
import org.thoughtcrime.securesms.sms.MessageSender;
import org.thoughtcrime.securesms.util.AvatarUtil; import org.thoughtcrime.securesms.util.AvatarUtil;
import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.ServiceUtil;
import org.thoughtcrime.securesms.util.StickyHeaderDecoration; import org.thoughtcrime.securesms.util.StickyHeaderDecoration;
@ -305,6 +303,10 @@ public class ConversationListFragment extends MainFragment implements LoaderMana
@Override @Override
public boolean onBackPressed() { public boolean onBackPressed() {
return closeSearchIfOpen();
}
private boolean closeSearchIfOpen() {
if (searchToolbar.isVisible() || activeAdapter == searchAdapter) { if (searchToolbar.isVisible() || activeAdapter == searchAdapter) {
activeAdapter = defaultAdapter; activeAdapter = defaultAdapter;
list.removeItemDecoration(searchAdapterDecoration); list.removeItemDecoration(searchAdapterDecoration);
@ -820,6 +822,12 @@ public class ConversationListFragment extends MainFragment implements LoaderMana
updateReminders(); updateReminders();
} }
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void onEvent(MessageSender.MessageSentEvent event) {
EventBus.getDefault().removeStickyEvent(event);
closeSearchIfOpen();
}
protected @IdRes int getToolbarRes() { protected @IdRes int getToolbarRes() {
return R.id.toolbar; return R.id.toolbar;
} }

View file

@ -25,6 +25,7 @@ import androidx.annotation.Nullable;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import org.greenrobot.eventbus.EventBus;
import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.ApplicationContext;
import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.attachments.Attachment;
import org.thoughtcrime.securesms.attachments.AttachmentId; import org.thoughtcrime.securesms.attachments.AttachmentId;
@ -99,6 +100,7 @@ public class MessageSender {
long messageId = database.insertMessageOutbox(allocatedThreadId, message, forceSms, System.currentTimeMillis(), insertListener); long messageId = database.insertMessageOutbox(allocatedThreadId, message, forceSms, System.currentTimeMillis(), insertListener);
sendTextMessage(context, recipient, forceSms, keyExchange, messageId); sendTextMessage(context, recipient, forceSms, keyExchange, messageId);
onMessageSent();
return allocatedThreadId; return allocatedThreadId;
} }
@ -125,6 +127,7 @@ public class MessageSender {
long messageId = database.insertMessageOutbox(message, allocatedThreadId, forceSms, insertListener); long messageId = database.insertMessageOutbox(message, allocatedThreadId, forceSms, insertListener);
sendMediaMessage(context, recipient, forceSms, messageId, Collections.emptyList()); sendMediaMessage(context, recipient, forceSms, messageId, Collections.emptyList());
onMessageSent();
return allocatedThreadId; return allocatedThreadId;
} catch (MmsException e) { } catch (MmsException e) {
@ -164,6 +167,7 @@ public class MessageSender {
attachmentDatabase.updateMessageId(attachmentIds, messageId); attachmentDatabase.updateMessageId(attachmentIds, messageId);
sendMediaMessage(context, recipient, false, messageId, jobIds); sendMediaMessage(context, recipient, false, messageId, jobIds);
onMessageSent();
return allocatedThreadId; return allocatedThreadId;
} catch (MmsException e) { } catch (MmsException e) {
@ -241,6 +245,7 @@ public class MessageSender {
} }
} }
onMessageSent();
mmsDatabase.setTransactionSuccessful(); mmsDatabase.setTransactionSuccessful();
} catch (MmsException e) { } catch (MmsException e) {
Log.w(TAG, "Failed to send messages.", e); Log.w(TAG, "Failed to send messages.", e);
@ -285,6 +290,7 @@ public class MessageSender {
try { try {
ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, false)); ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, false));
onMessageSent();
} catch (NoSuchMessageException e) { } catch (NoSuchMessageException e) {
Log.w(TAG, "[sendNewReaction] Could not find message! Ignoring."); Log.w(TAG, "[sendNewReaction] Could not find message! Ignoring.");
} }
@ -297,6 +303,7 @@ public class MessageSender {
try { try {
ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, true)); ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, true));
onMessageSent();
} catch (NoSuchMessageException e) { } catch (NoSuchMessageException e) {
Log.w(TAG, "[sendReactionRemoval] Could not find message! Ignoring."); 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) { public static void resendGroupMessage(Context context, MessageRecord messageRecord, RecipientId filterRecipientId) {
if (!messageRecord.isMms()) throw new AssertionError("Not Group"); if (!messageRecord.isMms()) throw new AssertionError("Not Group");
sendGroupPush(context, messageRecord.getRecipient(), messageRecord.getId(), filterRecipientId, Collections.emptyList()); sendGroupPush(context, messageRecord.getRecipient(), messageRecord.getId(), filterRecipientId, Collections.emptyList());
onMessageSent();
} }
public static void resend(Context context, MessageRecord messageRecord) { public static void resend(Context context, MessageRecord messageRecord) {
@ -318,6 +326,12 @@ public class MessageSender {
} else { } else {
sendTextMessage(context, recipient, forceSms, keyExchange, messageId); 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<String> uploadJobIds) private static void sendMediaMessage(Context context, Recipient recipient, boolean forceSms, long messageId, @NonNull Collection<String> uploadJobIds)
@ -538,4 +552,8 @@ public class MessageSender {
ParcelUtil.writeStringCollection(dest, jobIds); ParcelUtil.writeStringCollection(dest, jobIds);
} }
} }
public enum MessageSentEvent {
INSTANCE
}
} }

View file

@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.ringrtc.RemotePeer;
import org.thoughtcrime.securesms.service.WebRtcCallService; import org.thoughtcrime.securesms.service.WebRtcCallService;
import org.thoughtcrime.securesms.sms.MessageSender;
public class CommunicationActions { public class CommunicationActions {
@ -182,6 +183,7 @@ public class CommunicationActions {
activityIntent.putExtra(WebRtcCallActivity.EXTRA_ENABLE_VIDEO_IF_AVAILABLE, true); activityIntent.putExtra(WebRtcCallActivity.EXTRA_ENABLE_VIDEO_IF_AVAILABLE, true);
} }
MessageSender.onMessageSent();
activity.startActivity(activityIntent); activity.startActivity(activityIntent);
}) })
.execute(); .execute();