Merge "Remove battery event time detection from StylusUpdater." into udc-dev

This commit is contained in:
Vania Januar
2023-03-09 10:32:51 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 38 deletions

View File

@@ -22,7 +22,6 @@ import android.hardware.input.InputManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.SystemClock;
import android.util.Log;
import android.view.InputDevice;
@@ -57,11 +56,11 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
private final InputManager mInputManager;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private long mLastUsiSeenTime = 0;
private Context mContext;
@VisibleForTesting
Integer mLastDetectedUsiId;
BatteryState mLastBatteryState;
@VisibleForTesting
Preference mUsiPreference;
@@ -75,7 +74,6 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
mContext = context;
mInputManager = context.getSystemService(InputManager.class);
}
/**
@@ -132,13 +130,8 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
@Override
public void onBatteryStateChanged(int deviceId, long eventTimeMillis,
@NonNull BatteryState batteryState) {
if (batteryState.isPresent()) {
mLastUsiSeenTime = eventTimeMillis;
mLastDetectedUsiId = deviceId;
} else {
mLastUsiSeenTime = -1;
mLastDetectedUsiId = null;
}
mLastBatteryState = batteryState;
mLastDetectedUsiId = deviceId;
forceUpdate();
}
@@ -184,7 +177,7 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
}
private boolean shouldShowUsiPreference() {
return isUsiConnectionValid() && !hasConnectedBluetoothStylusDevice();
return isUsiBatteryValid() && !hasConnectedBluetoothStylusDevice();
}
@VisibleForTesting
@@ -206,11 +199,9 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
}
@VisibleForTesting
boolean isUsiConnectionValid() {
// battery listener uses uptimeMillis as its eventTime
long currentTime = SystemClock.uptimeMillis();
long usiValidityDuration = 60 * 60 * 1000; // 1 hour
return mLastUsiSeenTime > 0 && currentTime - usiValidityDuration <= mLastUsiSeenTime;
boolean isUsiBatteryValid() {
return mLastBatteryState != null
&& mLastBatteryState.isPresent() && mLastBatteryState.getCapacity() > 0f;
}
private void launchDeviceDetails() {

View File

@@ -127,7 +127,7 @@ public class StylusDeviceUpdaterTest {
@Test
public void click_usiPreference_launchUsiDetailsPage() {
doReturn(mSettingsActivity).when(mDashboardFragment).getContext();
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
mStylusDeviceUpdater.forceUpdate();
mStylusDeviceUpdater.mLastDetectedUsiId = 1;
@@ -144,7 +144,7 @@ public class StylusDeviceUpdaterTest {
@Test
public void forceUpdate_addsUsiPreference_validUsiDevice() {
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
mStylusDeviceUpdater.forceUpdate();
@@ -154,7 +154,7 @@ public class StylusDeviceUpdaterTest {
@Test
public void forceUpdate_doesNotAddPreference_invalidUsiDevice() {
doReturn(false).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(false).when(mStylusDeviceUpdater).isUsiBatteryValid();
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
mStylusDeviceUpdater.forceUpdate();
@@ -164,12 +164,12 @@ public class StylusDeviceUpdaterTest {
@Test
public void forceUpdate_removesUsiPreference_existingPreference_invalidUsiDevice() {
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
mStylusDeviceUpdater.forceUpdate();
doReturn(false).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(false).when(mStylusDeviceUpdater).isUsiBatteryValid();
mStylusDeviceUpdater.forceUpdate();
assertThat(mStylusDeviceUpdater.mUsiPreference).isNull();
@@ -177,7 +177,7 @@ public class StylusDeviceUpdaterTest {
@Test
public void forceUpdate_doesNotAddUsiPreference_bluetoothStylusConnected() {
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
mStylusDeviceUpdater.forceUpdate();
@@ -187,7 +187,7 @@ public class StylusDeviceUpdaterTest {
@Test
public void forceUpdate_addsUsiPreference_bluetoothStylusDisconnected() {
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
mStylusDeviceUpdater.forceUpdate();
@@ -199,7 +199,7 @@ public class StylusDeviceUpdaterTest {
@Test
public void forceUpdate_removesUsiPreference_existingPreference_bluetoothStylusConnected() {
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
mStylusDeviceUpdater.forceUpdate();
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
@@ -218,7 +218,7 @@ public class StylusDeviceUpdaterTest {
mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(),
batteryState);
assertThat(mStylusDeviceUpdater.isUsiConnectionValid()).isTrue();
assertThat(mStylusDeviceUpdater.isUsiBatteryValid()).isTrue();
}
@Test
@@ -230,19 +230,7 @@ public class StylusDeviceUpdaterTest {
mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(),
batteryState);
assertThat(mStylusDeviceUpdater.isUsiConnectionValid()).isFalse();
}
@Test
public void onBatteryStateChanged_ddetectsInvalidUsi_staleBatteryEventTime() {
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
BatteryState batteryState = mock(BatteryState.class);
doReturn(true).when(batteryState).isPresent();
doReturn(0.5f).when(batteryState).getCapacity();
mStylusDeviceUpdater.onBatteryStateChanged(1, 0, batteryState);
assertThat(mStylusDeviceUpdater.isUsiConnectionValid()).isFalse();
assertThat(mStylusDeviceUpdater.isUsiBatteryValid()).isFalse();
}
@Test