Loading k9mail/src/main/java/com/fsck/k9/activity/MessageLoaderHelper.java +8 −4 Original line number Original line Diff line number Diff line Loading @@ -258,7 +258,7 @@ public class MessageLoaderHelper { // process with crypto helper // process with crypto helper private void startOrResumeCryptoOperation() { private void startOrResumeCryptoOperation() { RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(); RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(true); if (retainCryptoHelperFragment.hasData()) { if (retainCryptoHelperFragment.hasData()) { messageCryptoHelper = retainCryptoHelperFragment.getData(); messageCryptoHelper = retainCryptoHelperFragment.getData(); } else { } else { Loading @@ -270,7 +270,7 @@ public class MessageLoaderHelper { } } private void cancelAndClearCryptoOperation() { private void cancelAndClearCryptoOperation() { RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(); RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(false); if (retainCryptoHelperFragment != null) { if (retainCryptoHelperFragment != null) { if (retainCryptoHelperFragment.hasData()) { if (retainCryptoHelperFragment.hasData()) { messageCryptoHelper = retainCryptoHelperFragment.getData(); messageCryptoHelper = retainCryptoHelperFragment.getData(); Loading @@ -281,8 +281,12 @@ public class MessageLoaderHelper { } } } } private RetainFragment<MessageCryptoHelper> getMessageCryptoHelperRetainFragment() { private RetainFragment<MessageCryptoHelper> getMessageCryptoHelperRetainFragment(boolean createIfNotExists) { if (createIfNotExists) { return RetainFragment.findOrCreate(fragmentManager, "crypto_helper_" + messageReference.hashCode()); return RetainFragment.findOrCreate(fragmentManager, "crypto_helper_" + messageReference.hashCode()); } else { return RetainFragment.findOrNull(fragmentManager, "crypto_helper_" + messageReference.hashCode()); } } } private MessageCryptoCallback messageCryptoCallback = new MessageCryptoCallback() { private MessageCryptoCallback messageCryptoCallback = new MessageCryptoCallback() { Loading k9mail/src/main/java/com/fsck/k9/helper/RetainFragment.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,11 @@ public class RetainFragment<T> extends Fragment { this.data = data; this.data = data; } } public static <T> RetainFragment<T> findOrNull(FragmentManager fm, String tag) { // noinspection unchecked, we know this is the the right type return (RetainFragment<T>) fm.findFragmentByTag(tag); } public static <T> RetainFragment<T> findOrCreate(FragmentManager fm, String tag) { public static <T> RetainFragment<T> findOrCreate(FragmentManager fm, String tag) { // noinspection unchecked, we know this is the the right type // noinspection unchecked, we know this is the the right type RetainFragment<T> retainFragment = (RetainFragment<T>) fm.findFragmentByTag(tag); RetainFragment<T> retainFragment = (RetainFragment<T>) fm.findFragmentByTag(tag); Loading Loading
k9mail/src/main/java/com/fsck/k9/activity/MessageLoaderHelper.java +8 −4 Original line number Original line Diff line number Diff line Loading @@ -258,7 +258,7 @@ public class MessageLoaderHelper { // process with crypto helper // process with crypto helper private void startOrResumeCryptoOperation() { private void startOrResumeCryptoOperation() { RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(); RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(true); if (retainCryptoHelperFragment.hasData()) { if (retainCryptoHelperFragment.hasData()) { messageCryptoHelper = retainCryptoHelperFragment.getData(); messageCryptoHelper = retainCryptoHelperFragment.getData(); } else { } else { Loading @@ -270,7 +270,7 @@ public class MessageLoaderHelper { } } private void cancelAndClearCryptoOperation() { private void cancelAndClearCryptoOperation() { RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(); RetainFragment<MessageCryptoHelper> retainCryptoHelperFragment = getMessageCryptoHelperRetainFragment(false); if (retainCryptoHelperFragment != null) { if (retainCryptoHelperFragment != null) { if (retainCryptoHelperFragment.hasData()) { if (retainCryptoHelperFragment.hasData()) { messageCryptoHelper = retainCryptoHelperFragment.getData(); messageCryptoHelper = retainCryptoHelperFragment.getData(); Loading @@ -281,8 +281,12 @@ public class MessageLoaderHelper { } } } } private RetainFragment<MessageCryptoHelper> getMessageCryptoHelperRetainFragment() { private RetainFragment<MessageCryptoHelper> getMessageCryptoHelperRetainFragment(boolean createIfNotExists) { if (createIfNotExists) { return RetainFragment.findOrCreate(fragmentManager, "crypto_helper_" + messageReference.hashCode()); return RetainFragment.findOrCreate(fragmentManager, "crypto_helper_" + messageReference.hashCode()); } else { return RetainFragment.findOrNull(fragmentManager, "crypto_helper_" + messageReference.hashCode()); } } } private MessageCryptoCallback messageCryptoCallback = new MessageCryptoCallback() { private MessageCryptoCallback messageCryptoCallback = new MessageCryptoCallback() { Loading
k9mail/src/main/java/com/fsck/k9/helper/RetainFragment.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,11 @@ public class RetainFragment<T> extends Fragment { this.data = data; this.data = data; } } public static <T> RetainFragment<T> findOrNull(FragmentManager fm, String tag) { // noinspection unchecked, we know this is the the right type return (RetainFragment<T>) fm.findFragmentByTag(tag); } public static <T> RetainFragment<T> findOrCreate(FragmentManager fm, String tag) { public static <T> RetainFragment<T> findOrCreate(FragmentManager fm, String tag) { // noinspection unchecked, we know this is the the right type // noinspection unchecked, we know this is the the right type RetainFragment<T> retainFragment = (RetainFragment<T>) fm.findFragmentByTag(tag); RetainFragment<T> retainFragment = (RetainFragment<T>) fm.findFragmentByTag(tag); Loading