Loading src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdater.java +7 −16 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -75,7 +74,6 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener, mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); mContext = context; mInputManager = context.getSystemService(InputManager.class); } /** Loading Loading @@ -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; mLastBatteryState = batteryState; mLastDetectedUsiId = deviceId; } else { mLastUsiSeenTime = -1; mLastDetectedUsiId = null; } forceUpdate(); } Loading Loading @@ -184,7 +177,7 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener, } private boolean shouldShowUsiPreference() { return isUsiConnectionValid() && !hasConnectedBluetoothStylusDevice(); return isUsiBatteryValid() && !hasConnectedBluetoothStylusDevice(); } @VisibleForTesting Loading @@ -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() { Loading tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdaterTest.java +10 −22 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -218,7 +218,7 @@ public class StylusDeviceUpdaterTest { mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(), batteryState); assertThat(mStylusDeviceUpdater.isUsiConnectionValid()).isTrue(); assertThat(mStylusDeviceUpdater.isUsiBatteryValid()).isTrue(); } @Test Loading @@ -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 Loading Loading
src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdater.java +7 −16 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -75,7 +74,6 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener, mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); mContext = context; mInputManager = context.getSystemService(InputManager.class); } /** Loading Loading @@ -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; mLastBatteryState = batteryState; mLastDetectedUsiId = deviceId; } else { mLastUsiSeenTime = -1; mLastDetectedUsiId = null; } forceUpdate(); } Loading Loading @@ -184,7 +177,7 @@ public class StylusDeviceUpdater implements InputManager.InputDeviceListener, } private boolean shouldShowUsiPreference() { return isUsiConnectionValid() && !hasConnectedBluetoothStylusDevice(); return isUsiBatteryValid() && !hasConnectedBluetoothStylusDevice(); } @VisibleForTesting Loading @@ -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() { Loading
tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdaterTest.java +10 −22 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -218,7 +218,7 @@ public class StylusDeviceUpdaterTest { mStylusDeviceUpdater.onBatteryStateChanged(1, SystemClock.uptimeMillis(), batteryState); assertThat(mStylusDeviceUpdater.isUsiConnectionValid()).isTrue(); assertThat(mStylusDeviceUpdater.isUsiBatteryValid()).isTrue(); } @Test Loading @@ -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 Loading