Show resize handle on cancel widget drop
Fix: 233834133
Test: manual on handheld and large screens, until we have create a way to resize widgets in TAPL b/241385885
Change-Id: I427dfaadd219d33a5371c3ae92c4e2311d3d3c6a
(cherry picked from commit 84fa75cc7d)
Merged-In: I427dfaadd219d33a5371c3ae92c4e2311d3d3c6a
This commit is contained in:
committed by
Cherrypicker Worker
parent
c784f76c0d
commit
51e1bc2212
@@ -2063,20 +2063,11 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
|
||||
|
||||
if (container != LauncherSettings.Favorites.CONTAINER_HOTSEAT &&
|
||||
cell instanceof LauncherAppWidgetHostView) {
|
||||
final CellLayout cellLayout = dropTargetLayout;
|
||||
|
||||
// We post this call so that the widget has a chance to be placed
|
||||
// in its final location
|
||||
|
||||
final LauncherAppWidgetHostView hostView = (LauncherAppWidgetHostView) cell;
|
||||
AppWidgetProviderInfo pInfo = hostView.getAppWidgetInfo();
|
||||
if (pInfo != null && pInfo.resizeMode != AppWidgetProviderInfo.RESIZE_NONE
|
||||
&& !options.isAccessibleDrag) {
|
||||
onCompleteRunnable = () -> {
|
||||
if (!isPageInTransition()) {
|
||||
AppWidgetResizeFrame.showForWidget(hostView, cellLayout);
|
||||
}
|
||||
};
|
||||
}
|
||||
onCompleteRunnable = getWidgetResizeFrameRunnable(options,
|
||||
(LauncherAppWidgetHostView) cell, dropTargetLayout);
|
||||
}
|
||||
mLauncher.getModelWriter().modifyItemInDatabase(info, container, screenId,
|
||||
lp.cellX, lp.cellY, item.spanX, item.spanY);
|
||||
@@ -2097,8 +2088,16 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
|
||||
}
|
||||
} else {
|
||||
// When drag is cancelled, reattach content view back to its original parent.
|
||||
if (mDragInfo.cell instanceof LauncherAppWidgetHostView) {
|
||||
if (cell instanceof LauncherAppWidgetHostView) {
|
||||
d.dragView.detachContentView(/* reattachToPreviousParent= */ true);
|
||||
|
||||
final CellLayout cellLayout = getParentCellLayoutForView(cell);
|
||||
boolean pageIsVisible = isVisible(cellLayout);
|
||||
|
||||
if (pageIsVisible) {
|
||||
onCompleteRunnable = getWidgetResizeFrameRunnable(options,
|
||||
(LauncherAppWidgetHostView) cell, cellLayout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2150,6 +2149,21 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Runnable getWidgetResizeFrameRunnable(DragOptions options,
|
||||
LauncherAppWidgetHostView hostView, CellLayout cellLayout) {
|
||||
AppWidgetProviderInfo pInfo = hostView.getAppWidgetInfo();
|
||||
if (pInfo != null && pInfo.resizeMode != AppWidgetProviderInfo.RESIZE_NONE
|
||||
&& !options.isAccessibleDrag) {
|
||||
return () -> {
|
||||
if (!isPageInTransition()) {
|
||||
AppWidgetResizeFrame.showForWidget(hostView, cellLayout);
|
||||
}
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void onNoCellFound(
|
||||
View dropTargetLayout, ItemInfo itemInfo, @Nullable InstanceId logInstanceId) {
|
||||
int strId = mLauncher.isHotseatLayout(dropTargetLayout)
|
||||
|
||||
Reference in New Issue
Block a user