public MessageReference withModifiedFlag(Flag newFlag) { return new MessageReference(accountUuid, folderServerId, uid, newFlag); } }
/** * 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 boolean equals(Object o) { if (!(o instanceof MessageReference)) { return false; } MessageReference other = (MessageReference) o; return equals(other.accountUuid, other.folderServerId, other.uid); }
public static Intent createDismissMessageIntent(Context context, MessageReference messageReference) { Intent intent = new Intent(context, NotificationActionService.class); intent.setAction(ACTION_DISMISS); intent.putExtra(EXTRA_ACCOUNT_UUID, messageReference.getAccountUuid()); intent.putExtra(EXTRA_MESSAGE_REFERENCE, messageReference.toIdentityString()); return intent; }
private LocalMessage loadMessageFromDatabase() throws MessagingException { return controller.loadMessage(account, messageReference.getFolderServerId(), messageReference.getUid()); }
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); } }
@NonNull private Map<String, Map<String, List<MessageReference>>> groupMessagesByAccountAndFolder( List<MessageReference> messages) { Map<String, Map<String, List<MessageReference>>> accountMap = new HashMap<>(); for (MessageReference message : messages) { if (message == null) { continue; } String accountUuid = message.getAccountUuid(); String folderServerId = message.getFolderServerId(); Map<String, List<MessageReference>> folderMap = accountMap.get(accountUuid); if (folderMap == null) { folderMap = new HashMap<>(); accountMap.put(accountUuid, folderMap); } List<MessageReference> messageList = folderMap.get(folderServerId); if (messageList == null) { messageList = new LinkedList<>(); folderMap.put(folderServerId, messageList); } messageList.add(message); } return accountMap; }
String folderServerId = segmentList.get(1); String messageUid = segmentList.get(2); messageReference = new MessageReference(account.getUuid(), folderServerId, messageUid, null); break; messageReference = MessageReference.parse(messageReferenceString); search.addAccountUuid(messageReference.getAccountUuid()); String folderServerId = messageReference.getFolderServerId(); search.addAllowedFolder(folderServerId);
public static Intent createDeleteMessageIntent(Context context, MessageReference messageReference) { Intent intent = new Intent(context, NotificationActionService.class); intent.setAction(ACTION_DELETE); intent.putExtra(EXTRA_ACCOUNT_UUID, messageReference.getAccountUuid()); intent.putExtra(EXTRA_MESSAGE_REFERENCES, createSingleItemArrayList(messageReference)); return intent; }
private static ArrayList<String> createSingleItemArrayList(MessageReference messageReference) { ArrayList<String> messageReferenceStrings = new ArrayList<>(1); messageReferenceStrings.add(messageReference.toIdentityString()); return messageReferenceStrings; }
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; }
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); }
relatedMessageReference = MessageReference.parse(messageReferenceString); relatedMessageReference.getAccountUuid() : intent.getStringExtra(EXTRA_ACCOUNT); relatedMessageReference = relatedMessageReference.withModifiedFlag(Flag.ANSWERED); relatedMessageReference = relatedMessageReference.withModifiedFlag(Flag.FORWARDED);
public static List<MessageReference> toMessageReferenceList(List<String> messageReferenceStrings) { List<MessageReference> messageReferences = new ArrayList<>(messageReferenceStrings.size()); for (String messageReferenceString : messageReferenceStrings) { MessageReference messageReference = MessageReference.parse(messageReferenceString); if (messageReference != null) { messageReferences.add(messageReference); } else { Timber.w("Invalid message reference: %s", messageReferenceString); } } return messageReferences; }
@Test public void equalsWithAnObjectShouldReturnFalse() { MessageReference messageReference = new MessageReference("a", "b", "c", null); Object object = new Object(); assertFalse(messageReference.equals(object)); }
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); } }
relatedMessageReference = null; String originalMessage = k9identity.get(IdentityField.ORIGINAL_MESSAGE); MessageReference messageReference = MessageReference.parse(originalMessage); Account account = prefs.getAccount(messageReference.getAccountUuid()); if (account != null) { relatedMessageReference = messageReference;
public boolean isMoveCapable(MessageReference messageReference) { return !messageReference.getUid().startsWith(K9.LOCAL_UID_PREFIX); }
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; }