Merge "Dispatch hover events through the input consumer proxy" into sc-v2-dev

This commit is contained in:
Winson Chung 2022-01-21 22:29:43 +00:00 committed by Android (Google) Code Review
commit a84f86f254
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;