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

Commit 099d3ae0 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Add logging callback for back action"

parents a5250b91 04ff8bda
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -123,4 +123,10 @@ oneway interface IOverviewProxy {
     * Sent when the assistant changes how visible it is to the user.
     */
    void onAssistantVisibilityChanged(float visibility) = 14;

    /*
     * Sent when back is triggered.
     */
    void onBackAction(boolean completed, int downX, int downY, boolean isButton,
            boolean gestureSwipeLeft) = 15;
}
+11 −0
Original line number Diff line number Diff line
@@ -444,6 +444,17 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
        }
    }

    public void notifyBackAction(boolean completed, int downX, int downY, boolean isButton,
            boolean gestureSwipeLeft) {
        try {
            if (mOverviewProxy != null) {
                mOverviewProxy.onBackAction(completed, downX, downY, isButton, gestureSwipeLeft);
            }
        } catch (RemoteException e) {
            Log.e(TAG_OPS, "Failed to notify back action", e);
        }
    }

    /**
     * Sets the navbar region which can receive touch inputs
     */
+9 −2
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ import android.view.WindowManager;
import android.view.WindowManagerGlobal;

import com.android.systemui.R;
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;
@@ -102,6 +103,7 @@ public class EdgeBackGestureHandler implements DisplayListener {
            };

    private final Context mContext;
    private final OverviewProxyService mOverviewProxyService;

    private final Point mDisplaySize = new Point();
    private final int mDisplayId;
@@ -137,11 +139,12 @@ public class EdgeBackGestureHandler implements DisplayListener {
    private NavigationBarEdgePanel mEdgePanel;
    private WindowManager.LayoutParams mEdgePanelLp;

    public EdgeBackGestureHandler(Context context) {
    public EdgeBackGestureHandler(Context context, OverviewProxyService overviewProxyService) {
        mContext = context;
        mDisplayId = context.getDisplayId();
        mMainExecutor = context.getMainExecutor();
        mWm = context.getSystemService(WindowManager.class);
        mOverviewProxyService = overviewProxyService;

        mEdgeWidth = QuickStepContract.getEdgeSensitivityWidth(context);
        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
@@ -313,11 +316,15 @@ public class EdgeBackGestureHandler implements DisplayListener {
                float xDiff = ev.getX() - mDownPoint.x;
                boolean exceedsThreshold = mIsOnLeftEdge
                        ? (xDiff > mSwipeThreshold) : (-xDiff > mSwipeThreshold);
                if (exceedsThreshold && Math.abs(xDiff) > Math.abs(ev.getY() - mDownPoint.y)) {
                boolean performAction = exceedsThreshold
                        && Math.abs(xDiff) > Math.abs(ev.getY() - mDownPoint.y);
                if (performAction) {
                    // Perform back
                    sendEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
                    sendEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK);
                }
                mOverviewProxyService.notifyBackAction(performAction, (int) mDownPoint.x,
                        (int) mDownPoint.y, false /* isButton */, !mIsOnLeftEdge);
            }
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -285,7 +285,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
        mButtonDispatchers.put(R.id.menu_container, mContextualButtonGroup);
        mDeadZone = new DeadZone(this);

        mEdgeBackGestureHandler = new EdgeBackGestureHandler(context);
        mEdgeBackGestureHandler = new EdgeBackGestureHandler(context, mOverviewProxyService);
        mTintController = new NavBarTintController(this, getLightTransitionsController());

    }
+4 −0
Original line number Diff line number Diff line
@@ -308,6 +308,10 @@ public class KeyButtonView extends ImageView implements ButtonInterface {
        // TODO(b/122195391): Added logs to make sure sysui is sending back button events
        if (mCode == KeyEvent.KEYCODE_BACK && flags != KeyEvent.FLAG_LONG_PRESS) {
            Log.i(TAG, "Back button event: " + KeyEvent.actionToString(action));
            if (action == MotionEvent.ACTION_UP) {
                mOverviewProxyService.notifyBackAction((flags & KeyEvent.FLAG_CANCELED) == 0,
                        -1, -1, true /* isButton */, false /* gestureSwipeLeft */);
            }
        }
        final int repeatCount = (flags & KeyEvent.FLAG_LONG_PRESS) != 0 ? 1 : 0;
        final KeyEvent ev = new KeyEvent(mDownTime, when, action, mCode, repeatCount,