diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserver.java
index 1c9daf7c9..6d0db66ba 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserver.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserver.java
@@ -52,10 +52,6 @@ public class FacebookKeyserver extends Keyserver {
private static final String FB_HOST = "facebook.com";
private static final String FB_HOST_WWW = "www." + FB_HOST;
- public static final String FB_URL = "https://" + FB_HOST_WWW;
-
- public static final String ORIGIN = FB_URL;
-
public FacebookKeyserver() {
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
index c80201cfb..fe9891193 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
@@ -172,7 +172,7 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
if (query != null && query.length() > 0) {
// display keyserver fragment with query
- startTopCloudFragment(query, false, null);
+ startTopCloudFragment(query, null);
// action: search immediately
startListFragment(null, null, query, null);
@@ -190,9 +190,6 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
if (isFingerprintValid(fingerprint)) {
String query = "0x" + fingerprint;
- // display keyserver fragment with query
- startTopCloudFragment(query, true, null);
-
// action: search immediately
startListFragment(null, null, query, null);
}
@@ -210,27 +207,35 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
Preferences.CloudSearchPrefs cloudSearchPrefs =
new Preferences.CloudSearchPrefs(false, true, true, null);
- // we allow our users to edit the query if they wish
- startTopCloudFragment(fbUsername, false, cloudSearchPrefs);
// search immediately
startListFragment(null, null, fbUsername, cloudSearchPrefs);
break;
}
case ACTION_SEARCH_KEYSERVER_FROM_URL: {
- // need to process URL to get search query and keyserver authority
- String query = dataUri.getQueryParameter("search");
- // if query not specified, we still allow users to search the keyserver in the link
- if (query == null) {
- Notify.create(this, R.string.import_url_warn_no_search_parameter, Notify.LENGTH_INDEFINITE,
- Notify.Style.WARN).show();
- }
- ParcelableHkpKeyserver keyserver = new ParcelableHkpKeyserver(dataUri.getAuthority());
+ // get keyserver from URL
+ ParcelableHkpKeyserver keyserver = new ParcelableHkpKeyserver(
+ dataUri.getScheme() + "://" + dataUri.getAuthority());
Preferences.CloudSearchPrefs cloudSearchPrefs = new Preferences.CloudSearchPrefs(
- true, true, true, keyserver);
- // we allow our users to edit the query if they wish
- startTopCloudFragment(query, false, cloudSearchPrefs);
- // search immediately (if query is not null)
- startListFragment(null, null, query, cloudSearchPrefs);
+ true, false, false, keyserver);
+ Log.d(Constants.TAG, "Using keyserver: " + keyserver);
+
+ // process URL to get operation and query
+ String operation = dataUri.getQueryParameter("op");
+ String query = dataUri.getQueryParameter("search");
+
+ // if query or operation not specified, we still allow users to search
+ if (query == null || operation == null) {
+ startTopCloudFragment(null, cloudSearchPrefs);
+ startListFragment(null, null, null, cloudSearchPrefs);
+ } else {
+ if (operation.equalsIgnoreCase("get")) {
+ // don't allow searching here, only one key!
+ startListFragment(null, null, query, cloudSearchPrefs);
+ } else { // for example: operation: index
+ startTopCloudFragment(query, cloudSearchPrefs);
+ startListFragment(null, null, query, cloudSearchPrefs);
+ }
+ }
break;
}
case ACTION_IMPORT_KEY_FROM_FILE:
@@ -241,7 +246,7 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
break;
}
default: {
- startTopCloudFragment(null, false, null);
+ startTopCloudFragment(null, null);
startListFragment(null, null, null, null);
break;
}
@@ -279,21 +284,19 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
}
/**
- * loads the CloudFragment, which consists of the search bar, search button and settings icon
- * visually.
+ * loads the CloudFragment, which enables the search bar
*
* @param query search query
- * @param disableQueryEdit if true, user will not be able to edit the search query
* @param cloudSearchPrefs keyserver authority to use for search, if null will use keyserver
* specified in user preferences
*/
- private void startTopCloudFragment(String query, boolean disableQueryEdit,
+ private void startTopCloudFragment(String query,
Preferences.CloudSearchPrefs cloudSearchPrefs) {
FragmentManager fM = getSupportFragmentManager();
if (fM.findFragmentByTag(TAG_FRAG_TOP) == null) {
Fragment importCloudFragment = ImportKeysCloudFragment.newInstance(query,
- disableQueryEdit, cloudSearchPrefs);
+ cloudSearchPrefs);
fM.beginTransaction().add(importCloudFragment, TAG_FRAG_TOP).commit();
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysCloudFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysCloudFragment.java
index 7458b2f1c..47f2976fe 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysCloudFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysCloudFragment.java
@@ -57,7 +57,6 @@ import static android.support.v7.widget.SearchView.OnSuggestionListener;
public class ImportKeysCloudFragment extends Fragment {
public static final String ARG_QUERY = "query";
- public static final String ARG_DISABLE_QUERY_EDIT = "disable_query_edit";
public static final String ARG_CLOUD_SEARCH_PREFS = "cloud_search_prefs";
private static final String CURSOR_SUGGESTION = "suggestion";
@@ -74,18 +73,16 @@ public class ImportKeysCloudFragment extends Fragment {
* Creates new instance of this fragment
*
* @param query query to search for
- * @param disableQueryEdit if true, user cannot edit query
* @param cloudSearchPrefs search parameters to use. If null will retrieve from user's
* preferences.
*/
- public static ImportKeysCloudFragment newInstance(String query, boolean disableQueryEdit,
+ public static ImportKeysCloudFragment newInstance(String query,
CloudSearchPrefs cloudSearchPrefs) {
ImportKeysCloudFragment frag = new ImportKeysCloudFragment();
Bundle args = new Bundle();
args.putString(ARG_QUERY, query);
- args.putBoolean(ARG_DISABLE_QUERY_EDIT, disableQueryEdit);
args.putParcelable(ARG_CLOUD_SEARCH_PREFS, cloudSearchPrefs);
frag.setArguments(args);
@@ -104,6 +101,8 @@ public class ImportKeysCloudFragment extends Fragment {
new int[]{android.R.id.text1}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
setHasOptionsMenu(true);
+
+ // no view, just search view
return null;
}
@@ -173,6 +172,11 @@ public class ImportKeysCloudFragment extends Fragment {
searchItem.expandActionView();
+ String query = getArguments().getString(ARG_QUERY);
+ if (query != null) {
+ searchView.setQuery(query, false);
+ }
+
super.onCreateOptionsMenu(menu, inflater);
}
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index a7ff7feff..3ef164443 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -539,9 +539,6 @@
"Refresh"
"Go to key"
-
- "No search query defined. You can still manually search on this keyserver."
-
"Details"
", with warnings"