From 3f8864069be20d14debacddee610062f3feae5a1 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 11 Oct 2016 10:54:39 -0700 Subject: Announcing the final action when the drag-drop completes Bug:31926812 Change-Id: Id0566cc7dc15732981320807a02fb9cae8a885e6 --- src/com/android/launcher3/Workspace.java | 3 +++ .../android/launcher3/accessibility/DragViewStateAnnouncer.java | 8 ++++++++ src/com/android/launcher3/folder/Folder.java | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index fc35064d0..e891b16b8 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -2760,6 +2760,9 @@ public class Workspace extends PagedView } parent.onDropChild(cell); } + if (d.stateAnnouncer != null) { + d.stateAnnouncer.completeAction(R.string.item_moved); + } } /** diff --git a/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java b/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java index 8ff82dd4f..99deb7b1c 100644 --- a/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java +++ b/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java @@ -21,6 +21,8 @@ import android.view.View; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; +import com.android.launcher3.Launcher; + /** * Periodically sends accessibility events to announce ongoing state changed. Based on the * implementation in ProgressBar. @@ -50,6 +52,12 @@ public class DragViewStateAnnouncer implements Runnable { mTargetView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); } + public void completeAction(int announceResId) { + cancel(); + Launcher launcher = Launcher.getLauncher(mTargetView.getContext()); + launcher.getDragLayer().announceForAccessibility(launcher.getText(announceResId)); + } + public static DragViewStateAnnouncer createFor(View v) { if (((AccessibilityManager) v.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE)) .isEnabled()) { diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index ebbe64127..0ae3a6224 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -1346,6 +1346,10 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList // The animation has already been shown while opening the folder. mInfo.setOption(FolderInfo.FLAG_MULTI_PAGE_ANIMATION, true, mLauncher); } + + if (d.stateAnnouncer != null) { + d.stateAnnouncer.completeAction(R.string.item_moved); + } } // This is used so the item doesn't immediately appear in the folder when added. In one case -- cgit v1.2.3