Merge "Fix Workspace item move issues when using Talkback" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1e46696161
@@ -1777,7 +1777,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||
|
||||
boolean droppedOnOriginalCell = false;
|
||||
|
||||
int snapScreen = -1;
|
||||
boolean snappedToNewPage = false;
|
||||
boolean resizeOnDrop = false;
|
||||
Runnable onCompleteRunnable = null;
|
||||
if (d.dragSource != this || mDragInfo == null) {
|
||||
@@ -1859,11 +1859,14 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||
}
|
||||
|
||||
if (foundCell) {
|
||||
if (getScreenIdForPageIndex(mCurrentPage) != screenId && !hasMovedIntoHotseat) {
|
||||
snapScreen = getPageIndexForScreenId(screenId);
|
||||
int targetScreenIndex = getPageIndexForScreenId(screenId);
|
||||
int snapScreen = getLeftmostVisiblePageForIndex(targetScreenIndex);
|
||||
// On large screen devices two pages can be shown at the same time, and snap
|
||||
// isn't needed if the source and target screens appear at the same time
|
||||
if (snapScreen != mCurrentPage && !hasMovedIntoHotseat) {
|
||||
snapToPage(snapScreen);
|
||||
snappedToNewPage = true;
|
||||
}
|
||||
|
||||
final ItemInfo info = (ItemInfo) cell.getTag();
|
||||
if (hasMovedLayouts) {
|
||||
// Reparent the view
|
||||
@@ -1955,7 +1958,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||
ANIMATE_INTO_POSITION_AND_DISAPPEAR;
|
||||
animateWidgetDrop(info, parent, d.dragView, null, animationType, cell, false);
|
||||
} else {
|
||||
int duration = snapScreen < 0 ? -1 : ADJACENT_SCREEN_DROP_DURATION;
|
||||
int duration = snappedToNewPage ? ADJACENT_SCREEN_DROP_DURATION : -1;
|
||||
mLauncher.getDragLayer().animateViewIntoPosition(d.dragView, cell, duration,
|
||||
this);
|
||||
}
|
||||
|
||||
@@ -188,7 +188,8 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme
|
||||
private boolean itemSupportsAccessibleDrag(ItemInfo item) {
|
||||
if (item instanceof WorkspaceItemInfo) {
|
||||
// Support the action unless the item is in a context menu.
|
||||
return item.screenId >= 0 && item.container != Favorites.CONTAINER_HOTSEAT_PREDICTION;
|
||||
return (item.screenId >= 0 || item.screenId == Workspace.LEFT_PANEL_ID)
|
||||
&& item.container != Favorites.CONTAINER_HOTSEAT_PREDICTION;
|
||||
}
|
||||
return (item instanceof LauncherAppWidgetInfo)
|
||||
|| (item instanceof FolderInfo);
|
||||
|
||||
Reference in New Issue
Block a user