diff options
-rw-r--r-- | src/com/android/dialer/DialtactsActivity.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index 3c9b870dd..5e6f03597 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -229,6 +229,12 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O private int mActionBarHeight; + /** + * The text returned from a voice search query. Set in {@link #onActivityResult} and used in + * {@link #onResume()} to populate the search box. + */ + private String mVoiceSearchQuery; + private class OptionsPopupMenu extends PopupMenu { public OptionsPopupMenu(Context context, View anchor) { super(context, anchor, Gravity.END); @@ -477,6 +483,16 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O showDialpadFragment(false); mShowDialpadOnResume = false; } + + // If there was a voice query result returned in the {@link #onActivityResult} callback, it + // will have been stashed in mVoiceSearchQuery since the search results fragment cannot be + // shown until onResume has completed. Active the search UI and set the search term now. + if (!TextUtils.isEmpty(mVoiceSearchQuery)) { + mActionBarController.onSearchBoxTapped(); + mSearchView.setText(mVoiceSearchQuery); + mVoiceSearchQuery = null; + } + mFirstLaunch = false; if (mIsRestarting) { @@ -618,7 +634,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O RecognizerIntent.EXTRA_RESULTS); if (matches.size() > 0) { final String match = matches.get(0); - mSearchView.setText(match); + mVoiceSearchQuery = match; } else { Log.e(TAG, "Voice search - nothing heard"); } |