From 0798ef0523b99212c4782d4fb0f1a68d903dbc39 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Fri, 10 Jul 2015 16:48:37 -0700 Subject: [PATCH] Disable voice input if assist is voice service Bug: 22358252 Change-Id: Id4a9de8c5287c5e025d0ccc7f98edd8855db519c --- .../settings/applications/ManageAssist.java | 16 ++++++++++++++-- .../settings/voice/VoiceInputListPreference.java | 10 ++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/applications/ManageAssist.java b/src/com/android/settings/applications/ManageAssist.java index fe9d1784ce4..de69bb6f748 100644 --- a/src/com/android/settings/applications/ManageAssist.java +++ b/src/com/android/settings/applications/ManageAssist.java @@ -104,6 +104,7 @@ public class ManageAssist extends SettingsPreferenceFragment private void updateUi() { mDefaultAssitPref.refreshAssistApps(); + mVoiceInputPref.refreshVoiceInputs(); final ComponentName currentAssist = mDefaultAssitPref.getCurrentAssist(); final boolean hasAssistant = currentAssist != null; @@ -115,8 +116,19 @@ public class ManageAssist extends SettingsPreferenceFragment getPreferenceScreen().removePreference(mScreenshotPref); } - mVoiceInputPref.setAssistRestrict(currentAssist); - mVoiceInputPref.refreshVoiceInputs(); + if (isCurrentAssistVoiceService()) { + getPreferenceScreen().removePreference(mVoiceInputPref); + } else { + getPreferenceScreen().addPreference(mVoiceInputPref); + mVoiceInputPref.setAssistRestrict(currentAssist); + } + } + + private boolean isCurrentAssistVoiceService() { + ComponentName currentAssist = mDefaultAssitPref.getCurrentAssist(); + ComponentName activeService = mVoiceInputPref.getCurrentService(); + return currentAssist == null && activeService == null || + currentAssist != null && currentAssist.equals(activeService); } private void confirmNewAssist(final String newAssitPackage) { diff --git a/src/com/android/settings/voice/VoiceInputListPreference.java b/src/com/android/settings/voice/VoiceInputListPreference.java index a131d21cffb..ddb56d1f792 100644 --- a/src/com/android/settings/voice/VoiceInputListPreference.java +++ b/src/com/android/settings/voice/VoiceInputListPreference.java @@ -121,6 +121,16 @@ public class VoiceInputListPreference extends AppListPreferenceWithSettings { } } + public ComponentName getCurrentService() { + if (mHelper.mCurrentVoiceInteraction != null) { + return mHelper.mCurrentVoiceInteraction; + } else if (mHelper.mCurrentRecognizer != null) { + return mHelper.mCurrentRecognizer; + } else { + return null; + } + } + private class CustomAdapter extends ArrayAdapter { public CustomAdapter(Context context, CharSequence[] objects) {