Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ebf06975 authored by Vania Januar's avatar Vania Januar Committed by Android (Google) Code Review
Browse files

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

parents 16b4fb33 4837c05b
Loading
Loading
Loading
Loading
+7 −16
Original line number Diff line number Diff line
@@ -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;
        mLastBatteryState = batteryState;
        mLastDetectedUsiId = deviceId;
        } else {
            mLastUsiSeenTime = -1;
            mLastDetectedUsiId = null;
        }
        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() {
+10 −22
Original line number Diff line number Diff line
@@ -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