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.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;
}

View file

@ -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<String> uploadJobIds)
@ -538,4 +552,8 @@ public class MessageSender {
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.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();