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) {