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" />