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

Commit f0bff25b authored by Pat Manning's avatar Pat Manning Committed by Android (Google) Code Review
Browse files

Merge "Unstash taskbar after timeout when cursor hovers bottom edge." into main

parents 69a73630 5f838c45
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import android.content.Context;
import android.content.res.Resources;
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Handler;
import android.os.Looper;
import android.view.InputDevice;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
@@ -52,6 +54,9 @@ import com.android.systemui.shared.system.InputMonitorCompat;
 */
public class TaskbarUnstashInputConsumer extends DelegateInputConsumer {

    private static final int HOVER_TASKBAR_UNSTASH_TIMEOUT = 500;
    private static final Handler sUnstashHandler = new Handler(Looper.getMainLooper());

    private final TaskbarActivityContext mTaskbarActivityContext;
    private final OverviewCommandHelper mOverviewCommandHelper;
    private final float mUnstashArea;
@@ -308,16 +313,25 @@ public class TaskbarUnstashInputConsumer extends DelegateInputConsumer {
                dp.heightPx);

        if (mBottomEdgeBounds.contains(x, y)) {
            // If hovering stashed taskbar and then hover screen bottom edge, unstash it.
            // start a single unstash timeout if hovering bottom edge under the hinted taskbar.
            if (!sUnstashHandler.hasMessagesOrCallbacks()) {
                sUnstashHandler.postDelayed(() -> {
                    mTaskbarActivityContext.onSwipeToUnstashTaskbar();
                    mIsStashedTaskbarHovered = false;
                }, HOVER_TASKBAR_UNSTASH_TIMEOUT);
            }
        } else if (!isStashedTaskbarHovered(x, y)) {
            // If exit hovering stashed taskbar, remove hint.
            // If exit hovering stashed taskbar, remove hint and clear pending unstash calls.
            sUnstashHandler.removeCallbacksAndMessages(null);
            startStashedTaskbarHover(/* isHovered = */ false);
        } else {
            sUnstashHandler.removeCallbacksAndMessages(null);
        }
    }

    private void updateUnhoveredTaskbarState(int x, int y) {
        sUnstashHandler.removeCallbacksAndMessages(null);

        DeviceProfile dp = mTaskbarActivityContext.getDeviceProfile();
        mBottomEdgeBounds.set(
                0,