From 292b35c26d5caf62b28d467fef08271c57211c30 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Tue, 5 Sep 2017 21:05:23 +0200 Subject: [PATCH] token-import: allow detaching of presenter --- .../keychain/ui/token/ManageSecurityTokenFragment.java | 7 +++++++ .../keychain/ui/token/ManageSecurityTokenPresenter.java | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java index 55186001b..519cc59ac 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java @@ -159,6 +159,13 @@ public class ManageSecurityTokenFragment extends Fragment implements ManageSecur return view; } + @Override + public void onDestroyView() { + super.onDestroyView(); + + presenter.setView(null); + } + @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.token_setup, menu); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java index 3eb6cb526..f293fb89f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java @@ -96,7 +96,9 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter { @Override public void onActivityCreated() { - continueSearch(); + if (!searchedLocally || !searchedAtUri || !searchedKeyservers) { + continueSearch(); + } } private void continueSearchAfterError() { @@ -145,6 +147,10 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter { @Override public void onLoadFinished(Loader loader, KeyRetrievalResult data) { + if (view == null) { + return; + } + switch (loader.getId()) { case LOADER_LOCAL: { searchedLocally = true;