Disable voice input if assist is voice service

Bug: 22358252
Change-Id: Id4a9de8c5287c5e025d0ccc7f98edd8855db519c
This commit is contained in:
Jorim Jaggi
2015-07-10 16:48:37 -07:00
parent 53dd1d4dee
commit 0798ef0523
2 changed files with 24 additions and 2 deletions

View File

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

View File

@@ -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<CharSequence> {
public CustomAdapter(Context context, CharSequence[] objects) {