From 57135e1a59fe187ca9619d659d7338c058bc1850 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 21 Jun 2020 16:28:57 +0200 Subject: [PATCH] do not update recent quick action when recording voice mail. fixes #3799 --- .../ui/ConversationFragment.java | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index bcfa77270..90a005a69 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -900,7 +900,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke private static boolean anyNeedsExternalStoragePermission(final Collection attachments) { - for(final Attachment attachment : attachments) { + for (final Attachment attachment : attachments) { if (attachment.getType() != Attachment.Type.LOCATION) { return true; } @@ -1346,7 +1346,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke final Contact contact = conversation.getContact(); if (contact.getPresences().anySupport(Namespace.JINGLE_MESSAGE)) { - triggerRtpSession(contact.getAccount(),contact.getJid().asBareJid(),action); + triggerRtpSession(contact.getAccount(), contact.getJid().asBareJid(), action); } else { final RtpCapability.Capability capability; if (action.equals(RtpSessionActivity.ACTION_MAKE_VIDEO_CALL)) { @@ -1436,6 +1436,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } public void attachFile(final int attachmentChoice) { + attachFile(attachmentChoice, true); + } + + public void attachFile(final int attachmentChoice, final boolean updateRecentlyUsed) { if (attachmentChoice == ATTACHMENT_CHOICE_RECORD_VOICE) { if (!hasPermissions(attachmentChoice, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO)) { return; @@ -1449,12 +1453,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke return; } } - try { - activity.getPreferences().edit() - .putString(RECENTLY_USED_QUICK_ACTION, SendButtonAction.of(attachmentChoice).toString()) - .apply(); - } catch (IllegalArgumentException e) { - //just do not save + if (updateRecentlyUsed) { + storeRecentlyUsedQuickAction(attachmentChoice); } final int encryption = conversation.getNextEncryption(); final int mode = conversation.getMode(); @@ -1502,6 +1502,16 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } } + private void storeRecentlyUsedQuickAction(final int attachmentChoice) { + try { + activity.getPreferences().edit() + .putString(RECENTLY_USED_QUICK_ACTION, SendButtonAction.of(attachmentChoice).toString()) + .apply(); + } catch (IllegalArgumentException e) { + //just do not save + } + } + @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (grantResults.length > 0) { @@ -2135,7 +2145,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke return this.binding != null && scrolledToBottom(this.binding.messagesView); } - private void processExtras(Bundle extras) { + private void processExtras(final Bundle extras) { final String downloadUuid = extras.getString(ConversationsActivity.EXTRA_DOWNLOAD_UUID); final String text = extras.getString(Intent.EXTRA_TEXT); final String nick = extras.getString(ConversationsActivity.EXTRA_NICK); @@ -2181,7 +2191,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } } if (ConversationsActivity.POST_ACTION_RECORD_VOICE.equals(postInitAction)) { - attachFile(ATTACHMENT_CHOICE_RECORD_VOICE); + attachFile(ATTACHMENT_CHOICE_RECORD_VOICE, false); return; } final Message message = downloadUuid == null ? null : conversation.findMessageWithFileAndUuid(downloadUuid); @@ -2190,7 +2200,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } } - private List extractUris(Bundle extras) { + private List extractUris(final Bundle extras) { final List uris = extras.getParcelableArrayList(Intent.EXTRA_STREAM); if (uris != null) { return uris; @@ -2203,7 +2213,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } } - private List cleanUris(List uris) { + private List cleanUris(final List uris) { Iterator iterator = uris.iterator(); while (iterator.hasNext()) { final Uri uri = iterator.next();