Refactor ProximityUpdateCallbackInternal to interface
Refactor ProximityUpdateCallbackInternal to interface. Also making sure that the service unbinding happens when clear Attention Service command is received. Bug: 214395649 Test: atest CtsVoiceInteractionTestCases, atest CtsAttentionServiceDeviceTestCases Change-Id: If8c23a9c68952e323fcb8eeb681e86b0e6119b18
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -192,14 +192,7 @@ final class HotwordDetectionConnection {
|
||||
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;
|
||||
@@ -1190,6 +1183,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);
|
||||
|
||||
Reference in New Issue
Block a user