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