aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-09-22 00:10:55 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-09-22 00:10:55 +0200
commitd63fabace7f535ea9bcd9b5afd3150666910905e (patch)
treed5c4355e091b97e2526beb33d5d90e4649247ae9 /OpenKeychain
parentfc4cdaa24b5df376e918de2583cb95dbb6baa3b0 (diff)
downloadopen-keychain-d63fabace7f535ea9bcd9b5afd3150666910905e.tar.gz
open-keychain-d63fabace7f535ea9bcd9b5afd3150666910905e.tar.bz2
open-keychain-d63fabace7f535ea9bcd9b5afd3150666910905e.zip
Hack to fix #805
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java10
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AutoCorrectAutoCompleteTextView.java51
-rw-r--r--OpenKeychain/src/main/res/layout/add_user_id_dialog.xml8
-rw-r--r--OpenKeychain/src/main/res/layout/create_key_input_fragment.xml20
4 files changed, 71 insertions, 18 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java
index cd754694b..32adba4e2 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java
@@ -22,10 +22,12 @@ import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.Editable;
import android.text.TextWatcher;
+import android.text.method.TextKeyListener;
import android.util.Patterns;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
@@ -68,10 +70,10 @@ public class CreateKeyInputFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.create_key_input_fragment, container, false);
- mNameEdit = (AutoCompleteTextView) view.findViewById(R.id.name);
- mEmailEdit = (AutoCompleteTextView) view.findViewById(R.id.email);
- mPassphraseEdit = (EditText) view.findViewById(R.id.passphrase);
- mPassphraseEditAgain = (EditText) view.findViewById(R.id.passphrase_again);
+ mNameEdit = (AutoCompleteTextView) view.findViewById(R.id.create_key_name);
+ mEmailEdit = (AutoCompleteTextView) view.findViewById(R.id.create_key_email);
+ mPassphraseEdit = (EditText) view.findViewById(R.id.create_key_passphrase);
+ mPassphraseEditAgain = (EditText) view.findViewById(R.id.create_key_passphrase_again);
mCreateButton = view.findViewById(R.id.create_key_button);
// initial values
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AutoCorrectAutoCompleteTextView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AutoCorrectAutoCompleteTextView.java
new file mode 100644
index 000000000..ed373a938
--- /dev/null
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AutoCorrectAutoCompleteTextView.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2014 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package org.sufficientlysecure.keychain.ui.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.inputmethod.EditorInfo;
+import android.widget.AutoCompleteTextView;
+
+/**
+ * Hack to re-enable keyboard auto correction in AutoCompleteTextView.
+ * From http://stackoverflow.com/a/22512858
+ */
+public class AutoCorrectAutoCompleteTextView extends AutoCompleteTextView {
+
+ public AutoCorrectAutoCompleteTextView(Context context) {
+ super(context);
+ removeFlag();
+ }
+
+ public AutoCorrectAutoCompleteTextView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ removeFlag();
+ }
+
+ public AutoCorrectAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ removeFlag();
+ }
+
+ private void removeFlag() {
+ int inputType = getInputType();
+ inputType &= ~EditorInfo.TYPE_TEXT_FLAG_AUTO_COMPLETE;
+ setRawInputType(inputType);
+ }
+}
diff --git a/OpenKeychain/src/main/res/layout/add_user_id_dialog.xml b/OpenKeychain/src/main/res/layout/add_user_id_dialog.xml
index 2575db4ba..4560e0b9e 100644
--- a/OpenKeychain/src/main/res/layout/add_user_id_dialog.xml
+++ b/OpenKeychain/src/main/res/layout/add_user_id_dialog.xml
@@ -8,21 +8,21 @@
android:paddingTop="8dp"
android:paddingBottom="8dp">
- <AutoCompleteTextView
+ <org.sufficientlysecure.keychain.ui.widget.AutoCorrectAutoCompleteTextView
android:id="@+id/add_user_id_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/label_email"
android:imeOptions="actionNext"
- android:inputType="textEmailAddress"
+ android:inputType="textAutoCorrect|textEmailAddress"
android:textAppearance="?android:attr/textAppearanceMedium" />
- <AutoCompleteTextView
+ <org.sufficientlysecure.keychain.ui.widget.AutoCorrectAutoCompleteTextView
android:id="@+id/add_user_id_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionNext"
- android:inputType="textPersonName"
+ android:inputType="textAutoCorrect|textPersonName|textCapWords"
android:hint="@string/create_key_hint_full_name"
android:textAppearance="?android:attr/textAppearanceSmall" />
diff --git a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
index 6e629573a..449c9fdf0 100644
--- a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
@@ -31,26 +31,26 @@
android:layout_marginTop="8dp"
android:text="@string/label_user_id" />
- <AutoCompleteTextView
+ <org.sufficientlysecure.keychain.ui.widget.AutoCorrectAutoCompleteTextView
+ android:id="@+id/create_key_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:imeOptions="actionNext"
- android:inputType="textPersonName"
+ android:inputType="textAutoCorrect|textPersonName|textCapWords"
android:hint="@string/create_key_hint_full_name"
- android:ems="10"
- android:id="@+id/name" />
+ android:ems="10" />
- <AutoCompleteTextView
- android:id="@+id/email"
+ <org.sufficientlysecure.keychain.ui.widget.AutoCorrectAutoCompleteTextView
+ android:id="@+id/create_key_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:imeOptions="actionNext"
+ android:inputType="textAutoCorrect|textEmailAddress"
android:hint="@string/label_email"
- android:ems="10"
- android:inputType="textEmailAddress" />
+ android:ems="10" />
<TextView
style="@style/SectionHeader"
@@ -59,7 +59,7 @@
android:text="@string/label_passphrase" />
<EditText
- android:id="@+id/passphrase"
+ android:id="@+id/create_key_passphrase"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
@@ -71,7 +71,7 @@
android:layout_gravity="center_horizontal" />
<EditText
- android:id="@+id/passphrase_again"
+ android:id="@+id/create_key_passphrase_again"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"