Loading src/com/android/launcher3/CellLayout.java +1 −1 Original line number Diff line number Diff line Loading @@ -1272,7 +1272,7 @@ public class CellLayout extends ViewGroup { * @return The X, Y cell of a vacant area that can contain this object, * nearest the requested location. */ private int[] findNearestArea(int relativeXPos, int relativeYPos, int minSpanX, int minSpanY, protected int[] findNearestArea(int relativeXPos, int relativeYPos, int minSpanX, int minSpanY, int spanX, int spanY, boolean ignoreOccupied, int[] result, int[] resultSpan) { // For items with a spanX / spanY > 1, the passed in point (relativeXPos, relativeYPos) // corresponds to the center of the item, but we are searching based on the top-left cell, Loading src/com/android/launcher3/MultipageCellLayout.java +39 −3 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.view.View; import com.android.launcher3.celllayout.CellLayoutLayoutParams; import com.android.launcher3.celllayout.MulticellReorderAlgorithm; import com.android.launcher3.celllayout.ReorderAlgorithm; import com.android.launcher3.util.CellAndSpan; import com.android.launcher3.util.GridOccupancy; Loading @@ -46,6 +45,33 @@ public class MultipageCellLayout extends CellLayout { this(context, attrs, 0); } @Override protected int[] findNearestArea(int relativeXPos, int relativeYPos, int minSpanX, int minSpanY, int spanX, int spanY, boolean ignoreOccupied, int[] result, int[] resultSpan) { return createReorderAlgorithm().simulateSeam( () -> super.findNearestArea(relativeXPos, relativeYPos, minSpanX, minSpanY, spanX, spanY, ignoreOccupied, result, resultSpan)); } @Override public void getDirectionVectorForDrop(int dragViewCenterX, int dragViewCenterY, int spanX, int spanY, View dragView, int[] resultDirection) { createReorderAlgorithm().simulateSeam( () -> { super.getDirectionVectorForDrop(dragViewCenterX, dragViewCenterY, spanX, spanY, dragView, resultDirection); return 0; }); } @Override public boolean isNearestDropLocationOccupied(int pixelX, int pixelY, int spanX, int spanY, View dragView, int[] result) { return createReorderAlgorithm().simulateSeam( () -> super.isNearestDropLocationOccupied(pixelX, pixelY, spanX, spanY, dragView, result)); } public MultipageCellLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mLeftBackground = getContext().getDrawable(R.drawable.bg_celllayout); Loading @@ -71,13 +97,23 @@ public class MultipageCellLayout extends CellLayout { cellX++; } int finalCellX = cellX; return ((MulticellReorderAlgorithm) createReorderAlgorithm()).simulateSeam( return createReorderAlgorithm().simulateSeam( () -> super.createAreaForResize(finalCellX, cellY, spanX, spanY, dragView, direction, commit)); } @Override public ReorderAlgorithm createReorderAlgorithm() { int[] performReorder(int pixelX, int pixelY, int minSpanX, int minSpanY, int spanX, int spanY, View dragView, int[] result, int[] resultSpan, int mode) { if (pixelX >= getWidth() / 2) { pixelX += getCellWidth(); } return super.performReorder(pixelX, pixelY, minSpanX, minSpanY, spanX, spanY, dragView, result, resultSpan, mode); } @Override public MulticellReorderAlgorithm createReorderAlgorithm() { return new MulticellReorderAlgorithm(this); } Loading Loading
src/com/android/launcher3/CellLayout.java +1 −1 Original line number Diff line number Diff line Loading @@ -1272,7 +1272,7 @@ public class CellLayout extends ViewGroup { * @return The X, Y cell of a vacant area that can contain this object, * nearest the requested location. */ private int[] findNearestArea(int relativeXPos, int relativeYPos, int minSpanX, int minSpanY, protected int[] findNearestArea(int relativeXPos, int relativeYPos, int minSpanX, int minSpanY, int spanX, int spanY, boolean ignoreOccupied, int[] result, int[] resultSpan) { // For items with a spanX / spanY > 1, the passed in point (relativeXPos, relativeYPos) // corresponds to the center of the item, but we are searching based on the top-left cell, Loading
src/com/android/launcher3/MultipageCellLayout.java +39 −3 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.view.View; import com.android.launcher3.celllayout.CellLayoutLayoutParams; import com.android.launcher3.celllayout.MulticellReorderAlgorithm; import com.android.launcher3.celllayout.ReorderAlgorithm; import com.android.launcher3.util.CellAndSpan; import com.android.launcher3.util.GridOccupancy; Loading @@ -46,6 +45,33 @@ public class MultipageCellLayout extends CellLayout { this(context, attrs, 0); } @Override protected int[] findNearestArea(int relativeXPos, int relativeYPos, int minSpanX, int minSpanY, int spanX, int spanY, boolean ignoreOccupied, int[] result, int[] resultSpan) { return createReorderAlgorithm().simulateSeam( () -> super.findNearestArea(relativeXPos, relativeYPos, minSpanX, minSpanY, spanX, spanY, ignoreOccupied, result, resultSpan)); } @Override public void getDirectionVectorForDrop(int dragViewCenterX, int dragViewCenterY, int spanX, int spanY, View dragView, int[] resultDirection) { createReorderAlgorithm().simulateSeam( () -> { super.getDirectionVectorForDrop(dragViewCenterX, dragViewCenterY, spanX, spanY, dragView, resultDirection); return 0; }); } @Override public boolean isNearestDropLocationOccupied(int pixelX, int pixelY, int spanX, int spanY, View dragView, int[] result) { return createReorderAlgorithm().simulateSeam( () -> super.isNearestDropLocationOccupied(pixelX, pixelY, spanX, spanY, dragView, result)); } public MultipageCellLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mLeftBackground = getContext().getDrawable(R.drawable.bg_celllayout); Loading @@ -71,13 +97,23 @@ public class MultipageCellLayout extends CellLayout { cellX++; } int finalCellX = cellX; return ((MulticellReorderAlgorithm) createReorderAlgorithm()).simulateSeam( return createReorderAlgorithm().simulateSeam( () -> super.createAreaForResize(finalCellX, cellY, spanX, spanY, dragView, direction, commit)); } @Override public ReorderAlgorithm createReorderAlgorithm() { int[] performReorder(int pixelX, int pixelY, int minSpanX, int minSpanY, int spanX, int spanY, View dragView, int[] result, int[] resultSpan, int mode) { if (pixelX >= getWidth() / 2) { pixelX += getCellWidth(); } return super.performReorder(pixelX, pixelY, minSpanX, minSpanY, spanX, spanY, dragView, result, resultSpan, mode); } @Override public MulticellReorderAlgorithm createReorderAlgorithm() { return new MulticellReorderAlgorithm(this); } Loading