Merge "Skip VisualQueryDetectionService being destroyed for SDK bump" into udc-dev

This commit is contained in:
Charles Chen
2023-05-08 21:06:03 +00:00
committed by Android (Google) Code Review

View File

@@ -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 {
detector.destroy();
if (detector != mActiveVisualQueryDetector.getInitializationDelegate()
|| shouldShutDownVisualQueryDetector) {
detector.destroy();
}
} catch (Exception ex) {
Log.i(TAG, "exception destroying HotwordDetector", ex);
}