summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorBjorn Bringert <bringert@android.com>2009-07-28 19:54:14 +0100
committerBjorn Bringert <bringert@android.com>2009-07-28 20:15:49 +0100
commitf4acf39d99d105e1e4fc7c43fa54377bb2f262ae (patch)
tree13eb60a3d81b8b2e3166bd9509e3b04d5b5a786e /core
parentc6590d6f390fc69fe15a9a565327a8f8c97f107b (diff)
downloadframeworks_base-f4acf39d99d105e1e4fc7c43fa54377bb2f262ae.zip
frameworks_base-f4acf39d99d105e1e4fc7c43fa54377bb2f262ae.tar.gz
frameworks_base-f4acf39d99d105e1e4fc7c43fa54377bb2f262ae.tar.bz2
Add menu with search settings to search dialog.
Fixes http://b/issue?id=2018143
Diffstat (limited to 'core')
-rw-r--r--core/java/android/app/SearchDialog.java36
1 files changed, 35 insertions, 1 deletions
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index dd24a75..e991bc6 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -51,6 +51,7 @@ import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.Gravity;
import android.view.KeyEvent;
+import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
@@ -667,7 +668,40 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
}
mVoiceButton.setVisibility(visibility);
}
-
+
+ /*
+ * Menu.
+ */
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Show search settings menu item if anyone handles the intent for it
+ Intent settingsIntent = new Intent(SearchManager.INTENT_ACTION_SEARCH_SETTINGS);
+ settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ PackageManager pm = getContext().getPackageManager();
+ ActivityInfo activityInfo = settingsIntent.resolveActivityInfo(pm, 0);
+ if (activityInfo != null) {
+ settingsIntent.setClassName(activityInfo.applicationInfo.packageName,
+ activityInfo.name);
+ CharSequence label = activityInfo.loadLabel(getContext().getPackageManager());
+ menu.add(Menu.NONE, Menu.NONE, Menu.NONE, label)
+ .setIcon(android.R.drawable.ic_menu_preferences)
+ .setAlphabeticShortcut('P')
+ .setIntent(settingsIntent);
+ return true;
+ }
+ return super.onCreateOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onMenuOpened(int featureId, Menu menu) {
+ // The menu shows up above the IME, regardless of whether it is in front
+ // of the drop-down or not. This looks weird when there is no IME, so
+ // we make sure it is visible.
+ mSearchAutoComplete.ensureImeVisible();
+ return super.onMenuOpened(featureId, menu);
+ }
+
/**
* Listeners of various types
*/