From a7e357e3391a30ca75596a559cc955208b61e586 Mon Sep 17 00:00:00 2001 From: Fengjiang Li Date: Wed, 4 Sep 2024 14:46:37 -0700 Subject: [PATCH] [-1] Show toast when user trys to swipe to -1 on extreme battery saver mode Fix: 355485335 Flag: com.android.launcher3.use_activity_overlay Test: manual - record a video Change-Id: I79a3ece2fb2c0d1eddac0e4f91274ffe222e317f --- src/com/android/launcher3/Launcher.java | 1 + src/com/android/launcher3/PagedView.java | 11 +++++++++++ src/com/android/launcher3/Workspace.java | 5 +++++ .../plugins/shared/LauncherOverlayManager.java | 2 ++ 4 files changed, 19 insertions(+) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index bafb528dd1..2eda54d962 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3036,6 +3036,7 @@ public class Launcher extends StatefulActivity return mPopupDataProvider.getDotInfoForItem(info); } + @NonNull public LauncherOverlayManager getOverlayManager() { return mOverlayManager; } diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 365fbd3919..0ec3b79071 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -1463,6 +1463,15 @@ public abstract class PagedView extends ViewGrou mEdgeGlowLeft.onFlingVelocity(velocity); mEdgeGlowRight.onFlingVelocity(velocity); } + + // Detect if user tries to swipe to -1 page but gets disallowed by checking if there was + // left-over values in mEdgeGlowLeft (or mEdgeGlowRight in RLT). + final int layoutDir = getLayoutDirection(); + if ((mEdgeGlowLeft.getDistance() > 0 && layoutDir == LAYOUT_DIRECTION_LTR) + || (mEdgeGlowRight.getDistance() > 0 && layoutDir == LAYOUT_DIRECTION_RTL)) { + onDisallowSwipeToMinusOnePage(); + } + mEdgeGlowLeft.onRelease(ev); mEdgeGlowRight.onRelease(ev); // End any intermediate reordering states @@ -1487,6 +1496,8 @@ public abstract class PagedView extends ViewGrou return true; } + protected void onDisallowSwipeToMinusOnePage() {} + protected void onNotSnappingToPageInFreeScroll() { } /** diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 255260e8af..0e9c8610e6 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1123,6 +1123,11 @@ public class Workspace extends PagedView return super.onTouchEvent(ev); } + @Override + protected void onDisallowSwipeToMinusOnePage() { + mLauncher.getOverlayManager().onDisallowSwipeToMinusOnePage(); + } + /** * Called directly from a CellLayout (not by the framework), after we've been added as a * listener via setOnInterceptTouchEventListener(). This allows us to tell the CellLayout diff --git a/src_plugins/com/android/systemui/plugins/shared/LauncherOverlayManager.java b/src_plugins/com/android/systemui/plugins/shared/LauncherOverlayManager.java index a940774ff0..eaa9ef0b20 100644 --- a/src_plugins/com/android/systemui/plugins/shared/LauncherOverlayManager.java +++ b/src_plugins/com/android/systemui/plugins/shared/LauncherOverlayManager.java @@ -49,6 +49,8 @@ public interface LauncherOverlayManager { default void onActivityDestroyed() { } + default void onDisallowSwipeToMinusOnePage() {} + /** * @deprecated use LauncherOverlayTouchProxy directly */