From da5877c9c439680c89d37ef5ec80fbcf5ce5eb42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 26 Sep 2013 08:56:09 +0200 Subject: [PATCH] Add support for fdroid.search: and market://search?q= --- AndroidManifest.xml | 18 +++++++++++++++++ src/org/fdroid/fdroid/SearchResults.java | 25 +++++++++++++++++------- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 685f61904..0d56f16ce 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -138,6 +138,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/org/fdroid/fdroid/SearchResults.java b/src/org/fdroid/fdroid/SearchResults.java index f259abb52..71e662c93 100644 --- a/src/org/fdroid/fdroid/SearchResults.java +++ b/src/org/fdroid/fdroid/SearchResults.java @@ -26,6 +26,7 @@ import android.support.v4.view.MenuItemCompat; import android.app.ListActivity; import android.app.SearchManager; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.Menu; @@ -47,6 +48,21 @@ public class SearchResults extends ListActivity { private String mQuery; + protected void getQuery(Intent intent) { + if (Intent.ACTION_SEARCH.equals(intent.getAction())) { + mQuery = intent.getStringExtra(SearchManager.QUERY); + } else { + Uri data = intent.getData(); + if (data.isHierarchical()) { + mQuery = data.getQueryParameter("q"); + } else { + mQuery = data.getEncodedSchemeSpecificPart(); + } + } + if (mQuery == null || mQuery.length() == 0) + finish(); + } + @Override public void onCreate(Bundle savedInstanceState) { @@ -58,19 +74,14 @@ public class SearchResults extends ListActivity { // Start a search by just typing setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); - Intent intent = getIntent(); - - if (Intent.ACTION_SEARCH.equals(intent.getAction())) { - mQuery = intent.getStringExtra(SearchManager.QUERY); - } + getQuery(getIntent()); updateView(); } @Override protected void onNewIntent(Intent intent) { - if (Intent.ACTION_SEARCH.equals(intent.getAction())) - mQuery = intent.getStringExtra(SearchManager.QUERY); + getQuery(intent); super.onNewIntent(intent); updateView(); }