summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2016-09-23 00:34:53 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-09-23 00:34:53 +0000
commitc980735560ddc21544203f83663e9ca1108cf80c (patch)
treed8afdcf54f135670a834b20093fbf1341188e9fc
parent39ce3d119b336bb3f2556a103072edd283641652 (diff)
parentdbf08b4aee0bd9c296552485a34f15f997a56f3f (diff)
downloadandroid_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.java83
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;