summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorqqzhou <qqzhou@codeaurora.org>2014-10-08 19:00:40 +0800
committerMatt Garnes <matt@cyngn.com>2014-11-13 17:48:11 -0800
commit7fc4eb281b135fede596b436f4a9cf9bb6c2a18e (patch)
tree362688fd46a383393824413991c3c59aaf6f283a /src
parent8ca6530da4d0e70d07f867619983e7265391b24f (diff)
downloadandroid_packages_apps_Dialer-7fc4eb281b135fede596b436f4a9cf9bb6c2a18e.tar.gz
android_packages_apps_Dialer-7fc4eb281b135fede596b436f4a9cf9bb6c2a18e.tar.bz2
android_packages_apps_Dialer-7fc4eb281b135fede596b436f4a9cf9bb6c2a18e.zip
Dialer: fix wrong visible status of voice search button
When user enters dialer main screen, it will prepare and check whether should show voice search button, but after back to non-search mode from search mode, it ignores to check and so the button status become wrong. We add to check whether should show voice search button in visibility updating function. Change-Id: I4374b3c44156294d00d5290316a7510e41a331a1 CRs-Fixed: 730644
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/widget/SearchEditTextLayout.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/com/android/dialer/widget/SearchEditTextLayout.java b/src/com/android/dialer/widget/SearchEditTextLayout.java
index 919f65c3c..86a2f9b86 100644
--- a/src/com/android/dialer/widget/SearchEditTextLayout.java
+++ b/src/com/android/dialer/widget/SearchEditTextLayout.java
@@ -19,6 +19,10 @@ package com.android.dialer.widget;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.speech.RecognizerIntent;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.View;
@@ -29,6 +33,8 @@ import com.android.dialer.R;
import com.android.dialer.util.DialerUtils;
import com.android.phone.common.animation.AnimUtils;
+import java.util.List;
+
public class SearchEditTextLayout extends FrameLayout {
private static final float EXPAND_MARGIN_FRACTION_START = 0.8f;
private static final int ANIMATION_DURATION = 200;
@@ -228,7 +234,11 @@ public class SearchEditTextLayout extends FrameLayout {
mSearchIcon.setVisibility(collapsedViewVisibility);
mCollapsedSearchBox.setVisibility(collapsedViewVisibility);
- mVoiceSearchButtonView.setVisibility(collapsedViewVisibility);
+ if (!isExpand && canIntentBeHandled()) {
+ mVoiceSearchButtonView.setVisibility(collapsedViewVisibility);
+ } else {
+ mVoiceSearchButtonView.setVisibility(View.GONE);
+ }
mOverflowButtonView.setVisibility(collapsedViewVisibility);
mBackButtonView.setVisibility(expandedViewVisibility);
// TODO: Prevents keyboard from jumping up in landscape mode after exiting the
@@ -275,4 +285,12 @@ public class SearchEditTextLayout extends FrameLayout {
params.rightMargin = (int) (mRightMargin * fraction);
requestLayout();
}
+
+ private boolean canIntentBeHandled() {
+ final Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
+ final PackageManager packageManager = getContext().getPackageManager();
+ final List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(voiceIntent,
+ PackageManager.MATCH_DEFAULT_ONLY);
+ return resolveInfo != null && resolveInfo.size() > 0;
+ }
}