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.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.SystemClock;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.InputDevice;
|
import android.view.InputDevice;
|
||||||
|
|
||||||
@@ -57,11 +56,11 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
|
|||||||
private final InputManager mInputManager;
|
private final InputManager mInputManager;
|
||||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
|
|
||||||
private long mLastUsiSeenTime = 0;
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
Integer mLastDetectedUsiId;
|
Integer mLastDetectedUsiId;
|
||||||
|
BatteryState mLastBatteryState;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
Preference mUsiPreference;
|
Preference mUsiPreference;
|
||||||
@@ -75,7 +74,6 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
|
|||||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mInputManager = context.getSystemService(InputManager.class);
|
mInputManager = context.getSystemService(InputManager.class);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -132,13 +130,8 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
|
|||||||
@Override
|
@Override
|
||||||
public void onBatteryStateChanged(int deviceId, long eventTimeMillis,
|
public void onBatteryStateChanged(int deviceId, long eventTimeMillis,
|
||||||
@NonNull BatteryState batteryState) {
|
@NonNull BatteryState batteryState) {
|
||||||
if (batteryState.isPresent()) {
|
mLastBatteryState = batteryState;
|
||||||
mLastUsiSeenTime = eventTimeMillis;
|
mLastDetectedUsiId = deviceId;
|
||||||
mLastDetectedUsiId = deviceId;
|
|
||||||
} else {
|
|
||||||
mLastUsiSeenTime = -1;
|
|
||||||
mLastDetectedUsiId = null;
|
|
||||||
}
|
|
||||||
forceUpdate();
|
forceUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,7 +177,7 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean shouldShowUsiPreference() {
|
private boolean shouldShowUsiPreference() {
|
||||||
return isUsiConnectionValid() && !hasConnectedBluetoothStylusDevice();
|
return isUsiBatteryValid() && !hasConnectedBluetoothStylusDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -206,11 +199,9 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
boolean isUsiConnectionValid() {
|
boolean isUsiBatteryValid() {
|
||||||
// battery listener uses uptimeMillis as its eventTime
|
return mLastBatteryState != null
|
||||||
long currentTime = SystemClock.uptimeMillis();
|
&& mLastBatteryState.isPresent() && mLastBatteryState.getCapacity() > 0f;
|
||||||
long usiValidityDuration = 60 * 60 * 1000; // 1 hour
|
|
||||||
return mLastUsiSeenTime > 0 && currentTime - usiValidityDuration <= mLastUsiSeenTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void launchDeviceDetails() {
|
private void launchDeviceDetails() {
|
||||||
|
@@ -127,7 +127,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
@Test
|
@Test
|
||||||
public void click_usiPreference_launchUsiDetailsPage() {
|
public void click_usiPreference_launchUsiDetailsPage() {
|
||||||
doReturn(mSettingsActivity).when(mDashboardFragment).getContext();
|
doReturn(mSettingsActivity).when(mDashboardFragment).getContext();
|
||||||
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
mStylusDeviceUpdater.mLastDetectedUsiId = 1;
|
mStylusDeviceUpdater.mLastDetectedUsiId = 1;
|
||||||
@@ -144,7 +144,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void forceUpdate_addsUsiPreference_validUsiDevice() {
|
public void forceUpdate_addsUsiPreference_validUsiDevice() {
|
||||||
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
|
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
@@ -154,7 +154,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void forceUpdate_doesNotAddPreference_invalidUsiDevice() {
|
public void forceUpdate_doesNotAddPreference_invalidUsiDevice() {
|
||||||
doReturn(false).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(false).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
|
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
@@ -164,12 +164,12 @@ public class StylusDeviceUpdaterTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void forceUpdate_removesUsiPreference_existingPreference_invalidUsiDevice() {
|
public void forceUpdate_removesUsiPreference_existingPreference_invalidUsiDevice() {
|
||||||
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
|
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
|
|
||||||
doReturn(false).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(false).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
|
|
||||||
assertThat(mStylusDeviceUpdater.mUsiPreference).isNull();
|
assertThat(mStylusDeviceUpdater.mUsiPreference).isNull();
|
||||||
@@ -177,7 +177,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void forceUpdate_doesNotAddUsiPreference_bluetoothStylusConnected() {
|
public void forceUpdate_doesNotAddUsiPreference_bluetoothStylusConnected() {
|
||||||
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
|
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
@@ -187,7 +187,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void forceUpdate_addsUsiPreference_bluetoothStylusDisconnected() {
|
public void forceUpdate_addsUsiPreference_bluetoothStylusDisconnected() {
|
||||||
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void forceUpdate_removesUsiPreference_existingPreference_bluetoothStylusConnected() {
|
public void forceUpdate_removesUsiPreference_existingPreference_bluetoothStylusConnected() {
|
||||||
doReturn(true).when(mStylusDeviceUpdater).isUsiConnectionValid();
|
doReturn(true).when(mStylusDeviceUpdater).isUsiBatteryValid();
|
||||||
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(false).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
mStylusDeviceUpdater.forceUpdate();
|
mStylusDeviceUpdater.forceUpdate();
|
||||||
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
doReturn(true).when(mStylusDeviceUpdater).hasConnectedBluetoothStylusDevice();
|
||||||
@@ -218,7 +218,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(),
|
mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(),
|
||||||
batteryState);
|
batteryState);
|
||||||
|
|
||||||
assertThat(mStylusDeviceUpdater.isUsiConnectionValid()).isTrue();
|
assertThat(mStylusDeviceUpdater.isUsiBatteryValid()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -230,19 +230,7 @@ public class StylusDeviceUpdaterTest {
|
|||||||
mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(),
|
mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(),
|
||||||
batteryState);
|
batteryState);
|
||||||
|
|
||||||
assertThat(mStylusDeviceUpdater.isUsiConnectionValid()).isFalse();
|
assertThat(mStylusDeviceUpdater.isUsiBatteryValid()).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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user