diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java
index c3feda3d31..219c7fd18c 100644
--- a/app/src/main/java/eu/faircode/email/FragmentAccount.java
+++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java
@@ -1138,6 +1138,7 @@ public class FragmentAccount extends FragmentEx {
Log.i("Accounts=" + accounts.length);
for (final Account account : accounts)
if (name.equals(account.name)) {
+ btnAuthorize.setEnabled(false);
final Snackbar snackbar = Snackbar.make(view, R.string.title_authorizing, Snackbar.LENGTH_SHORT);
snackbar.show();
@@ -1157,15 +1158,17 @@ public class FragmentAccount extends FragmentEx {
authorized = token;
etUser.setText(account.name);
tilPassword.getEditText().setText(token);
+ } catch (Throwable ex) {
+ Log.e(ex);
+ Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex);
+ } finally {
+ btnAuthorize.setEnabled(true);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
snackbar.dismiss();
}
}, 1000);
- } catch (Throwable ex) {
- Log.e(ex);
- snackbar.setText(Helper.formatThrowable(ex));
}
}
},
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index 6d9e48c08b..584dc97bff 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -38,11 +38,14 @@ import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
+import android.os.Handler;
import android.os.PowerManager;
import android.preference.PreferenceManager;
import android.provider.Settings;
+import android.text.Editable;
import android.text.Html;
import android.text.TextUtils;
+import android.text.TextWatcher;
import android.text.method.LinkMovementMethod;
import android.util.Patterns;
import android.view.LayoutInflater;
@@ -215,6 +218,24 @@ public class FragmentSetup extends FragmentEx {
}
});
+ TextWatcher credentialsWatcher = new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ auth_type = Helper.AUTH_TYPE_PASSWORD;
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ }
+ };
+
+ etEmail.addTextChangedListener(credentialsWatcher);
+ tilPassword.getEditText().addTextChangedListener(credentialsWatcher);
+
tilPassword.setHintEnabled(false);
btnQuick.setOnClickListener(new View.OnClickListener() {
@@ -833,6 +854,10 @@ public class FragmentSetup extends FragmentEx {
Log.i("Accounts=" + accounts.length);
for (final Account account : accounts)
if (name.equals(account.name)) {
+ btnAuthorize.setEnabled(false);
+ final Snackbar snackbar = Snackbar.make(view, R.string.title_authorizing, Snackbar.LENGTH_SHORT);
+ snackbar.show();
+
am.getAuthToken(
account,
Helper.getAuthTokenType(type),
@@ -852,6 +877,14 @@ public class FragmentSetup extends FragmentEx {
} catch (Throwable ex) {
Log.e(ex);
Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex);
+ } finally {
+ btnAuthorize.setEnabled(true);
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ snackbar.dismiss();
+ }
+ }, 1000);
}
}
},
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index d819ab8ad4..e954d27cc6 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -45,6 +45,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etName" />
+
+