From 584eccfe95a5a25fc030d52eaf460cf74c41b407 Mon Sep 17 00:00:00 2001 From: Daniel Kim Date: Thu, 11 Aug 2022 22:00:59 +0000 Subject: [PATCH] Revert "Refactor ProximityUpdateCallbackInternal to interface" Revert submission 17936037-hotword_proximity Reason for revert: https://buganizer.corp.google.com/issues/242223069 Reverted Changes: If8c23a9c6:Refactor ProximityUpdateCallbackInternal to interf... Ib0ad1da25:Verify that proximity key is added to the hotword ... I71e9d3da9:Add proximity state to the HotwordDetectedResult Change-Id: Ibfc65901547d74d6fcfafc257653f49a17a98662 --- .../attention/AttentionManagerInternal.java | 4 ++-- .../server/attention/AttentionManagerService.java | 6 ++++-- .../HotwordDetectionConnection.java | 15 ++++++++------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/core/java/android/attention/AttentionManagerInternal.java b/core/java/android/attention/AttentionManagerInternal.java index 24fe0dbe5760a..47bec618cfd9c 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 interface ProximityUpdateCallbackInternal { + public abstract static class ProximityUpdateCallbackInternal { /** * @param distance the estimated distance of the user (in meter) * The distance will be PROXIMITY_UNKNOWN if the proximity sensing was inconclusive. */ - void onProximityUpdate(double distance); + public abstract 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 d4ef638d08181..a948ce22497e5 100644 --- a/services/core/java/com/android/server/attention/AttentionManagerService.java +++ b/services/core/java/com/android/server/attention/AttentionManagerService.java @@ -856,6 +856,9 @@ public class AttentionManagerService extends SystemService { @GuardedBy("mLock") private void cancelAndUnbindLocked() { synchronized (mLock) { + if (mCurrentAttentionCheck == null && mCurrentProximityUpdate == null) { + return; + } if (mCurrentAttentionCheck != null) { cancel(); } @@ -937,7 +940,7 @@ public class AttentionManagerService extends SystemService { } } - class TestableProximityUpdateCallbackInternal implements ProximityUpdateCallbackInternal { + class TestableProximityUpdateCallbackInternal extends ProximityUpdateCallbackInternal { private double mLastCallbackCode = PROXIMITY_UNKNOWN; @Override @@ -1069,7 +1072,6 @@ 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 2eae68bd31827..96491ac4553f6 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java @@ -192,7 +192,14 @@ final class HotwordDetectionConnection { final AttentionManagerInternal mAttentionManagerInternal; final AttentionManagerInternal.ProximityUpdateCallbackInternal mProximityCallbackInternal = - this::setProximityMeters; + new AttentionManagerInternal.ProximityUpdateCallbackInternal() { + @Override + public void onProximityUpdate(double distance) { + synchronized (mLock) { + mProximityMeters = distance; + } + } + }; volatile HotwordDetectionServiceIdentity mIdentity; @@ -1183,12 +1190,6 @@ final class HotwordDetectionConnection { } } - private void setProximityMeters(double proximityMeters) { - synchronized (mLock) { - mProximityMeters = proximityMeters; - } - } - private static void bestEffortClose(Closeable... closeables) { for (Closeable closeable : closeables) { bestEffortClose(closeable);