prevent crashes after detach in manage security token fragment
This commit is contained in:
@@ -30,6 +30,7 @@ import org.sufficientlysecure.keychain.ui.token.ManageSecurityTokenFragment.Stat
|
||||
class ManageSecurityTokenContract {
|
||||
interface ManageSecurityTokenMvpPresenter {
|
||||
void setView(ManageSecurityTokenMvpView createSecurityTokenImportFragment);
|
||||
void detach();
|
||||
void onActivityCreated();
|
||||
|
||||
void onClickRetry();
|
||||
|
||||
@@ -145,7 +145,7 @@ public class ManageSecurityTokenFragment extends Fragment implements ManageSecur
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
|
||||
presenter.setView(null);
|
||||
presenter.detach();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -81,6 +81,16 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detach() {
|
||||
this.view = null;
|
||||
|
||||
loaderManager.destroyLoader(LOADER_LOCAL);
|
||||
loaderManager.destroyLoader(LOADER_URI);
|
||||
loaderManager.destroyLoader(LOADER_KEYSERVER);
|
||||
loaderManager.destroyLoader(LOADER_CONTENT_URI);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated() {
|
||||
if (!checkedKeyStatus || !searchedLocally || !searchedAtUri || !searchedKeyservers) {
|
||||
@@ -143,6 +153,10 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
performKeyCheck();
|
||||
}
|
||||
}, 1000);
|
||||
@@ -220,10 +234,6 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter {
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(Loader<KeyRetrievalResult> loader, KeyRetrievalResult data) {
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (loader.getId()) {
|
||||
case LOADER_LOCAL: {
|
||||
searchedLocally = true;
|
||||
|
||||
Reference in New Issue
Block a user