public void reset() {
    mPhysicalState = RELEASING;
    mMomentaryPress = false;
    mLogicalState = INACTIVE;
    mActiveStateStartTime = 0L;
    mConsumed = false;
  }
@Test
  public void testReset() throws Exception {
    long millis = 1000;
    setCurrentTimeMillis(++millis);
    ModifierKeyState state = new ModifierKeyState(true);
    Assert.assertFalse(state.isActive());
    Assert.assertFalse(state.isLocked());
    Assert.assertFalse(state.isPressed());

    state.onPress();

    Assert.assertTrue(state.isActive());
    Assert.assertFalse(state.isLocked());
    Assert.assertTrue(state.isPressed());

    setCurrentTimeMillis(++millis);
    state.onRelease(DOUBLE_TAP_TIMEOUT, LONG_PRESS_TIMEOUT);

    Assert.assertTrue(state.isActive());
    Assert.assertFalse(state.isLocked());
    Assert.assertFalse(state.isPressed());

    state.reset();
    Assert.assertFalse(state.isActive());
    Assert.assertFalse(state.isLocked());
    Assert.assertFalse(state.isPressed());

    state.onPress();

    Assert.assertTrue(state.isActive());
    Assert.assertFalse(state.isLocked());
    Assert.assertTrue(state.isPressed());

    setCurrentTimeMillis(++millis);
    state.onRelease(DOUBLE_TAP_TIMEOUT, LONG_PRESS_TIMEOUT);

    Assert.assertTrue(state.isActive());
    Assert.assertFalse(state.isLocked());
    Assert.assertFalse(state.isPressed());
  }