Merge "Fix crash when hotseat icon is dragged onto Workspace" into sc-v2-dev
diff --git a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
index 1b28c53..ac779b1 100644
--- a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
+++ b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java
@@ -53,13 +53,15 @@
@IntDef(flag = true, value = {
HIDDEN_NON_ZERO_ROTATION,
HIDDEN_NO_TASKS,
- HIDDEN_NO_RECENTS})
+ HIDDEN_NO_RECENTS,
+ HIDDEN_FOCUSED_SCROLL})
@Retention(RetentionPolicy.SOURCE)
public @interface ActionsHiddenFlags { }
public static final int HIDDEN_NON_ZERO_ROTATION = 1 << 0;
public static final int HIDDEN_NO_TASKS = 1 << 1;
public static final int HIDDEN_NO_RECENTS = 1 << 2;
+ public static final int HIDDEN_FOCUSED_SCROLL = 1 << 3;
@IntDef(flag = true, value = {
DISABLED_SCROLLING,
@@ -76,7 +78,6 @@
private static final int INDEX_VISIBILITY_ALPHA = 1;
private static final int INDEX_FULLSCREEN_ALPHA = 2;
private static final int INDEX_HIDDEN_FLAGS_ALPHA = 3;
- private static final int INDEX_SCROLL_ALPHA = 4;
private final MultiValueAlpha mMultiValueAlpha;
private View mSplitButton;
@@ -196,10 +197,6 @@
return mMultiValueAlpha.getProperty(INDEX_FULLSCREEN_ALPHA);
}
- public AlphaProperty getScrollAlpha() {
- return mMultiValueAlpha.getProperty(INDEX_SCROLL_ALPHA);
- }
-
private void updateHorizontalPadding() {
setPadding(mInsets.left, 0, mInsets.right, 0);
}
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 8c37644..3b962d8 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -29,7 +29,6 @@
import static com.android.launcher3.LauncherState.BACKGROUND_APP;
import static com.android.launcher3.QuickstepTransitionManager.RECENTS_LAUNCH_DURATION;
import static com.android.launcher3.Utilities.EDGE_NAV_BAR;
-import static com.android.launcher3.Utilities.boundToRange;
import static com.android.launcher3.Utilities.mapToRange;
import static com.android.launcher3.Utilities.squaredHypot;
import static com.android.launcher3.Utilities.squaredTouchSlop;
@@ -1691,28 +1690,28 @@
// After scrolling, update the visible task's data
loadVisibleTaskData(TaskView.FLAG_UPDATE_ALL);
-
- // After scrolling, update ActionsView's visibility.
- updateActionsViewScrollAlpha();
}
+ // Update ActionsView's visibility when scroll changes.
+ updateActionsViewFocusedScroll();
+
// Update the high res thumbnail loader state
mModel.getThumbnailCache().getHighResLoadingState().setFlingingFast(isFlingingFast);
return scrolling;
}
- private void updateActionsViewScrollAlpha() {
- float scrollAlpha = 1f;
+ private void updateActionsViewFocusedScroll() {
+ boolean hiddenFocusedScroll;
if (showAsGrid()) {
TaskView focusedTaskView = getFocusedTaskView();
- 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);
- }
+ hiddenFocusedScroll = focusedTaskView == null
+ || getScrollForPage(indexOfChild(focusedTaskView))
+ != mOrientationHandler.getPrimaryScroll(this);
+ } else {
+ hiddenFocusedScroll = false;
}
- mActionsView.getScrollAlpha().setValue(scrollAlpha);
+ mActionsView.updateHiddenFlags(OverviewActionsView.HIDDEN_FOCUSED_SCROLL,
+ hiddenFocusedScroll);
}
/**
@@ -3001,6 +3000,10 @@
: getBottomRowIdArray();
int snappedIndex = taskViewIdArray.indexOf(snappedTaskViewId);
taskViewIdArray.removeValue(dismissedTaskViewId);
+ if (finalNextFocusedTaskView != null) {
+ taskViewIdArray.removeValue(
+ finalNextFocusedTaskView.getTaskViewId());
+ }
if (snappedIndex < taskViewIdArray.size()) {
taskViewIdToSnapTo = taskViewIdArray.get(snappedIndex);
} else if (snappedIndex == taskViewIdArray.size()) {
@@ -3089,9 +3092,9 @@
}
}
setCurrentPage(pageToSnapTo);
- // Update various scroll depedent UI.
+ // Update various scroll-dependent UI.
dispatchScrollChanged();
- updateActionsViewScrollAlpha();
+ updateActionsViewFocusedScroll();
if (isClearAllHidden()) {
mActionsView.updateDisabledFlags(OverviewActionsView.DISABLED_SCROLLING,
false);
@@ -4560,7 +4563,7 @@
public void setOverviewGridEnabled(boolean overviewGridEnabled) {
if (mOverviewGridEnabled != overviewGridEnabled) {
mOverviewGridEnabled = overviewGridEnabled;
- updateActionsViewScrollAlpha();
+ updateActionsViewFocusedScroll();
// Request layout to ensure scroll position is recalculated with updated mGridProgress.
requestLayout();
}