diff options
| author | 2019-05-30 14:52:39 -0700 | |
|---|---|---|
| committer | 2019-05-30 14:52:39 -0700 | |
| commit | 662c41bf5315bca7adefa58f60855a901b050bbc (patch) | |
| tree | c251d128ba18d28f4cacf3fcb6ff841c036417dd /packages/SystemUI/src | |
| parent | 143cc8366810d419fbd844416854443d0c146fc2 (diff) | |
| parent | 2fb4cb55f057028e71dd106c33969786403d3fc9 (diff) | |
Merge "Use unbatched inputeventreceiver, reduce touchslop" into qt-dev
am: 2fb4cb55f0
Change-Id: Ia2b1bcb2c98adac680bbe223b8818b1a62338132
Diffstat (limited to 'packages/SystemUI/src')
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java | 28 | 
1 files changed, 20 insertions, 8 deletions
| diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java index f2218651d7c7..05a86fa9d7ea 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java @@ -33,13 +33,14 @@ import android.os.RemoteException;  import android.os.SystemClock;  import android.util.Log;  import android.util.MathUtils; -import android.view.Choreographer;  import android.view.Gravity;  import android.view.IPinnedStackController;  import android.view.IPinnedStackListener;  import android.view.ISystemGestureExclusionListener; +import android.view.InputChannel;  import android.view.InputDevice;  import android.view.InputEvent; +import android.view.InputEventReceiver;  import android.view.InputMonitor;  import android.view.KeyCharacterMap;  import android.view.KeyEvent; @@ -53,7 +54,6 @@ import com.android.systemui.Dependency;  import com.android.systemui.R;  import com.android.systemui.bubbles.BubbleController;  import com.android.systemui.recents.OverviewProxyService; -import com.android.systemui.shared.system.InputChannelCompat.InputEventReceiver;  import com.android.systemui.shared.system.QuickStepContract;  import com.android.systemui.shared.system.WindowManagerWrapper; @@ -165,12 +165,14 @@ public class EdgeBackGestureHandler implements DisplayListener {          mEdgeWidth = res.getDimensionPixelSize(                  com.android.internal.R.dimen.config_backGestureInset); -        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); +        // Reduce the default touch slop to ensure that we can intercept the gesture +        // before the app starts to react to it. +        // TODO(b/130352502) Tune this value and extract into a constant +        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop() * 0.75f;          mLongPressTimeout = ViewConfiguration.getLongPressTimeout();          mNavBarHeight = res.getDimensionPixelSize(R.dimen.navigation_bar_frame_height); -        mMinArrowPosition = res.getDimensionPixelSize( -                R.dimen.navigation_edge_arrow_min_y); +        mMinArrowPosition = res.getDimensionPixelSize(R.dimen.navigation_edge_arrow_min_y);          mFingerOffset = res.getDimensionPixelSize(R.dimen.navigation_edge_finger_offset);      } @@ -250,9 +252,8 @@ public class EdgeBackGestureHandler implements DisplayListener {              // Register input event receiver              mInputMonitor = InputManager.getInstance().monitorGestureInput(                      "edge-swipe", mDisplayId); -            mInputEventReceiver = new InputEventReceiver(mInputMonitor.getInputChannel(), -                    Looper.getMainLooper(), Choreographer.getMainThreadInstance(), -                    this::onInputEvent); +            mInputEventReceiver = new SysUiInputEventReceiver( +                    mInputMonitor.getInputChannel(), Looper.getMainLooper());              // Add a nav bar panel window              mEdgePanel = new NavigationBarEdgePanel(mContext); @@ -440,4 +441,15 @@ public class EdgeBackGestureHandler implements DisplayListener {          }          InputManager.getInstance().injectInputEvent(ev, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);      } + +    class SysUiInputEventReceiver extends InputEventReceiver { +        SysUiInputEventReceiver(InputChannel channel, Looper looper) { +            super(channel, looper); +        } + +        public void onInputEvent(InputEvent event) { +            EdgeBackGestureHandler.this.onInputEvent(event); +            finishInputEvent(event, true); +        } +    }  } |