From 1cdd5ea8aa24367a14044a9a87cbda1f79ca337c Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 31 Jul 2021 14:31:54 +0200 Subject: [PATCH] Password helper text --- .../eu/faircode/email/FragmentAccount.java | 9 +++----- .../eu/faircode/email/FragmentIdentity.java | 22 ++++++++----------- .../java/eu/faircode/email/FragmentPop.java | 19 +++++++--------- app/src/main/res/layout/fragment_account.xml | 12 +--------- app/src/main/res/layout/fragment_identity.xml | 12 +--------- app/src/main/res/layout/fragment_pop.xml | 12 +--------- 6 files changed, 23 insertions(+), 63 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index b174d4cf7d..1e757e875f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -94,7 +94,6 @@ public class FragmentAccount extends FragmentBase { private EditText etPort; private EditText etUser; private TextInputLayout tilPassword; - private TextView tvCharacters; private TextView tvPasswordStorage; private Button btnCertificate; private TextView tvCertificate; @@ -200,7 +199,6 @@ public class FragmentAccount extends FragmentBase { tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark); etUser = view.findViewById(R.id.etUser); tilPassword = view.findViewById(R.id.tilPassword); - tvCharacters = view.findViewById(R.id.tvCharacters); tvPasswordStorage = view.findViewById(R.id.tvPasswordStorage); btnCertificate = view.findViewById(R.id.btnCertificate); tvCertificate = view.findViewById(R.id.tvCertificate); @@ -346,9 +344,9 @@ public class FragmentAccount extends FragmentBase { String password = s.toString(); boolean warning = (Helper.containsWhiteSpace(password) || Helper.containsControlChars(password)); - tvCharacters.setVisibility(warning && - tilPassword.getVisibility() == View.VISIBLE - ? View.VISIBLE : View.GONE); + tilPassword.setHelperText( + warning ? getString(R.string.title_setup_password_chars) : null); + tilPassword.setHelperTextEnabled(warning); } }); @@ -539,7 +537,6 @@ public class FragmentAccount extends FragmentBase { rgEncryption.setVisibility(View.GONE); cbInsecure.setVisibility(View.GONE); tilPassword.setEndIconMode(id < 0 || Helper.isSecure(getContext()) ? END_ICON_PASSWORD_TOGGLE : END_ICON_NONE); - tvCharacters.setVisibility(View.GONE); btnAdvanced.setVisibility(View.GONE); diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java index 7b87e55388..16eb540bc9 100644 --- a/app/src/main/java/eu/faircode/email/FragmentIdentity.java +++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java @@ -19,6 +19,12 @@ package eu.faircode.email; Copyright 2018-2021 by Marcel Bokhorst (M66B) */ +import static android.app.Activity.RESULT_OK; +import static com.google.android.material.textfield.TextInputLayout.END_ICON_NONE; +import static com.google.android.material.textfield.TextInputLayout.END_ICON_PASSWORD_TOGGLE; +import static eu.faircode.email.ServiceAuthenticator.AUTH_TYPE_OAUTH; +import static eu.faircode.email.ServiceAuthenticator.AUTH_TYPE_PASSWORD; + import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -66,12 +72,6 @@ import java.util.Objects; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; -import static android.app.Activity.RESULT_OK; -import static com.google.android.material.textfield.TextInputLayout.END_ICON_NONE; -import static com.google.android.material.textfield.TextInputLayout.END_ICON_PASSWORD_TOGGLE; -import static eu.faircode.email.ServiceAuthenticator.AUTH_TYPE_OAUTH; -import static eu.faircode.email.ServiceAuthenticator.AUTH_TYPE_PASSWORD; - public class FragmentIdentity extends FragmentBase { private ViewGroup view; private ScrollView scroll; @@ -98,7 +98,6 @@ public class FragmentIdentity extends FragmentBase { private EditText etPort; private EditText etUser; private TextInputLayout tilPassword; - private TextView tvCharacters; private TextView tvPasswordStorage; private Button btnCertificate; private TextView tvCertificate; @@ -197,7 +196,6 @@ public class FragmentIdentity extends FragmentBase { etPort = view.findViewById(R.id.etPort); etUser = view.findViewById(R.id.etUser); tilPassword = view.findViewById(R.id.tilPassword); - tvCharacters = view.findViewById(R.id.tvCharacters); tvPasswordStorage = view.findViewById(R.id.tvPasswordStorage); btnCertificate = view.findViewById(R.id.btnCertificate); tvCertificate = view.findViewById(R.id.tvCertificate); @@ -512,7 +510,6 @@ public class FragmentIdentity extends FragmentBase { pbAutoConfig.setVisibility(View.GONE); cbInsecure.setVisibility(View.GONE); tilPassword.setEndIconMode(Helper.isSecure(getContext()) ? END_ICON_PASSWORD_TOGGLE : END_ICON_NONE); - tvCharacters.setVisibility(View.GONE); btnAdvanced.setVisibility(View.GONE); @@ -610,10 +607,9 @@ public class FragmentIdentity extends FragmentBase { private void checkPassword(String password) { boolean warning = (Helper.containsWhiteSpace(password) || Helper.containsControlChars(password)); - tvCharacters.setVisibility(warning && - grpAdvanced.getVisibility() == View.VISIBLE - ? View.VISIBLE : View.GONE); - + tilPassword.setHelperText( + warning ? getString(R.string.title_setup_password_chars) : null); + tilPassword.setHelperTextEnabled(warning); } private void onSave(boolean should) { diff --git a/app/src/main/java/eu/faircode/email/FragmentPop.java b/app/src/main/java/eu/faircode/email/FragmentPop.java index 21949fc316..1b4eddb690 100644 --- a/app/src/main/java/eu/faircode/email/FragmentPop.java +++ b/app/src/main/java/eu/faircode/email/FragmentPop.java @@ -19,6 +19,11 @@ package eu.faircode.email; Copyright 2018-2021 by Marcel Bokhorst (M66B) */ +import static android.app.Activity.RESULT_OK; +import static com.google.android.material.textfield.TextInputLayout.END_ICON_NONE; +import static com.google.android.material.textfield.TextInputLayout.END_ICON_PASSWORD_TOGGLE; +import static eu.faircode.email.ServiceAuthenticator.AUTH_TYPE_PASSWORD; + import android.app.NotificationManager; import android.content.Context; import android.content.Intent; @@ -61,11 +66,6 @@ import java.util.Date; import java.util.List; import java.util.Objects; -import static android.app.Activity.RESULT_OK; -import static com.google.android.material.textfield.TextInputLayout.END_ICON_NONE; -import static com.google.android.material.textfield.TextInputLayout.END_ICON_PASSWORD_TOGGLE; -import static eu.faircode.email.ServiceAuthenticator.AUTH_TYPE_PASSWORD; - public class FragmentPop extends FragmentBase { private ViewGroup view; private ScrollView scroll; @@ -77,7 +77,6 @@ public class FragmentPop extends FragmentBase { private EditText etPort; private EditText etUser; private TextInputLayout tilPassword; - private TextView tvCharacters; private TextView tvPasswordStorage; private EditText etName; @@ -141,7 +140,6 @@ public class FragmentPop extends FragmentBase { tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark); etUser = view.findViewById(R.id.etUser); tilPassword = view.findViewById(R.id.tilPassword); - tvCharacters = view.findViewById(R.id.tvCharacters); tvPasswordStorage = view.findViewById(R.id.tvPasswordStorage); etName = view.findViewById(R.id.etName); @@ -203,9 +201,9 @@ public class FragmentPop extends FragmentBase { String password = s.toString(); boolean warning = (Helper.containsWhiteSpace(password) || Helper.containsControlChars(password)); - tvCharacters.setVisibility(warning && - tilPassword.getVisibility() == View.VISIBLE - ? View.VISIBLE : View.GONE); + tilPassword.setHelperText( + warning ? getString(R.string.title_setup_password_chars) : null); + tilPassword.setHelperTextEnabled(warning); } }); @@ -281,7 +279,6 @@ public class FragmentPop extends FragmentBase { Helper.setViewsEnabled(view, false); tilPassword.setEndIconMode(id < 0 || Helper.isSecure(getContext()) ? END_ICON_PASSWORD_TOGGLE : END_ICON_NONE); - tvCharacters.setVisibility(View.GONE); pbSave.setVisibility(View.GONE); grpError.setVisibility(View.GONE); diff --git a/app/src/main/res/layout/fragment_account.xml b/app/src/main/res/layout/fragment_account.xml index 3cb6a10694..3ab255ed80 100644 --- a/app/src/main/res/layout/fragment_account.xml +++ b/app/src/main/res/layout/fragment_account.xml @@ -277,16 +277,6 @@ android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> - - + app:layout_constraintTop_toBottomOf="@id/tilPassword" /> - - + app:layout_constraintTop_toBottomOf="@id/tilPassword" /> - - + app:layout_constraintTop_toBottomOf="@id/tilPassword" />