Fix widget resizing (Which stopped working at some point)
-> Also, deferring empty screen removal until after the drop animation in order to reduce buggy transitions -> Also fixing workspace layout on tablet Change-Id: I1ae9fdaf592262f959424f321efa6df4298f85cc
This commit is contained in:
parent
3bc8e17387
commit
d6e7aa3154
|
@ -57,6 +57,7 @@
|
|||
android:paddingEnd="@dimen/workspace_right_padding"
|
||||
android:paddingTop="@dimen/workspace_top_padding"
|
||||
android:paddingBottom="@dimen/workspace_bottom_padding"
|
||||
android:layout_gravity="center"
|
||||
launcher:defaultScreen="@integer/config_workspaceDefaultScreen"
|
||||
launcher:cellCountX="@integer/cell_count_x"
|
||||
launcher:cellCountY="@integer/cell_count_y"
|
||||
|
|
|
@ -58,6 +58,7 @@ public class AppWidgetResizeFrame extends FrameLayout {
|
|||
|
||||
int[] mDirectionVector = new int[2];
|
||||
int[] mLastDirectionVector = new int[2];
|
||||
int[] mTmpPt = new int[2];
|
||||
|
||||
final int SNAP_DURATION = 150;
|
||||
final int BACKGROUND_PADDING = 24;
|
||||
|
@ -399,18 +400,17 @@ public class AppWidgetResizeFrame extends FrameLayout {
|
|||
|
||||
public void snapToWidget(boolean animate) {
|
||||
final DragLayer.LayoutParams lp = (DragLayer.LayoutParams) getLayoutParams();
|
||||
int xOffset = mCellLayout.getLeft() + mCellLayout.getPaddingLeft()
|
||||
+ mDragLayer.getPaddingLeft() - mWorkspace.getScrollX();
|
||||
int yOffset = mCellLayout.getTop() + mCellLayout.getPaddingTop()
|
||||
+ mDragLayer.getPaddingTop() - mWorkspace.getScrollY();
|
||||
|
||||
int newWidth = mWidgetView.getWidth() + 2 * mBackgroundPadding - mWidgetPaddingLeft -
|
||||
mWidgetPaddingRight;
|
||||
int newHeight = mWidgetView.getHeight() + 2 * mBackgroundPadding - mWidgetPaddingTop -
|
||||
mWidgetPaddingBottom;
|
||||
|
||||
int newX = mWidgetView.getLeft() - mBackgroundPadding + xOffset + mWidgetPaddingLeft;
|
||||
int newY = mWidgetView.getTop() - mBackgroundPadding + yOffset + mWidgetPaddingTop;
|
||||
mTmpPt[0] = mWidgetView.getLeft();
|
||||
mTmpPt[1] = mWidgetView.getTop();
|
||||
mDragLayer.getDescendantCoordRelativeToSelf(mCellLayout.getShortcutsAndWidgets(), mTmpPt);
|
||||
|
||||
int newX = mTmpPt[0] - mBackgroundPadding + mWidgetPaddingLeft;
|
||||
int newY = mTmpPt[1] - mBackgroundPadding + mWidgetPaddingTop;
|
||||
|
||||
// We need to make sure the frame's touchable regions lie fully within the bounds of the
|
||||
// DragLayer. We allow the actual handles to be clipped, but we shift the touch regions
|
||||
|
|
|
@ -2384,6 +2384,7 @@ public class Workspace extends SmoothPagedView
|
|||
if (finalResizeRunnable != null) {
|
||||
finalResizeRunnable.run();
|
||||
}
|
||||
stripEmptyScreens();
|
||||
}
|
||||
};
|
||||
mAnimatingViewIntoPlace = true;
|
||||
|
@ -3364,6 +3365,10 @@ public class Workspace extends SmoothPagedView
|
|||
mDragController.removeDropTarget((DropTarget) mDragInfo.cell);
|
||||
}
|
||||
}
|
||||
// If we move the item to anything not on the Workspace, check if any empty
|
||||
// screens need to be removed. If we dropped back on the workspace, this will
|
||||
// be done post drop animation.
|
||||
stripEmptyScreens();
|
||||
}
|
||||
} else if (mDragInfo != null) {
|
||||
CellLayout cellLayout;
|
||||
|
@ -3380,8 +3385,6 @@ public class Workspace extends SmoothPagedView
|
|||
mDragOutline = null;
|
||||
mDragInfo = null;
|
||||
|
||||
stripEmptyScreens();
|
||||
|
||||
// Hide the scrolling indicator after you pick up an item
|
||||
hideScrollingIndicator(false);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue