Look for matching dynamic sensor on reconnect
Change-Id: I5fe7f211a41aa80367c0bc6a36654c79b57d5633
Fixes: 31975068
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/sensors/DynamicSensorDiscoveryTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/sensors/DynamicSensorDiscoveryTestActivity.java
index dd9c752..df3a67c 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/sensors/DynamicSensorDiscoveryTestActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/sensors/DynamicSensorDiscoveryTestActivity.java
@@ -88,7 +88,7 @@
showUserMessage(String.format("Please connect an external sensor to device in %d seconds.",
CONNECTION_TIMEOUT_SEC));
- Assert.assertTrue("Cannot detect sensor connection.", mCallback.waitForConnection());
+ Assert.assertTrue("Cannot detect sensor connection.", mCallback.waitForConnection(null));
mSensorConnected = true;
mSensorId = mCallback.getSensorId();
return "OnConnect: Success";
@@ -143,7 +143,8 @@
showUserMessage(String.format("Please connect the same sensor that was previously " +
"connected in %d seconds", CONNECTION_TIMEOUT_SEC));
- Assert.assertTrue("Cannot detect sensor reconnection.", mCallback.waitForConnection());
+ Assert.assertTrue("Cannot detect sensor reconnection.",
+ mCallback.waitForConnection(mSensorId));
Integer sensorId = mCallback.getSensorId();
boolean match = mSensorId != null && sensorId != null &&
@@ -155,16 +156,19 @@
private class Callback extends SensorManager.DynamicSensorCallback {
private Sensor mSensor = null;
+ private Integer mExpectSensorId = null;
private CountDownLatch mConnectLatch;
private CountDownLatch mDisconnectLatch;
@Override
public void onDynamicSensorConnected(Sensor sensor) {
- mSensor = sensor;
- Log.d(TAG, "Sensor Connected: " + mSensor);
+ Log.d(TAG, "Sensor Connected: " + sensor);
- if (mConnectLatch != null) {
- mConnectLatch.countDown();
+ if (mExpectSensorId == null || mExpectSensorId == sensor.getId()) {
+ mSensor = sensor;
+ if (mConnectLatch != null) {
+ mConnectLatch.countDown();
+ }
}
}
@@ -178,8 +182,9 @@
}
}
- public boolean waitForConnection() {
+ public boolean waitForConnection(Integer sensorId) {
boolean ret;
+ mExpectSensorId = sensorId;
mConnectLatch = new CountDownLatch(1);
try {
ret = mConnectLatch.await(CONNECTION_TIMEOUT_SEC, TimeUnit.SECONDS);