diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index 869b3540b5d26..caf72af9b6933 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -1182,7 +1182,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS // report back about the click if (mGlobalSearchMode) { // in global search mode, do it via cursor - mSuggestionsAdapter.callCursorOnClick(c, position); + mSuggestionsAdapter.callCursorOnClick(c, position, actionKey, actionMsg); } else if (intent != null && mPreviousComponents != null && !mPreviousComponents.isEmpty()) { diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java index 3a14f6f17c8ec..6a0285d446ab9 100644 --- a/core/java/android/app/SearchManager.java +++ b/core/java/android/app/SearchManager.java @@ -1343,6 +1343,10 @@ public class SearchManager = "DialogCursorProtocol.CLICK.sendPosition"; public final static String CLICK_SEND_MAX_DISPLAY_POS = "DialogCursorProtocol.CLICK.sendDisplayPosition"; + public final static String CLICK_SEND_ACTION_KEY + = "DialogCursorProtocol.CLICK.sendActionKey"; + public final static String CLICK_SEND_ACTION_MSG + = "DialogCursorProtocol.CLICK.sendActionMsg"; public final static String CLICK_RECEIVE_SELECTED_POS = "DialogCursorProtocol.CLICK.receiveSelectedPosition"; diff --git a/core/java/android/app/SuggestionsAdapter.java b/core/java/android/app/SuggestionsAdapter.java index 4f9531e787a6b..691f4a780da4b 100644 --- a/core/java/android/app/SuggestionsAdapter.java +++ b/core/java/android/app/SuggestionsAdapter.java @@ -37,6 +37,7 @@ import android.text.Html; import android.text.TextUtils; import android.util.Log; import android.util.SparseArray; +import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; import android.widget.Filter; @@ -290,12 +291,16 @@ class SuggestionsAdapter extends ResourceCursorAdapter { * @param cursor The cursor * @param position The position that was clicked. */ - void callCursorOnClick(Cursor cursor, int position) { + void callCursorOnClick(Cursor cursor, int position, int actionKey, String actionMsg) { if (!mGlobalSearchMode) return; - final Bundle request = new Bundle(3); + final Bundle request = new Bundle(5); request.putInt(DialogCursorProtocol.METHOD, DialogCursorProtocol.CLICK); request.putInt(DialogCursorProtocol.CLICK_SEND_POSITION, position); request.putInt(DialogCursorProtocol.CLICK_SEND_MAX_DISPLAY_POS, mMaxDisplayed); + if (actionKey != KeyEvent.KEYCODE_UNKNOWN) { + request.putInt(DialogCursorProtocol.CLICK_SEND_ACTION_KEY, actionKey); + request.putString(DialogCursorProtocol.CLICK_SEND_ACTION_MSG, actionMsg); + } final Bundle response = cursor.respond(request); mMaxDisplayed = -1; mListItemToSelect = response.getInt(