public boolean isMoveCapable(MessageReference messageReference) { return !messageReference.getUid().startsWith(K9.LOCAL_UID_PREFIX); }
private void changeBackgroundColorIfActiveMessage(Cursor cursor, Account account, View view) { String uid = cursor.getString(UID_COLUMN); String folderServerId = cursor.getString(FOLDER_SERVER_ID_COLUMN); if (account.getUuid().equals(fragment.activeMessage.getAccountUuid()) && folderServerId.equals(fragment.activeMessage.getFolderServerId()) && uid.equals(fragment.activeMessage.getUid())) { int res = R.attr.messageListActiveItemBackgroundColor; TypedValue outValue = new TypedValue(); fragment.getActivity().getTheme().resolveAttribute(res, outValue, true); view.setBackgroundColor(outValue.data); } }
private int getPosition(MessageReference messageReference) { for (int i = 0, len = adapter.getCount(); i < len; i++) { Cursor cursor = (Cursor) adapter.getItem(i); String accountUuid = cursor.getString(ACCOUNT_UUID_COLUMN); String folderServerId = cursor.getString(FOLDER_SERVER_ID_COLUMN); String uid = cursor.getString(UID_COLUMN); if (accountUuid.equals(messageReference.getAccountUuid()) && folderServerId.equals(messageReference.getFolderServerId()) && uid.equals(messageReference.getUid())) { return i; } } return -1; }
private LocalMessage loadMessageMetadataFromDatabase() throws MessagingException { return controller.loadMessageMetadata(account, messageReference.getFolderServerId(), messageReference.getUid()); }
private LocalMessage loadMessageFromDatabase() throws MessagingException { return controller.loadMessage(account, messageReference.getFolderServerId(), messageReference.getUid()); }
public List<LocalMessage> getMessagesByReference(@NonNull List<MessageReference> messageReferences) throws MessagingException { open(OPEN_MODE_RW); String accountUuid = getAccountUuid(); String folderServerId = getServerId(); List<LocalMessage> messages = new ArrayList<>(); for (MessageReference messageReference : messageReferences) { if (!accountUuid.equals(messageReference.getAccountUuid())) { throw new IllegalArgumentException("all message references must belong to this Account!"); } if (!folderServerId.equals(messageReference.getFolderServerId())) { throw new IllegalArgumentException("all message references must belong to this LocalFolder!"); } LocalMessage message = getMessage(messageReference.getUid()); if (message != null) { messages.add(message); } } return messages; }
private void startDownloadingMessageBody(boolean downloadComplete) { if (downloadComplete) { MessagingController.getInstance(context).loadMessageRemote( account, messageReference.getFolderServerId(), messageReference.getUid(), downloadMessageListener); } else { MessagingController.getInstance(context).loadMessageRemotePartial( account, messageReference.getFolderServerId(), messageReference.getUid(), downloadMessageListener); } }
@Override public void messageUidChanged(Account account, String folderServerId, String oldUid, String newUid) { if (relatedMessageReference == null) { return; } Account sourceAccount = Preferences.getPreferences(MessageCompose.this) .getAccount(relatedMessageReference.getAccountUuid()); String sourceFolder = relatedMessageReference.getFolderServerId(); String sourceMessageUid = relatedMessageReference.getUid(); boolean changedMessageIsCurrent = account.equals(sourceAccount) && folderServerId.equals(sourceFolder) && oldUid.equals(sourceMessageUid); if (changedMessageIsCurrent) { relatedMessageReference = relatedMessageReference.withModifiedUid(newUid); } }
private void markMessagesAsRead(Intent intent, Account account, MessagingController controller) { Timber.i("NotificationActionService marking messages as read"); List<String> messageReferenceStrings = intent.getStringArrayListExtra(EXTRA_MESSAGE_REFERENCES); List<MessageReference> messageReferences = toMessageReferenceList(messageReferenceStrings); for (MessageReference messageReference : messageReferences) { String folderServerId = messageReference.getFolderServerId(); String uid = messageReference.getUid(); controller.setFlag(account, folderServerId, uid, Flag.SEEN, true); } }
queryArgs.add(activeMessage.getUid()); queryArgs.add(activeMessage.getFolderServerId());
@Test public void parseIdentityStringWithFlag() { MessageReference messageReference = MessageReference.parse("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); assertNotNull(messageReference); assertEquals("o hai!", messageReference.getAccountUuid()); assertEquals("folder", messageReference.getFolderServerId()); assertEquals("10101010", messageReference.getUid()); assertEquals(Flag.ANSWERED, messageReference.getFlag()); }
@Test public void checkMessageReferenceWithChangedUid() { MessageReference messageReferenceOne = createMessageReferenceWithFlag( "account", "folder", "uid", Flag.ANSWERED); MessageReference messageReferenceTwo = messageReferenceOne.withModifiedUid("---"); assertEquals("account", messageReferenceTwo.getAccountUuid()); assertEquals("folder", messageReferenceTwo.getFolderServerId()); assertEquals("---", messageReferenceTwo.getUid()); assertEquals(Flag.ANSWERED, messageReferenceTwo.getFlag()); }
@Test public void checkMessageReferenceWithChangedFlag() { MessageReference messageReferenceOne = createMessageReferenceWithFlag( "account", "folder", "uid", Flag.ANSWERED); MessageReference messageReferenceTwo = messageReferenceOne.withModifiedFlag(Flag.DELETED); assertEquals("account", messageReferenceTwo.getAccountUuid()); assertEquals("folder", messageReferenceTwo.getFolderServerId()); assertEquals("uid", messageReferenceTwo.getUid()); assertEquals(Flag.DELETED, messageReferenceTwo.getFlag()); }
@Test public void parseIdentityStringWithoutFlag() { MessageReference messageReference = MessageReference.parse("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA="); assertNotNull(messageReference); assertEquals("o hai!", messageReference.getAccountUuid()); assertEquals("folder", messageReference.getFolderServerId()); assertEquals("10101010", messageReference.getUid()); assertNull(messageReference.getFlag()); }
/** * Set the flag on the referenced message(indicated we replied / forwarded the message) **/ private void updateReferencedMessage() { if (messageReference != null && messageReference.getFlag() != null) { Timber.d("Setting referenced message (%s, %s) flag to %s", messageReference.getFolderServerId(), messageReference.getUid(), messageReference.getFlag()); final Account account = Preferences.getPreferences(context) .getAccount(messageReference.getAccountUuid()); final String folderServerId = messageReference.getFolderServerId(); final String sourceMessageUid = messageReference.getUid(); MessagingController.getInstance(context).setFlag(account, folderServerId, sourceMessageUid, messageReference.getFlag(), true); } } }
@Override public void onMessageBuildSuccess(MimeMessage message, boolean isDraft) { String plaintextSubject = (currentMessageBuilder instanceof PgpMessageBuilder) ? currentMessageBuilder.getSubject() : null; if (isDraft) { changesMadeSinceLastSave = false; currentMessageBuilder = null; if (action == Action.EDIT_DRAFT && relatedMessageReference != null) { message.setUid(relatedMessageReference.getUid()); } new SaveMessageTask(getApplicationContext(), account, contacts, internalMessageHandler, message, draftId, plaintextSubject, true).execute(); if (finishAfterDraftSaved) { finish(); } else { setProgressBarIndeterminateVisibility(false); } } else { currentMessageBuilder = null; new SendMessageTask(getApplicationContext(), account, contacts, message, draftId != INVALID_DRAFT_ID ? draftId : null, plaintextSubject, relatedMessageReference).execute(); finish(); } }
private LocalMessage loadMessage(MessageReference messageReference) { String accountUuid = messageReference.getAccountUuid(); String folderServerId = messageReference.getFolderServerId(); String uid = messageReference.getUid();