Loading src/com/android/launcher3/AnotherWindowDropTarget.java +0 −3 Original line number Diff line number Diff line Loading @@ -47,9 +47,6 @@ public class AnotherWindowDropTarget implements DropTarget { @Override public void onDragExit(DragObject dragObject) {} @Override public void onFlingToDelete(DragObject dragObject, PointF vec) {} @Override public boolean acceptDrop(DragObject dragObject) { return dragObject.dragInfo instanceof ShortcutInfo; Loading src/com/android/launcher3/ButtonDropTarget.java +7 −10 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Build; Loading Loading @@ -118,9 +117,6 @@ public abstract class ButtonDropTarget extends TextView mDropTargetBar = dropTargetBar; } @Override public void onFlingToDelete(DragObject d, PointF vec) { } @Override public final void onDragEnter(DragObject d) { d.dragView.setColor(mHoverColor); Loading Loading @@ -243,10 +239,7 @@ public abstract class ButtonDropTarget extends TextView final Rect from = new Rect(); dragLayer.getViewRectRelativeToSelf(d.dragView, from); int width = mDrawable.getIntrinsicWidth(); int height = mDrawable.getIntrinsicHeight(); final Rect to = getIconRect(d.dragView.getMeasuredWidth(), d.dragView.getMeasuredHeight(), width, height); final Rect to = getIconRect(d); final float scale = (float) to.width() / from.width(); mDropTargetBar.deferOnDragEnd(); Loading @@ -268,7 +261,7 @@ public abstract class ButtonDropTarget extends TextView @Override public void prepareAccessibilityDrop() { } @Thunk abstract void completeDrop(DragObject d); public abstract void completeDrop(DragObject d); @Override public void getHitRectRelativeToDragLayer(android.graphics.Rect outRect) { Loading @@ -280,7 +273,11 @@ public abstract class ButtonDropTarget extends TextView outRect.offsetTo(coords[0], coords[1]); } protected Rect getIconRect(int viewWidth, int viewHeight, int drawableWidth, int drawableHeight) { public Rect getIconRect(DragObject dragObject) { int viewWidth = dragObject.dragView.getMeasuredWidth(); int viewHeight = dragObject.dragView.getMeasuredHeight(); int drawableWidth = mDrawable.getIntrinsicWidth(); int drawableHeight = mDrawable.getIntrinsicHeight(); DragLayer dragLayer = mLauncher.getDragLayer(); // Find the rect to animate to (the view is center aligned) Loading src/com/android/launcher3/DeleteDropTarget.java +1 −56 Original line number Diff line number Diff line Loading @@ -16,19 +16,13 @@ package com.android.launcher3; import android.animation.TimeInterpolator; import android.content.Context; import android.graphics.PointF; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.view.animation.AnimationUtils; import com.android.launcher3.dragndrop.DragLayer; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.folder.Folder; import com.android.launcher3.util.FlingAnimation; import com.android.launcher3.util.Thunk; public class DeleteDropTarget extends ButtonDropTarget { Loading Loading @@ -78,7 +72,7 @@ public class DeleteDropTarget extends ButtonDropTarget { } @Override @Thunk void completeDrop(DragObject d) { public void completeDrop(DragObject d) { ItemInfo item = d.dragInfo; if ((d.dragSource instanceof Workspace) || (d.dragSource instanceof Folder)) { removeWorkspaceOrFolderItem(mLauncher, item, null); Loading @@ -96,53 +90,4 @@ public class DeleteDropTarget extends ButtonDropTarget { launcher.getWorkspace().stripEmptyScreens(); launcher.getDragLayer().announceForAccessibility(launcher.getString(R.string.item_removed)); } @Override public void onFlingToDelete(final DragObject d, PointF vel) { // Don't highlight the icon as it's animating d.dragView.setColor(0); final DragLayer dragLayer = mLauncher.getDragLayer(); FlingAnimation fling = new FlingAnimation(d, vel, getIconRect(d.dragView.getMeasuredWidth(), d.dragView.getMeasuredHeight(), mDrawable.getIntrinsicWidth(), mDrawable.getIntrinsicHeight()), dragLayer); final int duration = fling.getDuration(); final long startTime = AnimationUtils.currentAnimationTimeMillis(); // NOTE: Because it takes time for the first frame of animation to actually be // called and we expect the animation to be a continuation of the fling, we have // to account for the time that has elapsed since the fling finished. And since // we don't have a startDelay, we will always get call to update when we call // start() (which we want to ignore). final TimeInterpolator tInterpolator = new TimeInterpolator() { private int mCount = -1; private float mOffset = 0f; @Override public float getInterpolation(float t) { if (mCount < 0) { mCount++; } else if (mCount == 0) { mOffset = Math.min(0.5f, (float) (AnimationUtils.currentAnimationTimeMillis() - startTime) / duration); mCount++; } return Math.min(1f, mOffset + t); } }; Runnable onAnimationEndRunnable = new Runnable() { @Override public void run() { mLauncher.exitSpringLoadedDragMode(); completeDrop(d); mLauncher.getDragController().onDeferredEndFling(d); } }; dragLayer.animateView(d.dragView, fling, duration, tInterpolator, onAnimationEndRunnable, DragLayer.ANIMATION_END_DISAPPEAR, null); } } src/com/android/launcher3/DragSource.java +0 −12 Original line number Diff line number Diff line Loading @@ -26,11 +26,6 @@ import com.android.launcher3.logging.UserEventDispatcher.LogContainerProvider; */ public interface DragSource extends LogContainerProvider { /** * @return whether items dragged from this source supports */ boolean supportsFlingToDelete(); /** * @return whether items dragged from this source supports 'App Info' */ Loading @@ -47,13 +42,6 @@ public interface DragSource extends LogContainerProvider { */ float getIntrinsicIconScaleFactor(); /** * A callback specifically made back to the source after an item from this source has been flung * to be deleted on a DropTarget. In such a situation, this method will be called after * onDropCompleted, and more importantly, after the fling animation has completed. */ void onFlingToDeleteCompleted(); /** * A callback made back to the source after an item from this source has been dropped on a * DropTarget. Loading src/com/android/launcher3/DropTarget.java +1 −10 Original line number Diff line number Diff line Loading @@ -16,12 +16,10 @@ package com.android.launcher3; import com.android.launcher3.dragndrop.DragView; import android.graphics.PointF; import android.graphics.Rect; import com.android.launcher3.accessibility.DragViewStateAnnouncer; import com.android.launcher3.dragndrop.DragView; /** * Interface defining an object that can receive a drag. Loading Loading @@ -116,13 +114,6 @@ public interface DropTarget { void onDragExit(DragObject dragObject); /** * Handle an object being dropped as a result of flinging to delete and will be called in place * of onDrop(). (This is only called on objects that are set as the DragController's * fling-to-delete target. */ void onFlingToDelete(DragObject dragObject, PointF vec); /** * Check if a drop action can occur at, or near, the requested location. * This will be called just before onDrop. Loading Loading
src/com/android/launcher3/AnotherWindowDropTarget.java +0 −3 Original line number Diff line number Diff line Loading @@ -47,9 +47,6 @@ public class AnotherWindowDropTarget implements DropTarget { @Override public void onDragExit(DragObject dragObject) {} @Override public void onFlingToDelete(DragObject dragObject, PointF vec) {} @Override public boolean acceptDrop(DragObject dragObject) { return dragObject.dragInfo instanceof ShortcutInfo; Loading
src/com/android/launcher3/ButtonDropTarget.java +7 −10 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Build; Loading Loading @@ -118,9 +117,6 @@ public abstract class ButtonDropTarget extends TextView mDropTargetBar = dropTargetBar; } @Override public void onFlingToDelete(DragObject d, PointF vec) { } @Override public final void onDragEnter(DragObject d) { d.dragView.setColor(mHoverColor); Loading Loading @@ -243,10 +239,7 @@ public abstract class ButtonDropTarget extends TextView final Rect from = new Rect(); dragLayer.getViewRectRelativeToSelf(d.dragView, from); int width = mDrawable.getIntrinsicWidth(); int height = mDrawable.getIntrinsicHeight(); final Rect to = getIconRect(d.dragView.getMeasuredWidth(), d.dragView.getMeasuredHeight(), width, height); final Rect to = getIconRect(d); final float scale = (float) to.width() / from.width(); mDropTargetBar.deferOnDragEnd(); Loading @@ -268,7 +261,7 @@ public abstract class ButtonDropTarget extends TextView @Override public void prepareAccessibilityDrop() { } @Thunk abstract void completeDrop(DragObject d); public abstract void completeDrop(DragObject d); @Override public void getHitRectRelativeToDragLayer(android.graphics.Rect outRect) { Loading @@ -280,7 +273,11 @@ public abstract class ButtonDropTarget extends TextView outRect.offsetTo(coords[0], coords[1]); } protected Rect getIconRect(int viewWidth, int viewHeight, int drawableWidth, int drawableHeight) { public Rect getIconRect(DragObject dragObject) { int viewWidth = dragObject.dragView.getMeasuredWidth(); int viewHeight = dragObject.dragView.getMeasuredHeight(); int drawableWidth = mDrawable.getIntrinsicWidth(); int drawableHeight = mDrawable.getIntrinsicHeight(); DragLayer dragLayer = mLauncher.getDragLayer(); // Find the rect to animate to (the view is center aligned) Loading
src/com/android/launcher3/DeleteDropTarget.java +1 −56 Original line number Diff line number Diff line Loading @@ -16,19 +16,13 @@ package com.android.launcher3; import android.animation.TimeInterpolator; import android.content.Context; import android.graphics.PointF; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.view.animation.AnimationUtils; import com.android.launcher3.dragndrop.DragLayer; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.folder.Folder; import com.android.launcher3.util.FlingAnimation; import com.android.launcher3.util.Thunk; public class DeleteDropTarget extends ButtonDropTarget { Loading Loading @@ -78,7 +72,7 @@ public class DeleteDropTarget extends ButtonDropTarget { } @Override @Thunk void completeDrop(DragObject d) { public void completeDrop(DragObject d) { ItemInfo item = d.dragInfo; if ((d.dragSource instanceof Workspace) || (d.dragSource instanceof Folder)) { removeWorkspaceOrFolderItem(mLauncher, item, null); Loading @@ -96,53 +90,4 @@ public class DeleteDropTarget extends ButtonDropTarget { launcher.getWorkspace().stripEmptyScreens(); launcher.getDragLayer().announceForAccessibility(launcher.getString(R.string.item_removed)); } @Override public void onFlingToDelete(final DragObject d, PointF vel) { // Don't highlight the icon as it's animating d.dragView.setColor(0); final DragLayer dragLayer = mLauncher.getDragLayer(); FlingAnimation fling = new FlingAnimation(d, vel, getIconRect(d.dragView.getMeasuredWidth(), d.dragView.getMeasuredHeight(), mDrawable.getIntrinsicWidth(), mDrawable.getIntrinsicHeight()), dragLayer); final int duration = fling.getDuration(); final long startTime = AnimationUtils.currentAnimationTimeMillis(); // NOTE: Because it takes time for the first frame of animation to actually be // called and we expect the animation to be a continuation of the fling, we have // to account for the time that has elapsed since the fling finished. And since // we don't have a startDelay, we will always get call to update when we call // start() (which we want to ignore). final TimeInterpolator tInterpolator = new TimeInterpolator() { private int mCount = -1; private float mOffset = 0f; @Override public float getInterpolation(float t) { if (mCount < 0) { mCount++; } else if (mCount == 0) { mOffset = Math.min(0.5f, (float) (AnimationUtils.currentAnimationTimeMillis() - startTime) / duration); mCount++; } return Math.min(1f, mOffset + t); } }; Runnable onAnimationEndRunnable = new Runnable() { @Override public void run() { mLauncher.exitSpringLoadedDragMode(); completeDrop(d); mLauncher.getDragController().onDeferredEndFling(d); } }; dragLayer.animateView(d.dragView, fling, duration, tInterpolator, onAnimationEndRunnable, DragLayer.ANIMATION_END_DISAPPEAR, null); } }
src/com/android/launcher3/DragSource.java +0 −12 Original line number Diff line number Diff line Loading @@ -26,11 +26,6 @@ import com.android.launcher3.logging.UserEventDispatcher.LogContainerProvider; */ public interface DragSource extends LogContainerProvider { /** * @return whether items dragged from this source supports */ boolean supportsFlingToDelete(); /** * @return whether items dragged from this source supports 'App Info' */ Loading @@ -47,13 +42,6 @@ public interface DragSource extends LogContainerProvider { */ float getIntrinsicIconScaleFactor(); /** * A callback specifically made back to the source after an item from this source has been flung * to be deleted on a DropTarget. In such a situation, this method will be called after * onDropCompleted, and more importantly, after the fling animation has completed. */ void onFlingToDeleteCompleted(); /** * A callback made back to the source after an item from this source has been dropped on a * DropTarget. Loading
src/com/android/launcher3/DropTarget.java +1 −10 Original line number Diff line number Diff line Loading @@ -16,12 +16,10 @@ package com.android.launcher3; import com.android.launcher3.dragndrop.DragView; import android.graphics.PointF; import android.graphics.Rect; import com.android.launcher3.accessibility.DragViewStateAnnouncer; import com.android.launcher3.dragndrop.DragView; /** * Interface defining an object that can receive a drag. Loading Loading @@ -116,13 +114,6 @@ public interface DropTarget { void onDragExit(DragObject dragObject); /** * Handle an object being dropped as a result of flinging to delete and will be called in place * of onDrop(). (This is only called on objects that are set as the DragController's * fling-to-delete target. */ void onFlingToDelete(DragObject dragObject, PointF vec); /** * Check if a drop action can occur at, or near, the requested location. * This will be called just before onDrop. Loading