diff --git a/briar-android/res/layout/activity_password.xml b/briar-android/res/layout/activity_password.xml
index fc633e841..dff9612aa 100644
--- a/briar-android/res/layout/activity_password.xml
+++ b/briar-android/res/layout/activity_password.xml
@@ -27,7 +27,6 @@
android:hint="@string/password_hint"
android:imeOptions="actionDone"
android:inputType="textPassword"
- android:lines="1"
android:maxLines="1" />
+ android:textSize="@dimen/text_size_medium"/>
+ android:textSize="@dimen/text_size_medium"/>
+ android:textSize="@dimen/text_size_medium"/>
@@ -88,7 +89,7 @@
diff --git a/briar-android/src/org/briarproject/android/PasswordActivity.java b/briar-android/src/org/briarproject/android/PasswordActivity.java
index f0c1a5fe3..fed1a6201 100644
--- a/briar-android/src/org/briarproject/android/PasswordActivity.java
+++ b/briar-android/src/org/briarproject/android/PasswordActivity.java
@@ -29,7 +29,6 @@ import static android.content.Intent.ACTION_MAIN;
import static android.content.Intent.CATEGORY_HOME;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
-import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE;
public class PasswordActivity extends BaseActivity {
@@ -63,11 +62,11 @@ public class PasswordActivity extends BaseActivity {
password = (EditText) findViewById(R.id.edit_password);
password.setOnEditorActionListener(new OnEditorActionListener() {
@Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- if (actionId == IME_ACTION_DONE) {
- validatePassword(encrypted, password.getText());
- }
- return false;
+ public boolean onEditorAction(TextView v, int actionId,
+ KeyEvent event) {
+ hideSoftKeyboard();
+ validatePassword(encrypted, password.getText());
+ return true;
}
});
}
diff --git a/briar-android/src/org/briarproject/android/SetupActivity.java b/briar-android/src/org/briarproject/android/SetupActivity.java
index e7940b0ff..2713b9984 100644
--- a/briar-android/src/org/briarproject/android/SetupActivity.java
+++ b/briar-android/src/org/briarproject/android/SetupActivity.java
@@ -10,7 +10,6 @@ import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
-import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
@@ -43,14 +42,13 @@ import static android.view.View.GONE;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
-import static android.view.inputmethod.InputMethodManager.HIDE_IMPLICIT_ONLY;
import static java.util.logging.Level.INFO;
import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS;
import static org.briarproject.api.crypto.PasswordStrengthEstimator.WEAK;
import static org.briarproject.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
public class SetupActivity extends BaseActivity implements OnClickListener,
-OnEditorActionListener {
+ OnEditorActionListener {
private static final Logger LOG =
Logger.getLogger(SetupActivity.class.getName());
@@ -82,11 +80,13 @@ OnEditorActionListener {
TextWatcher tw = new TextWatcher() {
@Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ public void beforeTextChanged(CharSequence s, int start, int count,
+ int after) {
}
@Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
+ public void onTextChanged(CharSequence s, int start, int before,
+ int count) {
enableOrDisableContinueButton();
}
@@ -104,7 +104,7 @@ OnEditorActionListener {
private void enableOrDisableContinueButton() {
if (progress == null) return; // Not created yet
- if (passwordEntry.getText().length() > 0)
+ if (passwordEntry.getText().length() > 0 && passwordEntry.hasFocus())
strengthMeter.setVisibility(VISIBLE);
else strengthMeter.setVisibility(INVISIBLE);
String nickname = nicknameEntry.getText().toString();
@@ -114,11 +114,14 @@ OnEditorActionListener {
boolean passwordsMatch = firstPassword.equals(secondPassword);
float strength = strengthEstimator.estimateStrength(firstPassword);
strengthMeter.setStrength(strength);
- AndroidUtils.setError(nicknameEntryWrapper, getString(R.string.name_too_long),
+ AndroidUtils.setError(nicknameEntryWrapper,
+ getString(R.string.name_too_long),
nicknameLength > MAX_AUTHOR_NAME_LENGTH);
- AndroidUtils.setError(passwordEntryWrapper, getString(R.string.password_too_weak),
+ AndroidUtils.setError(passwordEntryWrapper,
+ getString(R.string.password_too_weak),
firstPassword.length() > 0 && strength < WEAK);
- AndroidUtils.setError(passwordConfirmationWrapper, getString(R.string.passwords_do_not_match),
+ AndroidUtils.setError(passwordConfirmationWrapper,
+ getString(R.string.passwords_do_not_match),
secondPassword.length() > 0 && !passwordsMatch);
createAccountButton.setEnabled(nicknameLength > 0
&& nicknameLength <= MAX_AUTHOR_NAME_LENGTH
@@ -126,9 +129,7 @@ OnEditorActionListener {
}
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- // Hide the soft keyboard
- Object o = getSystemService(INPUT_METHOD_SERVICE);
- ((InputMethodManager) o).toggleSoftInput(HIDE_IMPLICIT_ONLY, 0);
+ hideSoftKeyboard();
return true;
}