diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 0103acf..897dfbe 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -82,6 +82,7 @@
 import android.text.TextPaint;
 import android.util.AttributeSet;
 import android.util.FloatProperty;
+import android.util.Log;
 import android.util.SparseBooleanArray;
 import android.view.Gravity;
 import android.view.HapticFeedbackConstants;
@@ -128,8 +129,8 @@
 import com.android.launcher3.util.IntSet;
 import com.android.launcher3.util.MultiValueAlpha;
 import com.android.launcher3.util.ResourceBasedOverride.Overrides;
-import com.android.launcher3.util.SplitConfigurationOptions;
 import com.android.launcher3.util.RunnableList;
+import com.android.launcher3.util.SplitConfigurationOptions;
 import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
 import com.android.launcher3.util.Themes;
 import com.android.launcher3.util.TranslateEdgeEffect;
@@ -988,6 +989,7 @@
     @Override
     protected void onPageBeginTransition() {
         super.onPageBeginTransition();
+        Log.d("b/193125090", "Disabling ActionsView due to scrolling");
         mActionsView.updateDisabledFlags(OverviewActionsView.DISABLED_SCROLLING, true);
     }
 
@@ -995,7 +997,10 @@
     protected void onPageEndTransition() {
         super.onPageEndTransition();
         if (isClearAllHidden()) {
+            Log.d("b/193125090", "Enabling ActionsView due after scrolling");
             mActionsView.updateDisabledFlags(OverviewActionsView.DISABLED_SCROLLING, false);
+        } else {
+            Log.d("b/193125090", "Not enabling ActionsView due to ClearAll not hidden");
         }
         if (getNextPage() > 0) {
             setSwipeDownShouldLaunchApp(true);
@@ -1159,6 +1164,7 @@
         }
         if (mFocusedTaskId == -1 && getTaskViewCount() > 0) {
             mFocusedTaskId = getTaskViewAt(0).getTaskId();
+            Log.d("b/193125090", "applyLoadPlan - mFocusedTaskId: " + mFocusedTaskId);
         }
         updateTaskSize();
 
@@ -1475,14 +1481,22 @@
     }
 
     private void updateActionsViewScrollAlpha() {
+        Log.d("b/193125090", "updateActionsViewScrollAlpha - showAsGrid: " + showAsGrid());
         float scrollAlpha = 1f;
         if (showAsGrid()) {
             TaskView focusedTaskView = getFocusedTaskView();
+            Log.d("b/193125090",
+                    "updateActionsViewScrollAlpha - focusedTaskView: " + focusedTaskView);
             if (focusedTaskView != null) {
                 float scrollDiff = Math.abs(getScrollForPage(indexOfChild(focusedTaskView))
                         - mOrientationHandler.getPrimaryScroll(this));
                 float delta = (mGridSideMargin - scrollDiff) / (float) mGridSideMargin;
                 scrollAlpha = Utilities.boundToRange(delta, 0, 1);
+                Log.d("b/193125090",
+                        "updateActionsViewScrollAlpha - focusedTaskScroll: " + getScrollForPage(
+                                indexOfChild(focusedTaskView)) + ", primaryScroll: "
+                                + mOrientationHandler.getPrimaryScroll(this) + ", mGridSideMargin: "
+                                + mGridSideMargin);
             }
         }
         mActionsView.getScrollAlpha().setValue(scrollAlpha);
@@ -2742,6 +2756,7 @@
 
     @Override
     public void setVisibility(int visibility) {
+        Log.d("b/193125090", "setVisibility: " + visibility);
         super.setVisibility(visibility);
         if (mActionsView != null) {
             mActionsView.updateHiddenFlags(HIDDEN_NO_RECENTS, visibility != VISIBLE);
