aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-02-01 19:49:44 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2014-02-01 19:49:44 +0100
commit0e53d901e6121eec420db5be16ea77e9869503fb (patch)
tree1090d6fac18e4c7c1d36b97a4c8b61be6cb271ec /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
parent7e634a9930a61bed0f41713ec876c6d31b6d2264 (diff)
downloadopen-keychain-0e53d901e6121eec420db5be16ea77e9869503fb.tar.gz
open-keychain-0e53d901e6121eec420db5be16ea77e9869503fb.tar.bz2
open-keychain-0e53d901e6121eec420db5be16ea77e9869503fb.zip
search works
Diffstat (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java74
1 files changed, 41 insertions, 33 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
index c8f4868a2..da0033083 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
@@ -17,11 +17,10 @@
package org.sufficientlysecure.keychain.ui;
-import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.helper.Preferences;
-import android.content.Intent;
+import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.KeyEvent;
@@ -30,6 +29,7 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
@@ -39,23 +39,24 @@ import com.beardedhen.androidbootstrap.BootstrapButton;
public class ImportKeysServerFragment extends Fragment {
public static final String ARG_QUERY = "query";
+ public static final String ARG_KEY_SERVER = "key_server";
private ImportKeysActivity mImportActivity;
- private BootstrapButton mOldButton;
-
private BootstrapButton mSearchButton;
private EditText mQueryEditText;
private Spinner mServerSpinner;
+ private ArrayAdapter<String> mServerAdapter;
/**
* Creates new instance of this fragment
*/
- public static ImportKeysServerFragment newInstance(String query) {
+ public static ImportKeysServerFragment newInstance(String query, String keyServer) {
ImportKeysServerFragment frag = new ImportKeysServerFragment();
Bundle args = new Bundle();
args.putString(ARG_QUERY, query);
+ args.putString(ARG_KEY_SERVER, keyServer);
frag.setArguments(args);
@@ -69,17 +70,17 @@ public class ImportKeysServerFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.import_keys_server_fragment, container, false);
- mSearchButton = (BootstrapButton) view.findViewById(R.id.import_server_button);
+ mSearchButton = (BootstrapButton) view.findViewById(R.id.import_server_search);
mQueryEditText = (EditText) view.findViewById(R.id.import_server_query);
mServerSpinner = (Spinner) view.findViewById(R.id.import_server_spinner);
// add keyservers to spinner
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
+ mServerAdapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item, Preferences.getPreferences(getActivity())
.getKeyServers());
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mServerSpinner.setAdapter(adapter);
- if (adapter.getCount() > 0) {
+ mServerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ mServerSpinner.setAdapter(mServerAdapter);
+ if (mServerAdapter.getCount() > 0) {
mServerSpinner.setSelection(0);
} else {
mSearchButton.setEnabled(false);
@@ -89,31 +90,28 @@ public class ImportKeysServerFragment extends Fragment {
@Override
public void onClick(View v) {
String query = mQueryEditText.getText().toString();
+ String keyServer = (String) mServerSpinner.getSelectedItem();
+ search(query, keyServer);
+ // close keyboard after pressing search
+ InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(mQueryEditText.getWindowToken(), 0);
}
});
- // TODO: not supported by BootstrapButton
-// mSearchButton.setOnEditorActionListener(new TextView.OnEditorActionListener() {
-// @Override
-// public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-// if (actionId == EditorInfo.IME_ACTION_SEARCH) {
-// String query = mQueryEditText.getText().toString();
-// search(query);
-// // FIXME This is a hack to hide a keyboard after search
-// // http://tinyurl.com/pwdc3q9
-// return false;
-// }
-// return false;
-// }
-// });
-
- // TODO: remove:
- mOldButton = (BootstrapButton) view.findViewById(R.id.import_server_button);
- mOldButton.setOnClickListener(new OnClickListener() {
+ mQueryEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
- public void onClick(View v) {
- startActivityForResult(new Intent(getActivity(), KeyServerQueryActivity.class), 0);
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if (actionId == EditorInfo.IME_ACTION_SEARCH) {
+ String query = mQueryEditText.getText().toString();
+ String keyServer = (String) mServerSpinner.getSelectedItem();
+ search(query, keyServer);
+
+ // Don't return true to let the keyboard close itself after pressing search
+ // http://stackoverflow.com/questions/2342620/how-to-hide-keyboard-after-typing-in-edittext-in-android
+ return false;
+ }
+ return false;
}
});
@@ -130,12 +128,22 @@ public class ImportKeysServerFragment extends Fragment {
if (getArguments() != null && getArguments().containsKey(ARG_QUERY)) {
String query = getArguments().getString(ARG_QUERY);
mQueryEditText.setText(query);
- search(query);
+
+ String keyServer = null;
+ if (getArguments().containsKey(ARG_KEY_SERVER)) {
+ keyServer = getArguments().getString(ARG_KEY_SERVER);
+ int keyServerPos = mServerAdapter.getPosition(keyServer);
+ mServerSpinner.setSelection(keyServerPos);
+ } else {
+ keyServer = (String) mServerSpinner.getSelectedItem();
+ }
+
+ search(query, keyServer);
}
}
- private void search(String query) {
-
+ private void search(String query, String keyServer) {
+ mImportActivity.loadCallback(null, null, query, keyServer);
}
}