Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c962a1ac authored by Ahaan Ugale's avatar Ahaan Ugale
Browse files

Don't change the voice interactor setting if it's explicitly unset.

Test: manual (currently requires hardcoding the assistant role due to b/175747251)
Test: atest CtsAssistTestCases CtsVoiceInteractionTestCases CtsVoiceSettingsTestCases
Bug: 167261484

Change-Id: Ibc2c1675f8b026f2915c3faf55e8ff3c52e1ee32
parent 83352bf4
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -420,8 +420,9 @@ public class VoiceInteractionManagerService extends SystemService {
                        + interactorInfo + ")");
            }

            // Initializing settings, look for an interactor first (but only on non-svelte).
            if (curInteractorInfo == null && mEnableService) {
            // Initializing settings. Look for an interactor first, but only on non-svelte and only
            // if the user hasn't explicitly unset it.
            if (curInteractorInfo == null && mEnableService && !"".equals(curInteractorStr)) {
                curInteractorInfo = findAvailInteractor(userHandle, null);
            }

@@ -1751,8 +1752,13 @@ public class VoiceInteractionManagerService extends SystemService {
                if (isPackageAppearing(pkgName) != PACKAGE_UNCHANGED) {
                    return;
                }
                final String curInteractorStr = Settings.Secure.getStringForUser(
                        mContext.getContentResolver(),
                        Settings.Secure.VOICE_INTERACTION_SERVICE, mCurUser);
                final ComponentName curInteractor = getCurInteractor(mCurUser);
                if (curInteractor == null) {
                // If there's no interactor and the user hasn't explicitly unset it, check if the
                // modified package offers one.
                if (curInteractor == null && !"".equals(curInteractorStr)) {
                    final VoiceInteractionServiceInfo availInteractorInfo
                            = findAvailInteractor(mCurUser, pkgName);
                    if (availInteractorInfo != null) {