diff options
author | Tony Wickham <twickham@google.com> | 2016-09-23 00:34:53 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-09-23 00:34:53 +0000 |
commit | c980735560ddc21544203f83663e9ca1108cf80c (patch) | |
tree | d8afdcf54f135670a834b20093fbf1341188e9fc | |
parent | 39ce3d119b336bb3f2556a103072edd283641652 (diff) | |
parent | dbf08b4aee0bd9c296552485a34f15f997a56f3f (diff) | |
download | android_packages_apps_Trebuchet-c980735560ddc21544203f83663e9ca1108cf80c.tar.gz android_packages_apps_Trebuchet-c980735560ddc21544203f83663e9ca1108cf80c.tar.bz2 android_packages_apps_Trebuchet-c980735560ddc21544203f83663e9ca1108cf80c.zip |
Merge "Stop jumping to workspace from hotseat on quick drop." into ub-launcher3-calgary-polish
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 83 |
1 files changed, 42 insertions, 41 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index c499beeb3..0e25b1ef9 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -25,7 +25,6 @@ import android.animation.PropertyValuesHolder; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.annotation.SuppressLint; -import android.annotation.TargetApi; import android.app.WallpaperManager; import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetProviderInfo; @@ -39,7 +38,6 @@ import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.drawable.Drawable; -import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Parcelable; @@ -2800,9 +2798,7 @@ public class Workspace extends PagedView mAddToExistingFolderOnDrop = false; mDropToLayout = null; - CellLayout layout = getCurrentDropLayout(); - setCurrentDropLayout(layout); - setCurrentDragOverlappingLayout(layout); + setDropLayoutForDragObject(d); if (!workspaceInModalState() && FeatureFlags.LAUNCHER3_LEGACY_WORKSPACE_DND) { mLauncher.getDragLayer().showPageHints(); @@ -3061,7 +3057,6 @@ public class Workspace extends PagedView // Skip drag over events while we are dragging over side pages if (mInScrollArea || !transitionStateShouldAllowDrop()) return; - CellLayout layout = null; ItemInfo item = d.dragInfo; if (item == null) { if (ProviderConfig.IS_DOGFOOD_BUILD) { @@ -3075,43 +3070,15 @@ public class Workspace extends PagedView mDragViewVisualCenter = d.getVisualCenter(mDragViewVisualCenter); final View child = (mDragInfo == null) ? null : mDragInfo.cell; - // Identify whether we have dragged over a side page - if (workspaceInModalState()) { - if (mLauncher.getHotseat() != null && !isDragWidget(d)) { - if (isPointInSelfOverHotseat(d.x, d.y)) { - layout = mLauncher.getHotseat().getLayout(); - } - } - if (layout == null) { - layout = findMatchingPageForDragOver(d.dragView, d.x, d.y, false); - } - if (layout != mDragTargetLayout) { - setCurrentDropLayout(layout); - setCurrentDragOverlappingLayout(layout); - - boolean isInSpringLoadedMode = (mState == State.SPRING_LOADED); - if (isInSpringLoadedMode) { - if (mLauncher.isHotseatLayout(layout)) { - mSpringLoadedDragController.cancel(); - } else { - mSpringLoadedDragController.setAlarm(mDragTargetLayout); - } - } - } - } else { - // Test to see if we are over the hotseat otherwise just use the current page - if (mLauncher.getHotseat() != null && !isDragWidget(d)) { - if (isPointInSelfOverHotseat(d.x, d.y)) { - layout = mLauncher.getHotseat().getLayout(); + if (setDropLayoutForDragObject(d)) { + boolean isInSpringLoadedMode = (mState == State.SPRING_LOADED); + if (isInSpringLoadedMode) { + if (mLauncher.isHotseatLayout(mDragTargetLayout)) { + mSpringLoadedDragController.cancel(); + } else { + mSpringLoadedDragController.setAlarm(mDragTargetLayout); } } - if (layout == null) { - layout = getCurrentDropLayout(); - } - if (layout != mDragTargetLayout) { - setCurrentDropLayout(layout); - setCurrentDragOverlappingLayout(layout); - } } // Handle the drag over @@ -3176,6 +3143,40 @@ public class Workspace extends PagedView } } + /** + * Updates {@link #mDragTargetLayout} and {@link #mDragOverlappingLayout} + * based on the DragObject's position. + * + * The layout will be: + * - The Hotseat if the drag object is over it + * - A side page if we are in spring-loaded mode and the drag object is over it + * - The current page otherwise + * + * @return whether the layout is different from the current {@link #mDragTargetLayout}. + */ + private boolean setDropLayoutForDragObject(DragObject d) { + CellLayout layout = null; + // Test to see if we are over the hotseat first + if (mLauncher.getHotseat() != null && !isDragWidget(d)) { + if (isPointInSelfOverHotseat(d.x, d.y)) { + layout = mLauncher.getHotseat().getLayout(); + } + } + if (layout == null) { + // Identify whether we have dragged over a side page, + // otherwise just use the current page + layout = workspaceInModalState() ? + findMatchingPageForDragOver(d.dragView, d.x, d.y, false) + : getCurrentDropLayout(); + } + if (layout != mDragTargetLayout) { + setCurrentDropLayout(layout); + setCurrentDragOverlappingLayout(layout); + return true; + } + return false; + } + private void manageFolderFeedback(CellLayout targetLayout, int[] targetCell, float distance, DragObject dragObject) { if (distance > mMaxDistanceForFolderCreation) return; |