Loading k9mail/src/main/java/com/fsck/k9/activity/MessageLoaderHelper.java +14 −5 Original line number Diff line number Diff line Loading @@ -71,11 +71,11 @@ public class MessageLoaderHelper { private static final int DECODE_MESSAGE_LOADER_ID = 2; // injected state private final Context context; private final FragmentManager fragmentManager; private final LoaderManager loaderManager; @Nullable // may be cleared // injected state - all of this may be cleared to avoid data leakage! private Context context; private FragmentManager fragmentManager; private LoaderManager loaderManager; @Nullable // make this explicitly nullable, make sure to cancel/ignore any operation if this is null private MessageLoaderCallbacks callback; Loading Loading @@ -137,6 +137,9 @@ public class MessageLoaderHelper { } callback = null; context = null; fragmentManager = null; loaderManager = null; } /** Prevents future callbacks, but retains loading state to pick up from in a call to Loading @@ -148,6 +151,9 @@ public class MessageLoaderHelper { } callback = null; context = null; fragmentManager = null; loaderManager = null; } @UiThread Loading Loading @@ -416,6 +422,9 @@ public class MessageLoaderHelper { MessagingListener downloadMessageListener = new MessagingListener() { @Override public void loadMessageRemoteFinished(Account account, String folder, String uid) { if (messageReference.equals(account.getUuid(), folder, uid)) { return; } onMessageDownloadFinished(); } Loading k9mail/src/main/java/com/fsck/k9/activity/MessageReference.java +9 −7 Original line number Diff line number Diff line Loading @@ -109,16 +109,18 @@ public class MessageReference implements Parcelable { @Override public boolean equals(Object o) { if (o instanceof MessageReference == false) { if (!(o instanceof MessageReference)) { return false; } MessageReference other = (MessageReference) o; if ((accountUuid == other.accountUuid || (accountUuid != null && accountUuid.equals(other.accountUuid))) && (folderName == other.folderName || (folderName != null && folderName.equals(other.folderName))) && (uid == other.uid || (uid != null && uid.equals(other.uid)))) { return true; return equals(other.accountUuid, other.folderName, other.uid); } return false; public boolean equals(String accountUuid, String folderName, String uid) { // noinspection StringEquality, we check for null values here return ((accountUuid == this.accountUuid || (accountUuid != null && accountUuid.equals(this.accountUuid))) && (folderName == this.folderName || (folderName != null && folderName.equals(this.folderName))) && (uid == this.uid || (uid != null && uid.equals(this.uid)))); } @Override Loading Loading
k9mail/src/main/java/com/fsck/k9/activity/MessageLoaderHelper.java +14 −5 Original line number Diff line number Diff line Loading @@ -71,11 +71,11 @@ public class MessageLoaderHelper { private static final int DECODE_MESSAGE_LOADER_ID = 2; // injected state private final Context context; private final FragmentManager fragmentManager; private final LoaderManager loaderManager; @Nullable // may be cleared // injected state - all of this may be cleared to avoid data leakage! private Context context; private FragmentManager fragmentManager; private LoaderManager loaderManager; @Nullable // make this explicitly nullable, make sure to cancel/ignore any operation if this is null private MessageLoaderCallbacks callback; Loading Loading @@ -137,6 +137,9 @@ public class MessageLoaderHelper { } callback = null; context = null; fragmentManager = null; loaderManager = null; } /** Prevents future callbacks, but retains loading state to pick up from in a call to Loading @@ -148,6 +151,9 @@ public class MessageLoaderHelper { } callback = null; context = null; fragmentManager = null; loaderManager = null; } @UiThread Loading Loading @@ -416,6 +422,9 @@ public class MessageLoaderHelper { MessagingListener downloadMessageListener = new MessagingListener() { @Override public void loadMessageRemoteFinished(Account account, String folder, String uid) { if (messageReference.equals(account.getUuid(), folder, uid)) { return; } onMessageDownloadFinished(); } Loading
k9mail/src/main/java/com/fsck/k9/activity/MessageReference.java +9 −7 Original line number Diff line number Diff line Loading @@ -109,16 +109,18 @@ public class MessageReference implements Parcelable { @Override public boolean equals(Object o) { if (o instanceof MessageReference == false) { if (!(o instanceof MessageReference)) { return false; } MessageReference other = (MessageReference) o; if ((accountUuid == other.accountUuid || (accountUuid != null && accountUuid.equals(other.accountUuid))) && (folderName == other.folderName || (folderName != null && folderName.equals(other.folderName))) && (uid == other.uid || (uid != null && uid.equals(other.uid)))) { return true; return equals(other.accountUuid, other.folderName, other.uid); } return false; public boolean equals(String accountUuid, String folderName, String uid) { // noinspection StringEquality, we check for null values here return ((accountUuid == this.accountUuid || (accountUuid != null && accountUuid.equals(this.accountUuid))) && (folderName == this.folderName || (folderName != null && folderName.equals(this.folderName))) && (uid == this.uid || (uid != null && uid.equals(this.uid)))); } @Override Loading