diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2018-05-23 07:23:07 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-05-23 07:23:07 +0000 |
commit | 4ac63b28ced5d5b09eaae39adca68377a2a7ef5b (patch) | |
tree | 190b1a5377bf6dfc836e4be57767d0cd512c6bf2 /src/com/android/launcher3/dragndrop | |
parent | 8102503413976f42f825aacda49af53a5483933b (diff) | |
parent | d00202ed3306950264be533cb2e8a171f58f7930 (diff) | |
download | android_packages_apps_Trebuchet-4ac63b28ced5d5b09eaae39adca68377a2a7ef5b.tar.gz android_packages_apps_Trebuchet-4ac63b28ced5d5b09eaae39adca68377a2a7ef5b.tar.bz2 android_packages_apps_Trebuchet-4ac63b28ced5d5b09eaae39adca68377a2a7ef5b.zip |
Snap for 4799153 from d00202ed3306950264be533cb2e8a171f58f7930 to pi-release
Change-Id: I72cfd121a4f78f4f1c44a5989a07bc9926593a2c
Diffstat (limited to 'src/com/android/launcher3/dragndrop')
-rw-r--r-- | src/com/android/launcher3/dragndrop/DragLayer.java | 88 | ||||
-rw-r--r-- | src/com/android/launcher3/dragndrop/DragView.java | 2 |
2 files changed, 53 insertions, 37 deletions
diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java index 8519365e7..53e9e2dac 100644 --- a/src/com/android/launcher3/dragndrop/DragLayer.java +++ b/src/com/android/launcher3/dragndrop/DragLayer.java @@ -1,3 +1,4 @@ + /* * Copyright (C) 2008 The Android Open Source Project * @@ -42,10 +43,12 @@ import com.android.launcher3.DropTargetBar; import com.android.launcher3.Launcher; import com.android.launcher3.R; import com.android.launcher3.ShortcutAndWidgetContainer; +import com.android.launcher3.Workspace; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.folder.Folder; import com.android.launcher3.folder.FolderIcon; import com.android.launcher3.graphics.ViewScrim; +import com.android.launcher3.graphics.WorkspaceAndHotseatScrim; import com.android.launcher3.keyboard.ViewGroupFocusHelper; import com.android.launcher3.uioverrides.UiFactory; import com.android.launcher3.util.Thunk; @@ -58,6 +61,12 @@ import java.util.ArrayList; */ public class DragLayer extends BaseDragLayer<Launcher> { + public static final int ALPHA_INDEX_OVERLAY = 0; + public static final int ALPHA_INDEX_LAUNCHER_LOAD = 1; + public static final int ALPHA_INDEX_TRANSITIONS = 2; + public static final int ALPHA_INDEX_SWIPE_UP = 3; + private static final int ALPHA_CHANNEL_COUNT = 4; + public static final int ANIMATION_END_DISAPPEAR = 0; public static final int ANIMATION_END_REMAIN_VISIBLE = 2; @@ -77,6 +86,7 @@ public class DragLayer extends BaseDragLayer<Launcher> { // Related to adjacent page hints private final ViewGroupFocusHelper mFocusIndicatorHelper; + private final WorkspaceAndHotseatScrim mScrim; /** * Used to create a new DragLayer from XML. @@ -85,17 +95,23 @@ public class DragLayer extends BaseDragLayer<Launcher> { * @param attrs The attributes set containing the Workspace's customization values. */ public DragLayer(Context context, AttributeSet attrs) { - super(context, attrs); + super(context, attrs, ALPHA_CHANNEL_COUNT); // Disable multitouch across the workspace/all apps/customize tray setMotionEventSplittingEnabled(false); setChildrenDrawingOrderEnabled(true); mFocusIndicatorHelper = new ViewGroupFocusHelper(this); + mScrim = new WorkspaceAndHotseatScrim(this); } - public void setup(DragController dragController) { + public void setup(DragController dragController, Workspace workspace) { mDragController = dragController; + mScrim.setWorkspace(workspace); + recreateControllers(); + } + + public void recreateControllers() { mControllers = UiFactory.createTouchControllers(mActivity); } @@ -108,18 +124,6 @@ public class DragLayer extends BaseDragLayer<Launcher> { return mDragController.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); } - public boolean isEventOverHotseat(MotionEvent ev) { - return isEventOverView(mActivity.getHotseat(), ev); - } - - private boolean isEventOverFolder(Folder folder, MotionEvent ev) { - return isEventOverView(folder, ev); - } - - private boolean isEventOverDropTargetBar(MotionEvent ev) { - return isEventOverView(mActivity.getDropTargetBar(), ev); - } - @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { ViewScrim scrim = ViewScrim.get(child); @@ -139,24 +143,29 @@ public class DragLayer extends BaseDragLayer<Launcher> { return super.findActiveController(ev); } + private boolean isEventOverAccessibleDropTargetBar(MotionEvent ev) { + return isInAccessibleDrag() && isEventOverView(mActivity.getDropTargetBar(), ev); + } + @Override public boolean onInterceptHoverEvent(MotionEvent ev) { if (mActivity == null || mActivity.getWorkspace() == null) { return false; } - Folder currentFolder = Folder.getOpen(mActivity); - if (currentFolder == null) { + AbstractFloatingView topView = AbstractFloatingView.getTopOpenView(mActivity); + if (!(topView instanceof Folder)) { return false; } else { AccessibilityManager accessibilityManager = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE); if (accessibilityManager.isTouchExplorationEnabled()) { + Folder currentFolder = (Folder) topView; final int action = ev.getAction(); boolean isOverFolderOrSearchBar; switch (action) { case MotionEvent.ACTION_HOVER_ENTER: - isOverFolderOrSearchBar = isEventOverFolder(currentFolder, ev) || - (isInAccessibleDrag() && isEventOverDropTargetBar(ev)); + isOverFolderOrSearchBar = isEventOverView(topView, ev) || + isEventOverAccessibleDropTargetBar(ev); if (!isOverFolderOrSearchBar) { sendTapOutsideFolderAccessibilityEvent(currentFolder.isEditingName()); mHoverPointClosesFolder = true; @@ -165,8 +174,8 @@ public class DragLayer extends BaseDragLayer<Launcher> { mHoverPointClosesFolder = false; break; case MotionEvent.ACTION_HOVER_MOVE: - isOverFolderOrSearchBar = isEventOverFolder(currentFolder, ev) || - (isInAccessibleDrag() && isEventOverDropTargetBar(ev)); + isOverFolderOrSearchBar = isEventOverView(topView, ev) || + isEventOverAccessibleDropTargetBar(ev); if (!isOverFolderOrSearchBar && !mHoverPointClosesFolder) { sendTapOutsideFolderAccessibilityEvent(currentFolder.isEditingName()); mHoverPointClosesFolder = true; @@ -201,18 +210,8 @@ public class DragLayer extends BaseDragLayer<Launcher> { @Override public boolean onRequestSendAccessibilityEvent(View child, AccessibilityEvent event) { - // Shortcuts can appear above folder - View topView = AbstractFloatingView.getTopOpenView(mActivity); - if (topView != null) { - if (child == topView) { - return super.onRequestSendAccessibilityEvent(child, event); - } - if (isInAccessibleDrag() && child instanceof DropTargetBar) { - return super.onRequestSendAccessibilityEvent(child, event); - } - // Skip propagating onRequestSendAccessibilityEvent for all other children - // which are not topView - return false; + if (isInAccessibleDrag() && child instanceof DropTargetBar) { + return true; } return super.onRequestSendAccessibilityEvent(child, event); } @@ -221,11 +220,9 @@ public class DragLayer extends BaseDragLayer<Launcher> { public void addChildrenForAccessibility(ArrayList<View> childrenForAccessibility) { View topView = AbstractFloatingView.getTopOpenView(mActivity); if (topView != null) { - // Only add the top view as a child for accessibility when it is open - childrenForAccessibility.add(topView); - + addAccessibleChildToList(topView, childrenForAccessibility); if (isInAccessibleDrag()) { - childrenForAccessibility.add(mActivity.getDropTargetBar()); + addAccessibleChildToList(mActivity.getDropTargetBar(), childrenForAccessibility); } } else { super.addChildrenForAccessibility(childrenForAccessibility); @@ -462,6 +459,7 @@ public class DragLayer extends BaseDragLayer<Launcher> { case ANIMATION_END_REMAIN_VISIBLE: break; } + mDropAnim = null; } }); mDropAnim.start(); @@ -471,6 +469,7 @@ public class DragLayer extends BaseDragLayer<Launcher> { if (mDropAnim != null) { mDropAnim.cancel(); } + mDropAnim = null; if (mDropView != null) { mDragController.onDeferredEndDrag(mDropView); } @@ -542,7 +541,24 @@ public class DragLayer extends BaseDragLayer<Launcher> { @Override protected void dispatchDraw(Canvas canvas) { // Draw the background below children. + mScrim.draw(canvas); mFocusIndicatorHelper.draw(canvas); super.dispatchDraw(canvas); } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + mScrim.setSize(w, h); + } + + @Override + public void setInsets(Rect insets) { + super.setInsets(insets); + mScrim.onInsetsChanged(insets); + } + + public WorkspaceAndHotseatScrim getScrim() { + return mScrim; + } } diff --git a/src/com/android/launcher3/dragndrop/DragView.java b/src/com/android/launcher3/dragndrop/DragView.java index e1e1f83a7..1e5f8545b 100644 --- a/src/com/android/launcher3/dragndrop/DragView.java +++ b/src/com/android/launcher3/dragndrop/DragView.java @@ -288,7 +288,7 @@ public class DragView extends View { if (mScaledMaskPath != null) { mBgSpringDrawable.setColorFilter(mBaseFilter); - mBgSpringDrawable.setColorFilter(mBaseFilter); + mFgSpringDrawable.setColorFilter(mBaseFilter); mBadge.setColorFilter(mBaseFilter); } } else { |