From dda0c6d0a55a01e62705553649db2dab4b2f5135 Mon Sep 17 00:00:00 2001 From: Daniel Kim Date: Fri, 12 Aug 2022 15:59:47 +0000 Subject: [PATCH] Revert "Revert "Refactor ProximityUpdateCallbackInternal to inte..." Revert submission 19600381-revert-17936037-hotword_proximity-ZZIDPDULZP Test: atest CtsVoiceInteractionTestCases, atest CtsVoiceInteractionTestCases:android.voiceinteraction.cts.AlwaysOnHotwordDetectorTest#testAlwaysOnHotwordDetector_startRecognitionWithData -- --abi x86_64 Reason for revert: Including the fix for broken tests Reverted Changes: Ibfc659015:Revert "Refactor ProximityUpdateCallbackInternal t... I1a03c21d5:Revert "Verify that proximity key is added to the ... I6b79d9400:Revert "Add proximity state to the HotwordDetected... Change-Id: Iee6ab086ccc3f27b95ee601d6be11231f300170c Merged-In: Iee6ab086ccc3f27b95ee601d6be11231f300170c --- .../attention/AttentionManagerInternal.java | 4 ++-- .../server/attention/AttentionManagerService.java | 6 ++---- .../HotwordDetectionConnection.java | 15 +++++++-------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/core/java/android/attention/AttentionManagerInternal.java b/core/java/android/attention/AttentionManagerInternal.java index 47bec618cfd9c..24fe0dbe5760a 100644 --- a/core/java/android/attention/AttentionManagerInternal.java +++ b/core/java/android/attention/AttentionManagerInternal.java @@ -83,11 +83,11 @@ public abstract class AttentionManagerInternal { } /** Internal interface for proximity callback. */ - public abstract static class ProximityUpdateCallbackInternal { + public interface ProximityUpdateCallbackInternal { /** * @param distance the estimated distance of the user (in meter) * The distance will be PROXIMITY_UNKNOWN if the proximity sensing was inconclusive. */ - public abstract void onProximityUpdate(double distance); + void onProximityUpdate(double distance); } } diff --git a/services/core/java/com/android/server/attention/AttentionManagerService.java b/services/core/java/com/android/server/attention/AttentionManagerService.java index a948ce22497e5..d4ef638d08181 100644 --- a/services/core/java/com/android/server/attention/AttentionManagerService.java +++ b/services/core/java/com/android/server/attention/AttentionManagerService.java @@ -856,9 +856,6 @@ public class AttentionManagerService extends SystemService { @GuardedBy("mLock") private void cancelAndUnbindLocked() { synchronized (mLock) { - if (mCurrentAttentionCheck == null && mCurrentProximityUpdate == null) { - return; - } if (mCurrentAttentionCheck != null) { cancel(); } @@ -940,7 +937,7 @@ public class AttentionManagerService extends SystemService { } } - class TestableProximityUpdateCallbackInternal extends ProximityUpdateCallbackInternal { + class TestableProximityUpdateCallbackInternal implements ProximityUpdateCallbackInternal { private double mLastCallbackCode = PROXIMITY_UNKNOWN; @Override @@ -1072,6 +1069,7 @@ public class AttentionManagerService extends SystemService { private void resetStates() { synchronized (mLock) { mCurrentProximityUpdate = null; + cancelAndUnbindLocked(); } mComponentName = resolveAttentionService(mContext); } diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java index a818573fafca1..bde9c3dfd641d 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java @@ -188,14 +188,7 @@ final class HotwordDetectionConnection { @Nullable final AttentionManagerInternal mAttentionManagerInternal; final AttentionManagerInternal.ProximityUpdateCallbackInternal mProximityCallbackInternal = - new AttentionManagerInternal.ProximityUpdateCallbackInternal() { - @Override - public void onProximityUpdate(double distance) { - synchronized (mLock) { - mProximityMeters = distance; - } - } - }; + this::setProximityMeters; volatile HotwordDetectionServiceIdentity mIdentity; @@ -1227,6 +1220,12 @@ final class HotwordDetectionConnection { } } + private void setProximityMeters(double proximityMeters) { + synchronized (mLock) { + mProximityMeters = proximityMeters; + } + } + private static void bestEffortClose(Closeable... closeables) { for (Closeable closeable : closeables) { bestEffortClose(closeable);