From 45478022977de9025dfc887cc1507d90d15febf8 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 8 Jun 2015 16:52:41 -0700 Subject: Tying accessibility drag lifecycle to that of dragController Bug: 20865291 Change-Id: I1e0aceb20efcf4c32d76a656c499a1a4a5a32a65 --- src/com/android/launcher3/Launcher.java | 6 ++---- .../LauncherAccessibilityDelegate.java | 24 +++++++++++----------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 076a6e657..796de3fa0 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -98,7 +98,6 @@ import android.widget.Toast; import com.android.launcher3.DropTarget.DragObject; import com.android.launcher3.PagedView.PageSwitchListener; -import com.android.launcher3.accessibility.LauncherAccessibilityDelegate; import com.android.launcher3.allapps.AllAppsContainerView; import com.android.launcher3.allapps.AppSearchManager; import com.android.launcher3.compat.AppWidgetManagerCompat; @@ -2470,9 +2469,8 @@ public class Launcher extends Activity return; } - LauncherAccessibilityDelegate delegate = - LauncherAppState.getInstance().getAccessibilityDelegate(); - if (delegate != null && delegate.onBackPressed()) { + if (mDragController.isDragging()) { + mDragController.cancelDrag(); return; } diff --git a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java index 3c49ccc41..fe7b25edd 100644 --- a/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java +++ b/src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java @@ -20,6 +20,8 @@ import com.android.launcher3.AppInfo; import com.android.launcher3.AppWidgetResizeFrame; import com.android.launcher3.CellLayout; import com.android.launcher3.DeleteDropTarget; +import com.android.launcher3.DragController.DragListener; +import com.android.launcher3.DragSource; import com.android.launcher3.Folder; import com.android.launcher3.FolderInfo; import com.android.launcher3.InfoDropTarget; @@ -39,7 +41,7 @@ import com.android.launcher3.util.Thunk; import java.util.ArrayList; @TargetApi(Build.VERSION_CODES.LOLLIPOP) -public class LauncherAccessibilityDelegate extends AccessibilityDelegate { +public class LauncherAccessibilityDelegate extends AccessibilityDelegate implements DragListener { private static final String TAG = "LauncherAccessibilityDelegate"; @@ -328,7 +330,6 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate { mLauncher.getDragLayer().getDescendantCoordRelativeToSelf(clickedTarget, loc); mLauncher.getDragController().completeAccessibleDrag(loc); - endAccessibleDrag(); if (!TextUtils.isEmpty(confirmation)) { announceConfirmation(confirmation); } @@ -366,22 +367,21 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate { } mDragSource.enableAccessibleDrag(true); mDragSource.startDrag(cellInfo, true); - } - public boolean onBackPressed() { - if (isInAccessibleDrag()) { - cancelAccessibleDrag(); - return true; + if (mLauncher.getDragController().isDragging()) { + mLauncher.getDragController().addDragListener(this); } - return false; } - private void cancelAccessibleDrag() { - mLauncher.getDragController().cancelDrag(); - endAccessibleDrag(); + + @Override + public void onDragStart(DragSource source, Object info, int dragAction) { + // No-op } - private void endAccessibleDrag() { + @Override + public void onDragEnd() { + mLauncher.getDragController().removeDragListener(this); mDragInfo = null; if (mDragSource != null) { mDragSource.enableAccessibleDrag(false); -- cgit v1.2.3