summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2010-02-25 10:27:33 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-02-25 10:27:33 -0800
commit1d620c67e2e1aeae317c983b8a60c3be701825b0 (patch)
tree5d34b44a49a9002083cb42661ba8cea9a76c1122 /core
parent2299a553bc35ecc15dab0e36732b126e1eb8d446 (diff)
parentd368572f8e0c9bd851aacb71ea57adecfbd5d1a4 (diff)
downloadframeworks_base-1d620c67e2e1aeae317c983b8a60c3be701825b0.zip
frameworks_base-1d620c67e2e1aeae317c983b8a60c3be701825b0.tar.gz
frameworks_base-1d620c67e2e1aeae317c983b8a60c3be701825b0.tar.bz2
Merge "Fix for voice search crash in maps and youtube. Bug 2453182"
Diffstat (limited to 'core')
-rw-r--r--core/java/android/app/SearchDialog.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index 6a02a58..cb6aab6 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -313,7 +313,6 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
mLaunchComponent = null;
mAppSearchData = null;
mSearchable = null;
- mActivityContext = null;
mUserQuery = null;
}
@@ -411,7 +410,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
updateSearchAppIcon();
updateSearchBadge();
updateQueryHint();
- updateVoiceButton();
+ updateVoiceButton(TextUtils.isEmpty(mUserQuery));
// In order to properly configure the input method (if one is being used), we
// need to let it know if we'll be providing suggestions. Although it would be
@@ -560,10 +559,13 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
/**
* Update the visibility of the voice button. There are actually two voice search modes,
* either of which will activate the button.
+ * @param empty whether the search query text field is empty. If it is, then the other
+ * criteria apply to make the voice button visible. Otherwise the voice button will not
+ * be visible - i.e., if the user has typed a query, remove the voice button.
*/
- private void updateVoiceButton() {
+ private void updateVoiceButton(boolean empty) {
int visibility = View.GONE;
- if (mSearchable.getVoiceSearchEnabled()) {
+ if (mSearchable.getVoiceSearchEnabled() && empty) {
Intent testIntent = null;
if (mSearchable.getVoiceSearchLaunchWebSearch()) {
testIntent = mVoiceWebSearchIntent;
@@ -666,6 +668,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
// The user changed the query, remember it.
mUserQuery = s == null ? "" : s.toString();
}
+ updateVoiceButton(TextUtils.isEmpty(s));
}
public void afterTextChanged(Editable s) {
@@ -746,9 +749,6 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
return;
}
SearchableInfo searchable = mSearchable;
- // First stop the existing search before starting voice search, or else we'll end
- // up showing the search dialog again once we return to the app.
- cancel();
try {
if (searchable.getVoiceSearchLaunchWebSearch()) {
getContext().startActivity(mVoiceWebSearchIntent);
@@ -762,6 +762,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
// voice search before showing the button. But just in case...
Log.w(LOG_TAG, "Could not find voice search activity");
}
+ dismiss();
}
};