diff --git a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java index 74e73754df..0f25ba1da6 100644 --- a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.taskbar; +import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN; + import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; @@ -36,6 +38,7 @@ import com.android.launcher3.util.Executors; import com.android.launcher3.util.MultiPropertyFactory; import com.android.launcher3.util.MultiValueAlpha; import com.android.systemui.shared.navigationbar.RegionSamplingHelper; +import com.android.systemui.shared.system.QuickStepContract; import java.io.PrintWriter; @@ -78,6 +81,10 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT private float mStartProgressForNextRevealAnim; private boolean mWasLastRevealAnimReversed; + // States that affect whether region sampling is enabled or not + private boolean mIsStashed; + private boolean mTaskbarHidden; + public StashedHandleViewController(TaskbarActivityContext activity, StashedHandleView stashedHandleView) { mActivity = activity; @@ -218,7 +225,8 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT /** Called when taskbar is stashed or unstashed. */ public void onIsStashedChanged(boolean isStashed) { - mRegionSamplingHelper.setWindowVisible(isStashed); + mIsStashed = isStashed; + updateRegionSamplingWindowVisibility(); if (isStashed) { mStashedHandleView.updateSampledRegion(mStashedHandleBounds); mRegionSamplingHelper.start(mStashedHandleView.getSampledRegion()); @@ -247,6 +255,15 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT homeDisabled ? 0 : 1); } + public void updateStateForSysuiFlags(int systemUiStateFlags) { + mTaskbarHidden = (systemUiStateFlags & SYSUI_STATE_NAV_BAR_HIDDEN) != 0; + updateRegionSamplingWindowVisibility(); + } + + private void updateRegionSamplingWindowVisibility() { + mRegionSamplingHelper.setWindowVisible(mIsStashed && !mTaskbarHidden); + } + public boolean isStashedHandleVisible() { return mStashedHandleView.getVisibility() == View.VISIBLE; } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index fcc95fcf64..c0c14a31e3 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -570,6 +570,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { || isNavBarKidsModeActive()); mControllers.stashedHandleViewController.setIsHomeButtonDisabled( mControllers.navbarButtonsViewController.isHomeDisabled()); + mControllers.stashedHandleViewController.updateStateForSysuiFlags(systemUiStateFlags); mControllers.taskbarKeyguardController.updateStateForSysuiFlags(systemUiStateFlags); mControllers.taskbarStashController.updateStateForSysuiFlags( systemUiStateFlags, fromInit || !isUserSetupComplete());