From abbdfd48dfef1a2cea5ac065bdbb4199e2b3b7de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sat, 1 Feb 2014 18:13:26 +0100 Subject: Started working on integration of keyserver query into import activity --- .../keychain/ui/ImportKeysServerFragment.java | 86 ++++++++++++++++++++-- 1 file changed, 79 insertions(+), 7 deletions(-) (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java') 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 5d8885e2f..c8f4868a2 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 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Dominik Schürmann + * Copyright (C) 2013-2014 Dominik Schürmann * * 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 @@ -17,22 +17,36 @@ 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.os.Bundle; import android.support.v4.app.Fragment; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.inputmethod.EditorInfo; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; import com.beardedhen.androidbootstrap.BootstrapButton; public class ImportKeysServerFragment extends Fragment { - private BootstrapButton mButton; + public static final String ARG_QUERY = "query"; - String mQuery; + private ImportKeysActivity mImportActivity; + + private BootstrapButton mOldButton; + + private BootstrapButton mSearchButton; + private EditText mQueryEditText; + private Spinner mServerSpinner; /** * Creates new instance of this fragment @@ -41,6 +55,8 @@ public class ImportKeysServerFragment extends Fragment { ImportKeysServerFragment frag = new ImportKeysServerFragment(); Bundle args = new Bundle(); + args.putString(ARG_QUERY, query); + frag.setArguments(args); return frag; @@ -51,14 +67,52 @@ public class ImportKeysServerFragment extends Fragment { */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.import_keys_keyserver_fragment, container, false); + View view = inflater.inflate(R.layout.import_keys_server_fragment, container, false); - mButton = (BootstrapButton) view.findViewById(R.id.import_keyserver_button); - mButton.setOnClickListener(new OnClickListener() { + mSearchButton = (BootstrapButton) view.findViewById(R.id.import_server_button); + mQueryEditText = (EditText) view.findViewById(R.id.import_server_query); + mServerSpinner = (Spinner) view.findViewById(R.id.import_server_spinner); + + // add keyservers to spinner + ArrayAdapter adapter = new ArrayAdapter(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) { + mServerSpinner.setSelection(0); + } else { + mSearchButton.setEnabled(false); + } + + mSearchButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + String query = mQueryEditText.getText().toString(); + + } + }); + // 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() { @Override public void onClick(View v) { - // TODO: use fragment instead of activity, handle onresult here! startActivityForResult(new Intent(getActivity(), KeyServerQueryActivity.class), 0); } }); @@ -66,4 +120,22 @@ public class ImportKeysServerFragment extends Fragment { return view; } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + mImportActivity = (ImportKeysActivity) getActivity(); + + // if query has been set on instantiation, search immediately! + if (getArguments() != null && getArguments().containsKey(ARG_QUERY)) { + String query = getArguments().getString(ARG_QUERY); + mQueryEditText.setText(query); + search(query); + } + } + + private void search(String query) { + + } + } -- cgit v1.2.3