From 0a11c0632f1e7d685affb33435283c8e2e119c39 Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Thu, 7 Jan 2016 19:31:06 -0200
Subject: [PATCH] introduce a hideSoftKeyboard() method and use it

---
 .../src/org/briarproject/android/BaseActivity.java          | 6 ++++++
 .../src/org/briarproject/android/PasswordActivity.java      | 4 ++--
 .../src/org/briarproject/android/SetupActivity.java         | 2 +-
 .../briarproject/android/contact/ConversationActivity.java  | 2 +-
 .../org/briarproject/android/forum/CreateForumActivity.java | 4 ++--
 .../android/identity/CreateIdentityActivity.java            | 4 ++--
 6 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/briar-android/src/org/briarproject/android/BaseActivity.java b/briar-android/src/org/briarproject/android/BaseActivity.java
index 6eabbc7df8..a362527471 100644
--- a/briar-android/src/org/briarproject/android/BaseActivity.java
+++ b/briar-android/src/org/briarproject/android/BaseActivity.java
@@ -166,4 +166,10 @@ public abstract class BaseActivity extends AppCompatActivity
 		Object o = getSystemService(INPUT_METHOD_SERVICE);
 		((InputMethodManager) o).showSoftInput(view, SHOW_IMPLICIT);
 	}
+
+	protected void hideSoftKeyboard(View view) {
+		Object o = getSystemService(INPUT_METHOD_SERVICE);
+		((InputMethodManager) o).hideSoftInputFromWindow(view.getWindowToken(),
+				0);
+	}
 }
diff --git a/briar-android/src/org/briarproject/android/PasswordActivity.java b/briar-android/src/org/briarproject/android/PasswordActivity.java
index 60b7cd118b..353cb09536 100644
--- a/briar-android/src/org/briarproject/android/PasswordActivity.java
+++ b/briar-android/src/org/briarproject/android/PasswordActivity.java
@@ -69,7 +69,7 @@ public class PasswordActivity extends BaseActivity {
 			@Override
 			public boolean onEditorAction(TextView v, int actionId,
 					KeyEvent event) {
-				toggleSoftKeyboard();
+				hideSoftKeyboard(password);
 				validatePassword(encrypted, password.getText());
 				return true;
 			}
@@ -126,7 +126,7 @@ public class PasswordActivity extends BaseActivity {
 	}
 
 	private void validatePassword(final byte[] encrypted, Editable e) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(password);
 		// Replace the button with a progress bar
 		signInButton.setVisibility(INVISIBLE);
 		progress.setVisibility(VISIBLE);
diff --git a/briar-android/src/org/briarproject/android/SetupActivity.java b/briar-android/src/org/briarproject/android/SetupActivity.java
index f80b3d3136..380792bf18 100644
--- a/briar-android/src/org/briarproject/android/SetupActivity.java
+++ b/briar-android/src/org/briarproject/android/SetupActivity.java
@@ -129,7 +129,7 @@ public class SetupActivity extends BaseActivity implements OnClickListener,
 	}
 
 	public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(v);
 		return true;
 	}
 
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
index a0d5537115..e50540bc29 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
@@ -411,7 +411,7 @@ public class ConversationActivity extends BriarActivity
 		timestamp = Math.max(timestamp, getMinTimestampForNewMessage());
 		createMessage(StringUtils.toUtf8(message), timestamp);
 		content.setText("");
-		toggleSoftKeyboard();
+		hideSoftKeyboard(content);
 	}
 
 	private long getMinTimestampForNewMessage() {
diff --git a/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java b/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java
index 750a98483f..5fc968a961 100644
--- a/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java
@@ -110,7 +110,7 @@ implements OnEditorActionListener, OnClickListener {
 	}
 
 	public boolean onEditorAction(TextView textView, int actionId, KeyEvent e) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(textView);
 		return true;
 	}
 
@@ -126,7 +126,7 @@ implements OnEditorActionListener, OnClickListener {
 
 	public void onClick(View view) {
 		if (view == createForumButton) {
-			toggleSoftKeyboard();
+			hideSoftKeyboard(view);
 			if (!validateName()) return;
 			createForumButton.setVisibility(GONE);
 			progress.setVisibility(VISIBLE);
diff --git a/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java b/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java
index 660470e88b..2b293e4e05 100644
--- a/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java
+++ b/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java
@@ -118,7 +118,7 @@ implements OnEditorActionListener, OnClickListener {
 	}
 
 	public boolean onEditorAction(TextView textView, int actionId, KeyEvent e) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(textView);
 		return true;
 	}
 
@@ -134,7 +134,7 @@ implements OnEditorActionListener, OnClickListener {
 	}
 
 	public void onClick(View view) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(view);
 		if (!validateNickname()) return;
 		// Replace the button with a progress bar
 		createIdentityButton.setVisibility(GONE);
-- 
GitLab