diff options
author | Bjorn Bringert <bringert@android.com> | 2009-07-28 19:54:14 +0100 |
---|---|---|
committer | Bjorn Bringert <bringert@android.com> | 2009-07-28 20:15:49 +0100 |
commit | f4acf39d99d105e1e4fc7c43fa54377bb2f262ae (patch) | |
tree | 13eb60a3d81b8b2e3166bd9509e3b04d5b5a786e /core | |
parent | c6590d6f390fc69fe15a9a565327a8f8c97f107b (diff) | |
download | frameworks_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.java | 36 |
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 */ |