Merge "Remove battery event time detection from StylusUpdater." into udc-dev
This commit is contained in:
@@ -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() {
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user