diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java
index 64a2e47ee..e263394ac 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java
@@ -30,6 +30,7 @@ import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
import static androidx.core.content.ContextCompat.checkSelfPermission;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_WEAK;
+import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.STRONG;
import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
import static org.briarproject.briar.android.util.UiUtils.setError;
import static org.briarproject.briar.android.util.UiUtils.showOnboardingDialog;
@@ -117,17 +118,27 @@ public class SetPasswordFragment extends SetupFragment {
String password2 = passwordConfirmation.getText().toString();
boolean passwordsMatch = password1.equals(password2);
- strengthMeter
- .setVisibility(password1.length() > 0 ? VISIBLE : INVISIBLE);
+ strengthMeter.setVisibility(!password1.isEmpty() ? VISIBLE : INVISIBLE);
float strength = viewModel.estimatePasswordStrength(password1);
strengthMeter.setStrength(strength);
boolean strongEnough = strength >= QUITE_WEAK;
+ if (!password1.isEmpty()) {
+ if (strength >= STRONG) {
+ passwordEntryWrapper.setHelperText(
+ getString(R.string.password_strong));
+ } else if (strength >= QUITE_WEAK) {
+ passwordEntryWrapper.setHelperText(
+ getString(R.string.password_quite_strong));
+ } else {
+ passwordEntryWrapper.setHelperTextEnabled(false);
+ }
+ }
setError(passwordEntryWrapper, getString(R.string.password_too_weak),
- password1.length() > 0 && !strongEnough);
+ !password1.isEmpty() && !strongEnough);
setError(passwordConfirmationWrapper,
getString(R.string.passwords_do_not_match),
- password2.length() > 0 && !passwordsMatch);
+ !password2.isEmpty() && !passwordsMatch);
boolean enabled = passwordsMatch && strongEnough;
nextButton.setEnabled(enabled);
diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml
index dbbde0243..df98a19f9 100644
--- a/briar-android/src/main/res/values/strings.xml
+++ b/briar-android/src/main/res/values/strings.xml
@@ -17,6 +17,8 @@
Confirm your password
Name is too long
Password is too weak
+ Password is okay
+ Password is strong
Passwords do not match
Create Account
More Information