diff options
author | qqzhou <qqzhou@codeaurora.org> | 2014-10-08 19:00:40 +0800 |
---|---|---|
committer | Matt Garnes <matt@cyngn.com> | 2014-11-13 17:48:11 -0800 |
commit | 7fc4eb281b135fede596b436f4a9cf9bb6c2a18e (patch) | |
tree | 362688fd46a383393824413991c3c59aaf6f283a /src | |
parent | 8ca6530da4d0e70d07f867619983e7265391b24f (diff) | |
download | android_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.java | 20 |
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; + } } |