From 0223c5ab767d5d62953f82c71c4c6449bdd90d4e Mon Sep 17 00:00:00 2001 From: Abhishek Poonia Date: Mon, 30 Apr 2018 16:57:35 +0530 Subject: [PATCH] Error messages in LoginActivity persist after orientation change. (#1407) --- .../fr/free/nrw/commons/auth/LoginActivity.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java index dfdc6d7e41..75be2addec 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java @@ -84,6 +84,10 @@ public class LoginActivity extends AccountAuthenticatorActivity { private LoginTextWatcher textWatcher = new LoginTextWatcher(); private Boolean loginCurrentlyInProgress = false; + private Boolean errorMessageShown = false; + private String resultantError; + private static final String RESULTANT_ERROR = "resultantError"; + private static final String ERROR_MESSAGE_SHOWN = "errorMessageShown"; private static final String LOGING_IN = "logingIn"; @Override @@ -217,6 +221,8 @@ private void handleLogin(String username, String password, String result) { handlePassResult(username, password); } else { loginCurrentlyInProgress = false; + errorMessageShown = true; + resultantError = result; handleOtherResults(result); } } @@ -343,15 +349,22 @@ public MenuInflater getMenuInflater() { protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean(LOGING_IN, loginCurrentlyInProgress); + outState.putBoolean(ERROR_MESSAGE_SHOWN, errorMessageShown); + outState.putString(RESULTANT_ERROR, resultantError); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); loginCurrentlyInProgress = savedInstanceState.getBoolean(LOGING_IN, false); + errorMessageShown = savedInstanceState.getBoolean(ERROR_MESSAGE_SHOWN, false); if(loginCurrentlyInProgress){ performLogin(); } + if(errorMessageShown){ + resultantError = savedInstanceState.getString(RESULTANT_ERROR); + handleOtherResults(resultantError); + } } public void askUserForTwoFactorAuth() { @@ -363,7 +376,9 @@ public void askUserForTwoFactorAuth() { public void showMessageAndCancelDialog(@StringRes int resId) { showMessage(resId, R.color.secondaryDarkColor); - progressDialog.cancel(); + if(progressDialog != null){ + progressDialog.cancel(); + } } public void showSuccessAndDismissDialog() {