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

Commit 6e4eb7c6 authored by Charles Chen's avatar Charles Chen Committed by Automerger Merge Worker
Browse files

Merge "Skip VisualQueryDetectionService being destroyed for SDK bump" into...

Merge "Skip VisualQueryDetectionService being destroyed for SDK bump" into udc-dev am: e3176790 am: 68c0c0ee am: 6792f776

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23075583



Change-Id: I45ea6f7d86b773bb9477ff943b6a29acf182ee60
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 1d9a81d3 6792f776
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -389,7 +389,7 @@ public class VoiceInteractionService extends Service {
        // It's still guaranteed to have been stopped.
        // This helps with cases where the voice interaction implementation is changed
        // by the user.
        safelyShutdownAllHotwordDetectors();
        safelyShutdownAllHotwordDetectors(true);
    }

    /**
@@ -715,7 +715,7 @@ public class VoiceInteractionService extends Service {
        synchronized (mLock) {
            if (!CompatChanges.isChangeEnabled(MULTIPLE_ACTIVE_HOTWORD_DETECTORS)) {
                // Allow only one concurrent recognition via the APIs.
                safelyShutdownAllHotwordDetectors();
                safelyShutdownAllHotwordDetectors(false);
            } else {
                for (HotwordDetector detector : mActiveDetectors) {
                    if (detector.isUsingSandboxedDetectionService()
@@ -878,7 +878,7 @@ public class VoiceInteractionService extends Service {
        synchronized (mLock) {
            if (!CompatChanges.isChangeEnabled(MULTIPLE_ACTIVE_HOTWORD_DETECTORS)) {
                // Allow only one concurrent recognition via the APIs.
                safelyShutdownAllHotwordDetectors();
                safelyShutdownAllHotwordDetectors(false);
            } else {
                for (HotwordDetector detector : mActiveDetectors) {
                    if (!detector.isUsingSandboxedDetectionService()) {
@@ -1062,11 +1062,14 @@ public class VoiceInteractionService extends Service {
        return mKeyphraseEnrollmentInfo.getKeyphraseMetadata(keyphrase, locale) != null;
    }

    private void safelyShutdownAllHotwordDetectors() {
    private void safelyShutdownAllHotwordDetectors(boolean shouldShutDownVisualQueryDetector) {
        synchronized (mLock) {
            mActiveDetectors.forEach(detector -> {
                try {
                    if (detector != mActiveVisualQueryDetector.getInitializationDelegate()
                            || shouldShutDownVisualQueryDetector) {
                        detector.destroy();
                    }
                } catch (Exception ex) {
                    Log.i(TAG, "exception destroying HotwordDetector", ex);
                }