aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-08-14 16:12:42 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-08-14 16:12:42 +0200
commit9ad09a398251c8dab4d8ca19fbb9eac68ebcad3b (patch)
treea196b0fd6535693da8c0c0e270b4ff4cc7233578 /OpenKeychain
parent62f7bf62150b460ee2dfa14f2c45f6df40d55cc9 (diff)
downloadopen-keychain-9ad09a398251c8dab4d8ca19fbb9eac68ebcad3b.tar.gz
open-keychain-9ad09a398251c8dab4d8ca19fbb9eac68ebcad3b.tar.bz2
open-keychain-9ad09a398251c8dab4d8ca19fbb9eac68ebcad3b.zip
Automcomplete names and emails in keyserver tab
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java18
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java18
-rw-r--r--OpenKeychain/src/main/res/layout/import_keys_server_fragment.xml2
3 files changed, 35 insertions, 3 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java
index 8697e49f7..96e1b25af 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java
@@ -234,6 +234,24 @@ public class ContactHelper {
return new ArrayList<String>(mails);
}
+ public static List<String> getContactNames(Context context) {
+ ContentResolver resolver = context.getContentResolver();
+ Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI,
+ new String[]{ContactsContract.Contacts.DISPLAY_NAME},
+ null, null, null);
+ if (cursor == null) return null;
+
+ Set<String> names = new HashSet<String>();
+ while (cursor.moveToNext()) {
+ String name = cursor.getString(0);
+ if (name != null) {
+ names.add(name);
+ }
+ }
+ cursor.close();
+ return new ArrayList<String>(names);
+ }
+
public static Uri dataUriFromContactUri(Context context, Uri contactUri) {
Cursor contactMasterKey = context.getContentResolver().query(contactUri,
new String[]{ContactsContract.Data.DATA2}, null, null, null, null);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
index d339bc132..88caebc32 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
@@ -29,15 +29,19 @@ import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
+import org.sufficientlysecure.keychain.helper.ContactHelper;
import org.sufficientlysecure.keychain.helper.Preferences;
import org.sufficientlysecure.keychain.util.Log;
+import java.util.List;
+
public class ImportKeysServerFragment extends Fragment {
public static final String ARG_QUERY = "query";
public static final String ARG_KEYSERVER = "keyserver";
@@ -46,7 +50,7 @@ public class ImportKeysServerFragment extends Fragment {
private ImportKeysActivity mImportActivity;
private View mSearchButton;
- private EditText mQueryEditText;
+ private AutoCompleteTextView mQueryEditText;
private View mConfigButton;
private View mConfigLayout;
private Spinner mServerSpinner;
@@ -75,7 +79,7 @@ public class ImportKeysServerFragment extends Fragment {
View view = inflater.inflate(R.layout.import_keys_server_fragment, container, false);
mSearchButton = view.findViewById(R.id.import_server_search);
- mQueryEditText = (EditText) view.findViewById(R.id.import_server_query);
+ mQueryEditText = (AutoCompleteTextView) view.findViewById(R.id.import_server_query);
mConfigButton = view.findViewById(R.id.import_server_config_button);
mConfigLayout = view.findViewById(R.id.import_server_config);
mServerSpinner = (Spinner) view.findViewById(R.id.import_server_spinner);
@@ -93,6 +97,16 @@ public class ImportKeysServerFragment extends Fragment {
mSearchButton.setEnabled(false);
}
+ List<String> namesAndEmails = ContactHelper.getContactNames(getActivity());
+ namesAndEmails.addAll(ContactHelper.getContactMails(getActivity()));
+ mQueryEditText.setThreshold(3);
+ mQueryEditText.setAdapter(
+ new ArrayAdapter<String>
+ (getActivity(), android.R.layout.simple_spinner_dropdown_item,
+ namesAndEmails
+ )
+ );
+
mSearchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
diff --git a/OpenKeychain/src/main/res/layout/import_keys_server_fragment.xml b/OpenKeychain/src/main/res/layout/import_keys_server_fragment.xml
index 47c354c53..fde90b81f 100644
--- a/OpenKeychain/src/main/res/layout/import_keys_server_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/import_keys_server_fragment.xml
@@ -10,7 +10,7 @@
android:layout_height="?android:attr/listPreferredItemHeight"
android:orientation="horizontal">
- <EditText
+ <AutoCompleteTextView
android:id="@+id/import_server_query"
android:layout_width="0dip"
android:layout_height="wrap_content"