diff --git a/briar-android/build.gradle b/briar-android/build.gradle index 8e043ff7f..756b2da58 100644 --- a/briar-android/build.gradle +++ b/briar-android/build.gradle @@ -6,8 +6,9 @@ dependencies { compile fileTree(dir: '../briar-core/libs', include: '*.jar') compile project(':briar-core') compile fileTree(dir: 'libs', include: '*.jar') - compile 'com.android.support:design:23.1.1' - compile 'com.android.support:recyclerview-v7:23.1.1' + compile "com.android.support:support-v4:23.1.1" + compile "com.android.support:appcompat-v7:23.1.1" + compile "com.android.support:design:23.1.1" } android { diff --git a/briar-android/res/layout/activity_setup.xml b/briar-android/res/layout/activity_setup.xml index 028535611..f48494616 100644 --- a/briar-android/res/layout/activity_setup.xml +++ b/briar-android/res/layout/activity_setup.xml @@ -1,6 +1,7 @@ @@ -23,12 +24,19 @@ android:text="@string/choose_nickname" android:textSize="18sp"/> - + app:errorEnabled="true"> + + + - + app:errorEnabled="true"> + + + - + app:errorEnabled="true"> + + + 0 && passwordEntry.hasFocus()) + if (passwordEntry.getText().length() > 0) strengthMeter.setVisibility(VISIBLE); else strengthMeter.setVisibility(INVISIBLE); String nickname = nicknameEntry.getText().toString(); @@ -109,12 +114,12 @@ OnEditorActionListener { boolean passwordsMatch = firstPassword.equals(secondPassword); float strength = strengthEstimator.estimateStrength(firstPassword); strengthMeter.setStrength(strength); - if (nicknameLength > MAX_AUTHOR_NAME_LENGTH) - nicknameEntry.setError(getString(R.string.name_too_long)); - if (firstPassword.length() > 0 && strength < WEAK) - passwordEntry.setError(getString(R.string.password_too_weak)); - if (secondPassword.length() > 0 && !passwordsMatch) - passwordConfirmation.setError(getString(R.string.passwords_do_not_match)); + AndroidUtils.setError(nicknameEntryWrapper, getString(R.string.name_too_long), + nicknameLength > MAX_AUTHOR_NAME_LENGTH); + AndroidUtils.setError(passwordEntryWrapper, getString(R.string.password_too_weak), + firstPassword.length() > 0 && strength < WEAK); + AndroidUtils.setError(passwordConfirmationWrapper, getString(R.string.passwords_do_not_match), + secondPassword.length() > 0 && !passwordsMatch); createAccountButton.setEnabled(nicknameLength > 0 && nicknameLength <= MAX_AUTHOR_NAME_LENGTH && passwordsMatch && strength >= WEAK); diff --git a/briar-android/src/org/briarproject/android/util/AndroidUtils.java b/briar-android/src/org/briarproject/android/util/AndroidUtils.java index 5923ba7e4..abbafafd3 100644 --- a/briar-android/src/org/briarproject/android/util/AndroidUtils.java +++ b/briar-android/src/org/briarproject/android/util/AndroidUtils.java @@ -2,6 +2,7 @@ package org.briarproject.android.util; import android.annotation.SuppressLint; import android.os.Build; +import android.support.design.widget.TextInputLayout; import java.util.ArrayList; import java.util.Arrays; @@ -23,4 +24,12 @@ public class AndroidUtils { } return Collections.unmodifiableList(abis); } + + public static void setError(TextInputLayout til, String error, boolean condition) { + if (condition) { + if (til.getError() == null) + til.setError(error); + } else + til.setError(null); + } }