Skip to content

Commit

Permalink
Clear search if user sends message.
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-signal authored and greyson-signal committed Apr 21, 2020
1 parent fb16370 commit 1f99449
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
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;
Expand All @@ -30,7 +29,6 @@
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;
Expand Down Expand Up @@ -116,9 +114,9 @@
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;
Expand Down Expand Up @@ -305,6 +303,10 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {

@Override
public boolean onBackPressed() {
return closeSearchIfOpen();
}

private boolean closeSearchIfOpen() {
if (searchToolbar.isVisible() || activeAdapter == searchAdapter) {
activeAdapter = defaultAdapter;
list.removeItemDecoration(searchAdapterDecoration);
Expand Down Expand Up @@ -820,6 +822,12 @@ public void onEvent(ReminderUpdateEvent event) {
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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

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;
Expand Down Expand Up @@ -99,6 +100,7 @@ public static long send(final Context context,
long messageId = database.insertMessageOutbox(allocatedThreadId, message, forceSms, System.currentTimeMillis(), insertListener);

sendTextMessage(context, recipient, forceSms, keyExchange, messageId);
onMessageSent();

return allocatedThreadId;
}
Expand All @@ -125,6 +127,7 @@ public static long send(final Context context,
long messageId = database.insertMessageOutbox(message, allocatedThreadId, forceSms, insertListener);

sendMediaMessage(context, recipient, forceSms, messageId, Collections.emptyList());
onMessageSent();

return allocatedThreadId;
} catch (MmsException e) {
Expand Down Expand Up @@ -164,6 +167,7 @@ public static long sendPushWithPreUploadedMedia(final Context context,
attachmentDatabase.updateMessageId(attachmentIds, messageId);

sendMediaMessage(context, recipient, false, messageId, jobIds);
onMessageSent();

return allocatedThreadId;
} catch (MmsException e) {
Expand Down Expand Up @@ -241,6 +245,7 @@ public static void sendMediaBroadcast(@NonNull Context context, @NonNull List<Ou
}
}

onMessageSent();
mmsDatabase.setTransactionSuccessful();
} catch (MmsException e) {
Log.w(TAG, "Failed to send messages.", e);
Expand Down Expand Up @@ -285,6 +290,7 @@ public static void sendNewReaction(@NonNull Context context, long messageId, boo

try {
ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, false));
onMessageSent();
} catch (NoSuchMessageException e) {
Log.w(TAG, "[sendNewReaction] Could not find message! Ignoring.");
}
Expand All @@ -297,6 +303,7 @@ public static void sendReactionRemoval(@NonNull Context context, long messageId,

try {
ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, isMms, reaction, true));
onMessageSent();
} catch (NoSuchMessageException e) {
Log.w(TAG, "[sendReactionRemoval] Could not find message! Ignoring.");
}
Expand All @@ -305,6 +312,7 @@ public static void sendReactionRemoval(@NonNull Context context, long messageId,
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) {
Expand All @@ -318,6 +326,12 @@ public static void resend(Context context, MessageRecord messageRecord) {
} 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<String> uploadJobIds)
Expand Down Expand Up @@ -538,4 +552,8 @@ public void writeToParcel(Parcel dest, int flags) {
ParcelUtil.writeStringCollection(dest, jobIds);
}
}

public enum MessageSentEvent {
INSTANCE
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
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 {

Expand Down Expand Up @@ -182,6 +183,7 @@ private static void startCallInternal(@NonNull Activity activity, @NonNull Recip
activityIntent.putExtra(WebRtcCallActivity.EXTRA_ENABLE_VIDEO_IF_AVAILABLE, true);
}

MessageSender.onMessageSent();
activity.startActivity(activityIntent);
})
.execute();
Expand Down

0 comments on commit 1f99449

Please sign in to comment.