private String getFolderServerIdOfAllMessages(List<MessageReference> messageReferences) { MessageReference firstMessage = messageReferences.get(0); String folderServerId = firstMessage.getFolderServerId(); for (MessageReference messageReference : messageReferences) { if (!TextUtils.equals(folderServerId, messageReference.getFolderServerId())) { return null; } } return folderServerId; }
public void copyMessage(MessageReference reference, String destFolderName) { mController.copyMessage(mAccount, mMessageReference.getFolderServerId(), reference, destFolderName); }
public void moveMessage(MessageReference reference, String destFolderName) { mController.moveMessage(mAccount, mMessageReference.getFolderServerId(), reference, destFolderName); }
public boolean canMessageBeArchived() { return (!mMessageReference.getFolderServerId().equals(mAccount.getArchiveFolder()) && mAccount.hasArchiveFolder()); }
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); } }
public boolean canMessageBeMovedToSpam() { return (!mMessageReference.getFolderServerId().equals(mAccount.getSpamFolder()) && mAccount.hasSpamFolder()); }
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 void refileMessage(String dstFolder) { String srcFolder = mMessageReference.getFolderServerId(); MessageReference messageToMove = mMessageReference; mFragmentListener.showNextMessageOrReturn(); mController.moveMessage(mAccount, srcFolder, messageToMove, dstFolder); }
private void startRefileActivity(int activity) { Intent intent = new Intent(getActivity(), ChooseFolder.class); intent.putExtra(ChooseFolder.EXTRA_ACCOUNT, mAccount.getUuid()); intent.putExtra(ChooseFolder.EXTRA_CUR_FOLDER, mMessageReference.getFolderServerId()); intent.putExtra(ChooseFolder.EXTRA_SEL_FOLDER, mAccount.getLastSelectedFolder()); intent.putExtra(ChooseFolder.EXTRA_MESSAGE, mMessageReference.toIdentityString()); startActivityForResult(intent, activity); }
private LocalMessage loadMessageFromDatabase() throws MessagingException { return controller.loadMessage(account, messageReference.getFolderServerId(), messageReference.getUid()); }
private LocalMessage loadMessageMetadataFromDatabase() throws MessagingException { return controller.loadMessageMetadata(account, messageReference.getFolderServerId(), messageReference.getUid()); }
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); } }
private void markMessageAsSpam(Intent intent, Account account, MessagingController controller) { Timber.i("NotificationActionService moving messages to spam"); String messageReferenceString = intent.getStringExtra(EXTRA_MESSAGE_REFERENCE); MessageReference messageReference = MessageReference.parse(messageReferenceString); if (messageReference == null) { Timber.w("Invalid message reference: %s", messageReferenceString); return; } String spamFolderName = account.getSpamFolder(); if (!K9.confirmSpam() && isMovePossible(controller, account, spamFolderName)) { String sourceFolderName = messageReference.getFolderServerId(); controller.moveMessage(account, sourceFolderName, messageReference, spamFolderName); } }
private TaskStackBuilder buildMessageViewBackStack(MessageReference message) { Account account = Preferences.getPreferences(context).getAccount(message.getAccountUuid()); String folderServerId = message.getFolderServerId(); TaskStackBuilder stack = buildMessageListBackStack(account, folderServerId); Intent intent = MessageList.actionDisplayMessageIntent(context, message); stack.addNextIntent(intent); return stack; }
@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()); }
@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()); }