当前位置: 首页>>代码示例>>Java>>正文


Java DropTarget类代码示例

本文整理汇总了Java中com.android.launcher3.DropTarget的典型用法代码示例。如果您正苦于以下问题:Java DropTarget类的具体用法?Java DropTarget怎么用?Java DropTarget使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DropTarget类属于com.android.launcher3包,在下文中一共展示了DropTarget类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: logDragNDrop

import com.android.launcher3.DropTarget; //导入依赖的package包/类
public void logDragNDrop(DropTarget.DragObject dragObj, View dropTargetAsView) {
    LauncherEvent event = LoggerUtils.initLauncherEvent(Action.TOUCH,
            dragObj.dragView,
            dragObj.originalDragInfo,
            Target.CONTAINER,
            dropTargetAsView);
    event.action.touch = Action.DRAGDROP;

    dragObj.dragSource.fillInLaunchSourceData(null, dragObj.originalDragInfo,
            event.srcTarget[0], event.srcTarget[1]);

    if (dropTargetAsView instanceof LaunchSourceProvider) {
        ((LaunchSourceProvider) dropTargetAsView).fillInLaunchSourceData(null,
                dragObj.dragInfo, event.destTarget[0], event.destTarget[1]);

    }
    event.actionDurationMillis = SystemClock.uptimeMillis() - mActionDurationMillis;
    dispatchUserEvent(event, null);
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:20,代码来源:UserEventDispatcher.java

示例2: onDragStart

import com.android.launcher3.DropTarget; //导入依赖的package包/类
@Override
public void onDragStart(DropTarget.DragObject dragObject, DragOptions options) {
    if (dragObject.dragSource != this) {
        return;
    }

    mContent.removeItem(mCurrentDragView);
    if (dragObject.dragInfo instanceof ShortcutInfo) {
        mItemsInvalidated = true;

        // We do not want to get events for the item being removed, as they will get handled
        // when the drop completes
        try (SuppressInfoChanges s = new SuppressInfoChanges()) {
            mInfo.remove((ShortcutInfo) dragObject.dragInfo, true);
        }
    }
    mDragInProgress = true;
    mItemAddedBackToSelfViaIcon = false;
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:20,代码来源:Folder.java

示例3: onDriverDragEnd

import com.android.launcher3.DropTarget; //导入依赖的package包/类
@Override
public void onDriverDragEnd(float x, float y, DropTarget dropTargetOverride) {
    DropTarget dropTarget;
    PointF vec = null;

    if (dropTargetOverride != null) {
        dropTarget = dropTargetOverride;
    } else {
        vec = isFlingingToDelete(mDragObject.dragSource);
        if (vec != null) {
            dropTarget = mFlingToDeleteDropTarget;
        } else {
            dropTarget = findDropTarget((int) x, (int) y, mCoordinatesTemp);
        }
    }

    drop(dropTarget, x, y, vec);

    endDrag();
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:21,代码来源:DragController.java

示例4: handleMoveEvent

import com.android.launcher3.DropTarget; //导入依赖的package包/类
private void handleMoveEvent(int x, int y) {
    mDragObject.dragView.move(x, y);

    // Drop on someone?
    final int[] coordinates = mCoordinatesTemp;
    DropTarget dropTarget = findDropTarget(x, y, coordinates);
    mDragObject.x = coordinates[0];
    mDragObject.y = coordinates[1];
    checkTouchMove(dropTarget);

    // Check if we are hovering over the scroll areas
    mDistanceSinceScroll += Math.hypot(mLastTouch[0] - x, mLastTouch[1] - y);
    mLastTouch[0] = x;
    mLastTouch[1] = y;
    checkScrollState(x, y);

    if (mIsDragDeferred && mOptions.deferDragCondition.shouldStartDeferredDrag(
            Math.hypot(x - mMotionDownX, y - mMotionDownY))) {
        startDeferredDrag();
    }
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:22,代码来源:DragController.java

示例5: checkTouchMove

import com.android.launcher3.DropTarget; //导入依赖的package包/类
private void checkTouchMove(DropTarget dropTarget) {
    if (dropTarget != null) {
        if (mLastDropTarget != dropTarget) {
            if (mLastDropTarget != null) {
                mLastDropTarget.onDragExit(mDragObject);
            }
            dropTarget.onDragEnter(mDragObject);
        }
        dropTarget.onDragOver(mDragObject);
    } else {
        if (mLastDropTarget != null) {
            mLastDropTarget.onDragExit(mDragObject);
        }
    }
    mLastDropTarget = dropTarget;
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:17,代码来源:DragController.java

示例6: findDropTarget

import com.android.launcher3.DropTarget; //导入依赖的package包/类
private DropTarget findDropTarget(int x, int y, int[] dropCoordinates) {
    final Rect r = mRectTemp;

    final ArrayList<DropTarget> dropTargets = mDropTargets;
    final int count = dropTargets.size();
    for (int i=count-1; i>=0; i--) {
        DropTarget target = dropTargets.get(i);
        if (!target.isDropEnabled())
            continue;

        target.getHitRectRelativeToDragLayer(r);

        mDragObject.x = x;
        mDragObject.y = y;
        if (r.contains(x, y)) {

            dropCoordinates[0] = x;
            dropCoordinates[1] = y;
            mLauncher.getDragLayer().mapCoordInSelfToDescendent((View) target, dropCoordinates);

            return target;
        }
    }
    return null;
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:26,代码来源:DragController.java

示例7: onDropCompleted

import com.android.launcher3.DropTarget; //导入依赖的package包/类
@Override
public void onDropCompleted(View target, DropTarget.DragObject d, boolean isFlingToDelete,
        boolean success) {
    if (isFlingToDelete || !success || (target != mLauncher.getWorkspace() &&
            !(target instanceof DeleteDropTarget) && !(target instanceof Folder))) {
        // Exit spring loaded mode if we have not successfully dropped or have not handled the
        // drop in Workspace
        mLauncher.exitSpringLoadedDragModeDelayed(true,
                Launcher.EXIT_SPRINGLOADED_MODE_SHORT_TIMEOUT, null);
    }
    mLauncher.unlockScreenOrientation(false);

    // Display an error message if the drag failed due to there not being enough space on the
    // target layout we were dropping on.
    if (!success) {
        boolean showOutOfSpaceMessage = false;
        if (target instanceof Workspace && !mLauncher.getDragController().isDeferringDrag()) {
            int currentScreen = mLauncher.getCurrentWorkspaceScreen();
            Workspace workspace = (Workspace) target;
            CellLayout layout = (CellLayout) workspace.getChildAt(currentScreen);
            ItemInfo itemInfo = d.dragInfo;
            if (layout != null) {
                showOutOfSpaceMessage =
                        !layout.findCellForSpan(null, itemInfo.spanX, itemInfo.spanY);
            }
        }
        if (showOutOfSpaceMessage) {
            mLauncher.showOutOfSpaceMessage(false);
        }

        d.deferDragViewCleanupPostAnimation = false;
    }
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:34,代码来源:AllAppsContainerView.java

示例8: onDropCompleted

import com.android.launcher3.DropTarget; //导入依赖的package包/类
@Override
public void onDropCompleted(View target, DropTarget.DragObject d, boolean isFlingToDelete,
        boolean success) {
    if (!success) {
        d.dragView.remove();
        mLauncher.showWorkspace(true);
        mLauncher.getDropTargetBar().onDragEnd();
    }
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:10,代码来源:DeepShortcutsContainer.java

示例9: forceTouchMove

import com.android.launcher3.DropTarget; //导入依赖的package包/类
public void forceTouchMove() {
    int[] dummyCoordinates = mCoordinatesTemp;
    DropTarget dropTarget = findDropTarget(mLastTouch[0], mLastTouch[1], dummyCoordinates);
    mDragObject.x = dummyCoordinates[0];
    mDragObject.y = dummyCoordinates[1];
    checkTouchMove(dropTarget);
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:8,代码来源:DragController.java

示例10: completeAccessibleDrag

import com.android.launcher3.DropTarget; //导入依赖的package包/类
/**
 * As above, since accessible drag and drop won't cause the same sequence of touch events,
 * we manually ensure appropriate drag and drop events get emulated for accessible drag.
 */
public void completeAccessibleDrag(int[] location) {
    final int[] coordinates = mCoordinatesTemp;

    // We make sure that we prime the target for drop.
    DropTarget dropTarget = findDropTarget(location[0], location[1], coordinates);
    mDragObject.x = coordinates[0];
    mDragObject.y = coordinates[1];
    checkTouchMove(dropTarget);

    dropTarget.prepareAccessibilityDrop();
    // Perform the drop
    drop(dropTarget, location[0], location[1], null);
    endDrag();
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:19,代码来源:DragController.java

示例11: drop

import com.android.launcher3.DropTarget; //导入依赖的package包/类
void drop(DropTarget dropTarget, float x, float y, PointF flingVel) {
    final int[] coordinates = mCoordinatesTemp;

    mDragObject.x = coordinates[0];
    mDragObject.y = coordinates[1];

    // Move dragging to the final target.
    if (dropTarget != mLastDropTarget) {
        if (mLastDropTarget != null) {
            mLastDropTarget.onDragExit(mDragObject);
        }
        mLastDropTarget = dropTarget;
        if (dropTarget != null) {
            dropTarget.onDragEnter(mDragObject);
        }
    }

    mDragObject.dragComplete = true;

    // Drop onto the target.
    boolean accepted = false;
    if (dropTarget != null) {
        dropTarget.onDragExit(mDragObject);
        if (dropTarget.acceptDrop(mDragObject)) {
            if (flingVel != null) {
                dropTarget.onFlingToDelete(mDragObject, flingVel);
            } else {
                dropTarget.onDrop(mDragObject);
            }
            accepted = true;
        }
    }
    final View dropTargetAsView = dropTarget instanceof View ? (View) dropTarget : null;
    mDragObject.dragSource.onDropCompleted(
            dropTargetAsView, mDragObject, flingVel != null, accepted);
    mLauncher.getUserEventDispatcher().logDragNDrop(mDragObject, dropTargetAsView);
    if (mIsDragDeferred) {
        mOptions.deferDragCondition.onDropBeforeDeferredDrag();
    }
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:41,代码来源:DragController.java

示例12: onDropCompleted

import com.android.launcher3.DropTarget; //导入依赖的package包/类
@Override
public void onDropCompleted(View target, DropTarget.DragObject d, boolean isFlingToDelete,
        boolean success) {
    if (isFlingToDelete || !success || (target != mLauncher.getWorkspace() &&
            !(target instanceof DeleteDropTarget) && !(target instanceof Folder))) {
        // Exit spring loaded mode if we have not successfully dropped or have not handled the
        // drop in Workspace
        mLauncher.exitSpringLoadedDragModeDelayed(true,
                Launcher.EXIT_SPRINGLOADED_MODE_SHORT_TIMEOUT, null);
    }
    mLauncher.unlockScreenOrientation(false);

    // Display an error message if the drag failed due to there not being enough space on the
    // target layout we were dropping on.
    if (!success) {
        boolean showOutOfSpaceMessage = false;
        if (target instanceof Workspace) {
            int currentScreen = mLauncher.getCurrentWorkspaceScreen();
            Workspace workspace = (Workspace) target;
            CellLayout layout = (CellLayout) workspace.getChildAt(currentScreen);
            ItemInfo itemInfo = (ItemInfo) d.dragInfo;
            if (layout != null) {
                showOutOfSpaceMessage =
                        !layout.findCellForSpan(null, itemInfo.spanX, itemInfo.spanY);
            }
        }
        if (showOutOfSpaceMessage) {
            mLauncher.showOutOfSpaceMessage(false);
        }

        d.deferDragViewCleanupPostAnimation = false;
    }
}
 
开发者ID:talentlo,项目名称:Trebuchet,代码行数:34,代码来源:AllAppsContainerView.java

示例13: replaceFolderWithFinalItem

import com.android.launcher3.DropTarget; //导入依赖的package包/类
@Thunk void replaceFolderWithFinalItem() {
    // Add the last remaining child to the workspace in place of the folder
    Runnable onCompleteRunnable = new Runnable() {
        @Override
        public void run() {
            int itemCount = mInfo.contents.size();
            if (itemCount <= 1) {
                View newIcon = null;

                if (itemCount == 1) {
                    // Move the item from the folder to the workspace, in the position of the
                    // folder
                    CellLayout cellLayout = mLauncher.getCellLayout(mInfo.container,
                            mInfo.screenId);
                    ShortcutInfo finalItem = mInfo.contents.remove(0);
                    newIcon = mLauncher.createShortcut(cellLayout, finalItem);
                    LauncherModel.addOrMoveItemInDatabase(mLauncher, finalItem, mInfo.container,
                            mInfo.screenId, mInfo.cellX, mInfo.cellY);
                }

                // Remove the folder
                mLauncher.removeItem(mFolderIcon, mInfo, true /* deleteFromDb */);
                if (mFolderIcon instanceof DropTarget) {
                    mDragController.removeDropTarget((DropTarget) mFolderIcon);
                }

                if (newIcon != null) {
                    // We add the child after removing the folder to prevent both from existing
                    // at the same time in the CellLayout.  We need to add the new item with
                    // addInScreenFromBind() to ensure that hotseat items are placed correctly.
                    mLauncher.getWorkspace().addInScreenFromBind(newIcon, mInfo.container,
                            mInfo.screenId, mInfo.cellX, mInfo.cellY, mInfo.spanX, mInfo.spanY);

                    // Focus the newly created child
                    newIcon.requestFocus();
                }
            }
        }
    };
    View finalChild = mContent.getLastItem();
    if (finalChild != null) {
        mFolderIcon.performDestroyAnimation(finalChild, onCompleteRunnable);
    } else {
        onCompleteRunnable.run();
    }
    mDestroyed = true;
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:48,代码来源:Folder.java

示例14: onDragStart

import com.android.launcher3.DropTarget; //导入依赖的package包/类
@Override
public void onDragStart(DropTarget.DragObject dragObject, DragOptions options) {
    // Either the original icon or one of the shortcuts was dragged.
    // Hide the container, but don't remove it yet because that interferes with touch events.
    animateClose();
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:7,代码来源:DeepShortcutsContainer.java

示例15: onDeferredEndFling

import com.android.launcher3.DropTarget; //导入依赖的package包/类
public void onDeferredEndFling(DropTarget.DragObject d) {
    d.dragSource.onFlingToDeleteCompleted();
}
 
开发者ID:michelelacorte,项目名称:FlickLauncher,代码行数:4,代码来源:DragController.java


注:本文中的com.android.launcher3.DropTarget类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。