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

Commit 4cccf6cf authored by Felix Oghina's avatar Felix Oghina Committed by Automerger Merge Worker
Browse files

[vims] better handle assistant force stop am: 1ca358e2

parents e6c25610 1ca358e2
Loading
Loading
Loading
Loading
+1 −23
Original line number Diff line number Diff line
@@ -2117,8 +2117,7 @@ public class VoiceInteractionManagerService extends SystemService {
                    }
                }
                if (hitInt && doit) {
                    // The user is force stopping our current interactor.
                    // Clear the current settings and restore default state.
                    // The user is force stopping our current interactor, restart the service.
                    synchronized (VoiceInteractionManagerServiceStub.this) {
                        Slog.i(TAG, "Force stopping current voice interactor: "
                                + getCurInteractor(userHandle));
@@ -2127,28 +2126,7 @@ public class VoiceInteractionManagerService extends SystemService {
                            mImpl.shutdownLocked();
                            setImplLocked(null);
                        }

                        setCurInteractor(null, userHandle);
                        // TODO: should not reset null here. But even remove this line, the
                        // initForUser() still reset it because the interactor will be null. Keep
                        // it now but we should still need to fix it.
                        setCurRecognizer(null, userHandle);
                        resetCurAssistant(userHandle);
                        initForUser(userHandle);
                        switchImplementationIfNeededLocked(true);

                        // When resetting the interactor, the recognizer and the assistant settings
                        // value, we also need to reset the assistant role to keep the values
                        // consistent. Clear the assistant role will reset to the default value.
                        Context context = getContext();
                        context.getSystemService(RoleManager.class).clearRoleHoldersAsUser(
                                RoleManager.ROLE_ASSISTANT, 0, UserHandle.of(userHandle),
                                context.getMainExecutor(), successful -> {
                                    if (!successful) {
                                        Slog.e(TAG,
                                                "Failed to clear default assistant for force stop");
                                    }
                                });
                    }
                } else if (hitRec && doit) {
                    // We are just force-stopping the current recognizer, which is not