Merge changes from topic "presubmit-am-cf03cdfdc7444d7faac91b866c05eae8" into sc-v2-dev-plus-aosp

* changes:
  [automerge] Dispatch hover events through the input consumer proxy 2p: eff9a120c6
  Dispatch hover events through the input consumer proxy
This commit is contained in:
Winson Chung
2022-01-21 22:29:43 +00:00
committed by Android (Google) Code Review
3 changed files with 28 additions and 1 deletions

View File

@@ -99,6 +99,8 @@ public interface InputConsumer {
default void onMotionEvent(MotionEvent ev) { }
default void onHoverEvent(MotionEvent ev) { }
default void onKeyEvent(KeyEvent ev) { }
default void onInputEvent(InputEvent ev) {

View File

@@ -100,6 +100,13 @@ public class OverviewInputConsumer<S extends BaseState<S>, T extends StatefulAct
}
}
@Override
public void onHoverEvent(MotionEvent ev) {
if (ENABLE_QUICKSTEP_LIVE_TILE.get()) {
mActivity.dispatchGenericMotionEvent(ev);
}
}
@Override
public void onKeyEvent(KeyEvent ev) {
if (ENABLE_QUICKSTEP_LIVE_TILE.get()) {

View File

@@ -71,7 +71,16 @@ public class InputConsumerProxy {
private boolean onInputConsumerEvent(InputEvent ev) {
if (ev instanceof MotionEvent) {
onInputConsumerMotionEvent((MotionEvent) ev);
MotionEvent event = (MotionEvent) ev;
int action = event.getActionMasked();
boolean isHoverEvent = action == MotionEvent.ACTION_HOVER_ENTER
|| action == MotionEvent.ACTION_HOVER_MOVE
|| action == MotionEvent.ACTION_HOVER_EXIT;
if (isHoverEvent) {
onInputConsumerHoverEvent(event);
} else {
onInputConsumerMotionEvent(event);
}
} else if (ev instanceof KeyEvent) {
initInputConsumerIfNeeded();
mInputConsumer.onKeyEvent((KeyEvent) ev);
@@ -113,6 +122,15 @@ public class InputConsumerProxy {
return true;
}
private void onInputConsumerHoverEvent(MotionEvent ev) {
initInputConsumerIfNeeded();
if (mInputConsumer != null) {
SimpleOrientationTouchTransformer.INSTANCE.get(mContext).transform(ev,
mRotationSupplier.get());
mInputConsumer.onHoverEvent(ev);
}
}
public void destroy() {
if (mTouchInProgress) {
mDestroyPending = true;