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 {
|
class ManageSecurityTokenContract {
|
||||||
interface ManageSecurityTokenMvpPresenter {
|
interface ManageSecurityTokenMvpPresenter {
|
||||||
void setView(ManageSecurityTokenMvpView createSecurityTokenImportFragment);
|
void setView(ManageSecurityTokenMvpView createSecurityTokenImportFragment);
|
||||||
|
void detach();
|
||||||
void onActivityCreated();
|
void onActivityCreated();
|
||||||
|
|
||||||
void onClickRetry();
|
void onClickRetry();
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ public class ManageSecurityTokenFragment extends Fragment implements ManageSecur
|
|||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
|
|
||||||
presenter.setView(null);
|
presenter.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -81,6 +81,16 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter {
|
|||||||
this.view = view;
|
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
|
@Override
|
||||||
public void onActivityCreated() {
|
public void onActivityCreated() {
|
||||||
if (!checkedKeyStatus || !searchedLocally || !searchedAtUri || !searchedKeyservers) {
|
if (!checkedKeyStatus || !searchedLocally || !searchedAtUri || !searchedKeyservers) {
|
||||||
@@ -143,6 +153,10 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter {
|
|||||||
new Handler().postDelayed(new Runnable() {
|
new Handler().postDelayed(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
if (view == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
performKeyCheck();
|
performKeyCheck();
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
@@ -220,10 +234,6 @@ class ManageSecurityTokenPresenter implements ManageSecurityTokenMvpPresenter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadFinished(Loader<KeyRetrievalResult> loader, KeyRetrievalResult data) {
|
public void onLoadFinished(Loader<KeyRetrievalResult> loader, KeyRetrievalResult data) {
|
||||||
if (view == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
case LOADER_LOCAL: {
|
case LOADER_LOCAL: {
|
||||||
searchedLocally = true;
|
searchedLocally = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user