diff options
author | Bjorn Bringert <bringert@android.com> | 2009-07-15 18:18:57 +0100 |
---|---|---|
committer | Bjorn Bringert <bringert@android.com> | 2009-07-15 20:01:45 +0100 |
commit | e94a726ec04ede6018d66d7ff886e29471d21f2e (patch) | |
tree | 57182d6bb29c2e5c92d2a4f70de5b7650f12a8ff | |
parent | 443e1e900b7613b5ead983f2dda15488fbf78297 (diff) | |
download | GoogleSearch-e94a726ec04ede6018d66d7ff886e29471d21f2e.tar.gz |
Add app and suggestion icons to GoogleSearch
I took the Google favicon and magnifying glass from
EnhancedGoogleSearchProvider.
Also: refactors cursor column handling to use named constant.
Also: switch to non-deprecated GoogleHttpClient constructor.
Also: move intent_action to searchables.xml
Fixes http://b/issue?id=1982033
"GoogleSearch has no icon, and sets no suggestion icons"
-rw-r--r-- | AndroidManifest.xml | 3 | ||||
-rw-r--r-- | res/drawable/google.png | bin | 0 -> 2548 bytes | |||
-rwxr-xr-x | res/drawable/magnifying_glass.png | bin | 0 -> 3708 bytes | |||
-rw-r--r-- | res/xml/searchable.xml | 1 | ||||
-rw-r--r-- | src/com/android/googlesearch/SuggestionProvider.java | 60 |
5 files changed, 38 insertions, 26 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 23c3be9..b7e59d5 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -26,7 +26,8 @@ <application android:process="android.process.acore" - android:label="@string/app_label"> + android:label="@string/app_label" + android:icon="@drawable/google"> <activity android:name=".GoogleSearch" android:label="@string/search_label" diff --git a/res/drawable/google.png b/res/drawable/google.png Binary files differnew file mode 100644 index 0000000..fe61c2d --- /dev/null +++ b/res/drawable/google.png diff --git a/res/drawable/magnifying_glass.png b/res/drawable/magnifying_glass.png Binary files differnew file mode 100755 index 0000000..7ce9686 --- /dev/null +++ b/res/drawable/magnifying_glass.png diff --git a/res/xml/searchable.xml b/res/xml/searchable.xml index 09b8867..6c9fef1 100644 --- a/res/xml/searchable.xml +++ b/res/xml/searchable.xml @@ -26,4 +26,5 @@ android:searchSuggestAuthority="com.android.googlesearch.SuggestionProvider" android:searchSuggestSelection="field =?" + android:searchSuggestIntentAction="android.intent.action.WEB_SEARCH" /> diff --git a/src/com/android/googlesearch/SuggestionProvider.java b/src/com/android/googlesearch/SuggestionProvider.java index c6ccfb1..f4cc78c 100644 --- a/src/com/android/googlesearch/SuggestionProvider.java +++ b/src/com/android/googlesearch/SuggestionProvider.java @@ -16,7 +16,6 @@ package com.android.googlesearch; -import com.android.internal.database.ArrayListCursor; import com.google.android.net.GoogleHttpClient; import org.apache.http.HttpResponse; @@ -32,7 +31,6 @@ import android.app.SearchManager; import android.content.ContentProvider; import android.content.ContentValues; import android.content.Context; -import android.content.Intent; import android.database.AbstractCursor; import android.database.Cursor; import android.net.ConnectivityManager; @@ -44,7 +42,6 @@ import android.util.Log; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.util.ArrayList; import java.util.Locale; /** @@ -54,8 +51,7 @@ import java.util.Locale; */ public class SuggestionProvider extends ContentProvider { - public static final Uri CONTENT_URI = Uri.parse( - "content://com.android.googlesearch.SuggestionProvider"); + private static final String LOG_TAG = "GoogleSearch"; private static final String USER_AGENT = "Android/1.0"; private String mSuggestUri; @@ -64,23 +60,32 @@ public class SuggestionProvider extends ContentProvider { // TODO: this should be defined somewhere private static final String HTTP_TIMEOUT = "http.connection-manager.timeout"; - private static final String LOG_TAG = "GoogleSearch.SuggestionProvider"; + private static final String SUGGESTION_ICON = + "android.resource://com.android.googlesearch/" + R.drawable.magnifying_glass; + + // Indexes into COLUMNS + private static final int COL_ID = 0; + private static final int COL_TEXT_1 = 1; + private static final int COL_TEXT_2 = 2; + private static final int COL_ICON_1 = 3; + private static final int COL_ICON_2 = 4; + private static final int COL_QUERY = 5; /* The suggestion columns used */ private static final String[] COLUMNS = new String[] { "_id", SearchManager.SUGGEST_COLUMN_TEXT_1, SearchManager.SUGGEST_COLUMN_TEXT_2, - SearchManager.SUGGEST_COLUMN_QUERY, - SearchManager.SUGGEST_COLUMN_INTENT_ACTION, + SearchManager.SUGGEST_COLUMN_ICON_1, + SearchManager.SUGGEST_COLUMN_ICON_2, + SearchManager.SUGGEST_COLUMN_QUERY }; private HttpClient mHttpClient; @Override public boolean onCreate() { - mHttpClient = new GoogleHttpClient(getContext().getContentResolver(), - USER_AGENT, false /* not gzip capable */); + mHttpClient = new GoogleHttpClient(getContext(), USER_AGENT, false /* not gzip capable */); HttpParams params = mHttpClient.getParams(); params.setLongParameter(HTTP_TIMEOUT, HTTP_TIMEOUT_MS); @@ -214,24 +219,29 @@ public class SuggestionProvider extends ContentProvider { @Override public String getString(int column) { - if ((mPos != -1)) { - if ((column == 1) || (column == 3)) { - try { + if (mPos == -1) return null; + try { + switch (column) { + case COL_ID: + return String.valueOf(mPos); + case COL_TEXT_1: + case COL_QUERY: return mSuggestions.getString(mPos); - } catch (JSONException e) { - Log.w(LOG_TAG, "Error", e); - } - } else if (column == 2) { - try { + case COL_TEXT_2: return mPopularity.getString(mPos); - } catch (JSONException e) { - Log.w(LOG_TAG, "Error", e); - } - } else if (column == 4) { - return Intent.ACTION_WEB_SEARCH; + case COL_ICON_1: + return SUGGESTION_ICON; + case COL_ICON_2: + return null; + default: + Log.w(LOG_TAG, "Bad column: " + column); + return null; } + } catch (JSONException e) { + Log.w(LOG_TAG, "Error parsing response: " + e); + return null; } - return null; + } @Override @@ -251,7 +261,7 @@ public class SuggestionProvider extends ContentProvider { @Override public long getLong(int column) { - if (column == 0) { + if (column == COL_ID) { return mPos; // use row# as the _Id } throw new UnsupportedOperationException(); |