Merge "Fix a couple polish bugs with new folder previews" into ub-launcher3-calgary
This commit is contained in:
@@ -510,6 +510,9 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
|
|||||||
canvas.save();
|
canvas.save();
|
||||||
canvas.translate(mTempLocation[0], mTempLocation[1]);
|
canvas.translate(mTempLocation[0], mTempLocation[1]);
|
||||||
bg.drawBackground(canvas, mFolderBgPaint);
|
bg.drawBackground(canvas, mFolderBgPaint);
|
||||||
|
if (!bg.isClipping) {
|
||||||
|
bg.drawBackgroundStroke(canvas, mFolderBgPaint);
|
||||||
|
}
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -529,11 +532,13 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
|
|||||||
|
|
||||||
for (int i = 0; i < mFolderBackgrounds.size(); i++) {
|
for (int i = 0; i < mFolderBackgrounds.size(); i++) {
|
||||||
FolderIcon.PreviewBackground bg = mFolderBackgrounds.get(i);
|
FolderIcon.PreviewBackground bg = mFolderBackgrounds.get(i);
|
||||||
cellToPoint(bg.delegateCellX, bg.delegateCellY, mTempLocation);
|
if (bg.isClipping) {
|
||||||
canvas.save();
|
cellToPoint(bg.delegateCellX, bg.delegateCellY, mTempLocation);
|
||||||
canvas.translate(mTempLocation[0], mTempLocation[1]);
|
canvas.save();
|
||||||
bg.drawBackgroundStroke(canvas, mFolderBgPaint);
|
canvas.translate(mTempLocation[0], mTempLocation[1]);
|
||||||
canvas.restore();
|
bg.drawBackgroundStroke(canvas, mFolderBgPaint);
|
||||||
|
canvas.restore();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ public class Workspace extends PagedView
|
|||||||
public static final int REORDER_TIMEOUT = 350;
|
public static final int REORDER_TIMEOUT = 350;
|
||||||
private final Alarm mFolderCreationAlarm = new Alarm();
|
private final Alarm mFolderCreationAlarm = new Alarm();
|
||||||
private final Alarm mReorderAlarm = new Alarm();
|
private final Alarm mReorderAlarm = new Alarm();
|
||||||
private FolderIcon.PreviewBackground mFolderCreateBg = new FolderIcon.PreviewBackground();
|
private FolderIcon.PreviewBackground mFolderCreateBg;
|
||||||
private FolderIcon mDragOverFolderIcon = null;
|
private FolderIcon mDragOverFolderIcon = null;
|
||||||
private boolean mCreateUserFolderOnDrop = false;
|
private boolean mCreateUserFolderOnDrop = false;
|
||||||
private boolean mAddToExistingFolderOnDrop = false;
|
private boolean mAddToExistingFolderOnDrop = false;
|
||||||
@@ -2878,7 +2878,9 @@ public class Workspace extends PagedView
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void cleanupFolderCreation() {
|
private void cleanupFolderCreation() {
|
||||||
mFolderCreateBg.animateToRest();
|
if (mFolderCreateBg != null) {
|
||||||
|
mFolderCreateBg.animateToRest();
|
||||||
|
}
|
||||||
mFolderCreationAlarm.setOnAlarmListener(null);
|
mFolderCreationAlarm.setOnAlarmListener(null);
|
||||||
mFolderCreationAlarm.cancelAlarm();
|
mFolderCreationAlarm.cancelAlarm();
|
||||||
}
|
}
|
||||||
@@ -3182,6 +3184,8 @@ public class Workspace extends PagedView
|
|||||||
int cellX;
|
int cellX;
|
||||||
int cellY;
|
int cellY;
|
||||||
|
|
||||||
|
FolderIcon.PreviewBackground bg = new FolderIcon.PreviewBackground();
|
||||||
|
|
||||||
public FolderCreationAlarmListener(CellLayout layout, int cellX, int cellY) {
|
public FolderCreationAlarmListener(CellLayout layout, int cellX, int cellY) {
|
||||||
this.layout = layout;
|
this.layout = layout;
|
||||||
this.cellX = cellX;
|
this.cellX = cellX;
|
||||||
@@ -3190,11 +3194,15 @@ public class Workspace extends PagedView
|
|||||||
DeviceProfile grid = mLauncher.getDeviceProfile();
|
DeviceProfile grid = mLauncher.getDeviceProfile();
|
||||||
BubbleTextView cell = (BubbleTextView) layout.getChildAt(cellX, cellY);
|
BubbleTextView cell = (BubbleTextView) layout.getChildAt(cellX, cellY);
|
||||||
|
|
||||||
mFolderCreateBg.setup(getResources().getDisplayMetrics(), grid, null,
|
bg.setup(getResources().getDisplayMetrics(), grid, null,
|
||||||
cell.getMeasuredWidth(), cell.getPaddingTop());
|
cell.getMeasuredWidth(), cell.getPaddingTop());
|
||||||
|
|
||||||
|
// The full preview background should appear behind the icon
|
||||||
|
bg.isClipping = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onAlarm(Alarm alarm) {
|
public void onAlarm(Alarm alarm) {
|
||||||
|
mFolderCreateBg = bg;
|
||||||
mFolderCreateBg.animateToAccept(layout, cellX, cellY);
|
mFolderCreateBg.animateToAccept(layout, cellX, cellY);
|
||||||
layout.clearDragOutlines();
|
layout.clearDragOutlines();
|
||||||
setDragMode(DRAG_MODE_CREATE_FOLDER);
|
setDragMode(DRAG_MODE_CREATE_FOLDER);
|
||||||
|
|||||||
@@ -492,12 +492,16 @@ public class FolderIcon extends FrameLayout implements FolderListener {
|
|||||||
canvas.restore();
|
canvas.restore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This object represents a FolderIcon preview background. It stores drawing / measurement
|
||||||
|
* information, handles drawing, and animation (accept state <--> rest state).
|
||||||
|
*/
|
||||||
public static class PreviewBackground {
|
public static class PreviewBackground {
|
||||||
private float mScale = 1f;
|
private float mScale = 1f;
|
||||||
private float mColorMultiplier = 1f;
|
private float mColorMultiplier = 1f;
|
||||||
private Path mClipPath = new Path();
|
private Path mClipPath = new Path();
|
||||||
private int mStrokeWidth;
|
private int mStrokeWidth;
|
||||||
private View mInvalidateDeligate;
|
private View mInvalidateDelegate;
|
||||||
|
|
||||||
public int previewSize;
|
public int previewSize;
|
||||||
private int basePreviewOffsetX;
|
private int basePreviewOffsetX;
|
||||||
@@ -507,6 +511,10 @@ public class FolderIcon extends FrameLayout implements FolderListener {
|
|||||||
public int delegateCellX;
|
public int delegateCellX;
|
||||||
public int delegateCellY;
|
public int delegateCellY;
|
||||||
|
|
||||||
|
// When the PreviewBackground is drawn under an icon (for creating a folder) the border
|
||||||
|
// should not occlude the icon
|
||||||
|
public boolean isClipping = true;
|
||||||
|
|
||||||
// Drawing / animation configurations
|
// Drawing / animation configurations
|
||||||
private static final float ACCEPT_SCALE_FACTOR = 1.25f;
|
private static final float ACCEPT_SCALE_FACTOR = 1.25f;
|
||||||
private static final float ACCEPT_COLOR_MULTIPLIER = 1.5f;
|
private static final float ACCEPT_COLOR_MULTIPLIER = 1.5f;
|
||||||
@@ -519,9 +527,9 @@ public class FolderIcon extends FrameLayout implements FolderListener {
|
|||||||
|
|
||||||
ValueAnimator mScaleAnimator;
|
ValueAnimator mScaleAnimator;
|
||||||
|
|
||||||
public void setup(DisplayMetrics dm, DeviceProfile grid, View invalidateDeligate,
|
public void setup(DisplayMetrics dm, DeviceProfile grid, View invalidateDelegate,
|
||||||
int availableSpace, int topPadding) {
|
int availableSpace, int topPadding) {
|
||||||
mInvalidateDeligate = invalidateDeligate;
|
mInvalidateDelegate = invalidateDelegate;
|
||||||
|
|
||||||
final int previewSize = grid.folderIconSizePx;
|
final int previewSize = grid.folderIconSizePx;
|
||||||
final int previewPadding = grid.folderIconPreviewPadding;
|
final int previewPadding = grid.folderIconPreviewPadding;
|
||||||
@@ -557,8 +565,8 @@ public class FolderIcon extends FrameLayout implements FolderListener {
|
|||||||
mClipPath.reset();
|
mClipPath.reset();
|
||||||
mClipPath.addCircle(radius, radius, radius, Path.Direction.CW);
|
mClipPath.addCircle(radius, radius, radius, Path.Direction.CW);
|
||||||
|
|
||||||
if (mInvalidateDeligate != null) {
|
if (mInvalidateDelegate != null) {
|
||||||
mInvalidateDeligate.invalidate();
|
mInvalidateDelegate.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mDrawingDelegate != null) {
|
if (mDrawingDelegate != null) {
|
||||||
@@ -566,8 +574,8 @@ public class FolderIcon extends FrameLayout implements FolderListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setInvalidateDeligate(View invalidateDeligate) {
|
void setInvalidateDelegate(View invalidateDelegate) {
|
||||||
mInvalidateDeligate = invalidateDeligate;
|
mInvalidateDelegate = invalidateDelegate;
|
||||||
invalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -742,7 +750,7 @@ public class FolderIcon extends FrameLayout implements FolderListener {
|
|||||||
|
|
||||||
public void setFolderBackground(PreviewBackground bg) {
|
public void setFolderBackground(PreviewBackground bg) {
|
||||||
mBackground = bg;
|
mBackground = bg;
|
||||||
mBackground.setInvalidateDeligate(this);
|
mBackground.setInvalidateDelegate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user