From ce322bd3ca6902f3d9d2170e098f39290caf9735 Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Thu, 31 Jan 2019 20:57:54 +0100 Subject: [PATCH] Login Error Handeling --- .../fulogin/FUAuthenticatorActivity.java | 16 +++++++--------- .../services/fulogin/UserLoginTask.java | 10 +++++++--- .../res/layout/activity_fu_authenticator.xml | 14 +++++++++++--- app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 29 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticatorActivity.java b/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticatorActivity.java index f51480a..94af73e 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticatorActivity.java +++ b/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticatorActivity.java @@ -15,7 +15,9 @@ import android.view.View; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.Button; -import android.widget.EditText; +import android.widget.TextView; + +import com.google.android.material.textfield.TextInputEditText; import de.sebse.fuplanner.R; @@ -25,20 +27,15 @@ import static de.sebse.fuplanner.services.fulogin.UserLoginTask.PARAM_USER_PASS; * A login screen that offers login via email/password. */ public class FUAuthenticatorActivity extends AccountAuthenticatorActivity { - - /** - * Id to identity READ_CONTACTS permission request. - */ - private static final int REQUEST_READ_CONTACTS = 0; - /** * Keep track of the login task to ensure we can cancel it if requested. */ UserLoginTask mAuthTask = null; // UI references. - private EditText mEmailView; - EditText mPasswordView; + private TextInputEditText mEmailView; + TextInputEditText mPasswordView; + TextView mErrorView; private View mProgressView; private View mLoginFormView; @@ -61,6 +58,7 @@ public class FUAuthenticatorActivity extends AccountAuthenticatorActivity { mIsAddingNewAccount = getIntent().getBooleanExtra(ARG_IS_ADDING_NEW_ACCOUNT, false); setContentView(R.layout.activity_fu_authenticator); + mErrorView = findViewById(R.id.error_textview); // Set up the login form. mEmailView = findViewById(R.id.input_username); diff --git a/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java b/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java index 834d5d1..01fcb0e 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java +++ b/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java @@ -62,8 +62,8 @@ public class UserLoginTask extends AsyncTask { CountDownLatch latch = new CountDownLatch(1); AtomicReference login = new AtomicReference<>(); NetworkErrorCallback errorFunc = error -> { - login.set("Error: "+String.valueOf(error.getCode())); log.e(error); + login.set("Error: "+String.valueOf(error.getCode())); latch.countDown(); }; switch (mTokenType) { @@ -113,16 +113,20 @@ public class UserLoginTask extends AsyncTask { mActivity.mAuthTask = null; mActivity.showProgress(false); - if (success != null) { + if (success != null && !success.startsWith("Error: ")) { final Intent res = new Intent(); res.putExtra(AccountManager.KEY_ACCOUNT_NAME, mUsername); res.putExtra(AccountManager.KEY_ACCOUNT_TYPE, AccountGeneral.ACCOUNT_TYPE); res.putExtra(AccountManager.KEY_AUTHTOKEN, success); res.putExtra(PARAM_USER_PASS, mPassword); mActivity.finishLogin(res); - } else { + } else if (success != null && (success.contains("100143") || success.contains("100243"))) { mActivity.mPasswordView.setError(mActivity.getString(R.string.error_incorrect_password)); mActivity.mPasswordView.requestFocus(); + } else if (success != null) { + mActivity.mErrorView.setText(mActivity.getString(R.string.network_error_parameter, success.substring(7))); + } else { + mActivity.mErrorView.setText(R.string.network_error); } } diff --git a/app/src/main/res/layout/activity_fu_authenticator.xml b/app/src/main/res/layout/activity_fu_authenticator.xml index 9c170d4..ba74d0d 100644 --- a/app/src/main/res/layout/activity_fu_authenticator.xml +++ b/app/src/main/res/layout/activity_fu_authenticator.xml @@ -41,16 +41,24 @@ android:layout_gravity="center_horizontal" android:contentDescription="@string/cd_ic_launcher"/> + + - @@ -62,7 +70,7 @@ android:layout_height="wrap_content" android:layout_marginTop="8dp" android:layout_marginBottom="8dp"> - Event entfernt: %1$s Noteneintrag entfernt: %1$s Ressource entfernt: %1$s + Ein Netzwerkfehler ist aufgetreten! + Ein Netzwerkfehler ist aufgetreten: %s! \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 247a2ca..332519a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -120,4 +120,6 @@ Resource updated: %1$s New resource: %1$s Resource removed: %1$s + A network error occured! + A network error occured: %s!