Merge "Making CellLayout inflatable without LauncherActivtiy" into ub-launcher3-master
This commit is contained in:
commit
4a5bc9f8b0
|
@ -62,6 +62,7 @@ import com.android.launcher3.util.GridOccupancy;
|
||||||
import com.android.launcher3.util.ParcelableSparseArray;
|
import com.android.launcher3.util.ParcelableSparseArray;
|
||||||
import com.android.launcher3.util.Themes;
|
import com.android.launcher3.util.Themes;
|
||||||
import com.android.launcher3.util.Thunk;
|
import com.android.launcher3.util.Thunk;
|
||||||
|
import com.android.launcher3.views.ActivityContext;
|
||||||
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
|
@ -82,7 +83,7 @@ public class CellLayout extends ViewGroup {
|
||||||
private static final String TAG = "CellLayout";
|
private static final String TAG = "CellLayout";
|
||||||
private static final boolean LOGD = false;
|
private static final boolean LOGD = false;
|
||||||
|
|
||||||
private final Launcher mLauncher;
|
protected final ActivityContext mActivity;
|
||||||
@ViewDebug.ExportedProperty(category = "launcher")
|
@ViewDebug.ExportedProperty(category = "launcher")
|
||||||
@Thunk int mCellWidth;
|
@Thunk int mCellWidth;
|
||||||
@ViewDebug.ExportedProperty(category = "launcher")
|
@ViewDebug.ExportedProperty(category = "launcher")
|
||||||
|
@ -106,7 +107,6 @@ public class CellLayout extends ViewGroup {
|
||||||
private GridOccupancy mTmpOccupied;
|
private GridOccupancy mTmpOccupied;
|
||||||
|
|
||||||
private OnTouchListener mInterceptTouchListener;
|
private OnTouchListener mInterceptTouchListener;
|
||||||
private final StylusEventHelper mStylusEventHelper;
|
|
||||||
|
|
||||||
private final ArrayList<PreviewBackground> mFolderBackgrounds = new ArrayList<>();
|
private final ArrayList<PreviewBackground> mFolderBackgrounds = new ArrayList<>();
|
||||||
final PreviewBackground mFolderLeaveBehind = new PreviewBackground();
|
final PreviewBackground mFolderLeaveBehind = new PreviewBackground();
|
||||||
|
@ -201,9 +201,9 @@ public class CellLayout extends ViewGroup {
|
||||||
// the user where a dragged item will land when dropped.
|
// the user where a dragged item will land when dropped.
|
||||||
setWillNotDraw(false);
|
setWillNotDraw(false);
|
||||||
setClipToPadding(false);
|
setClipToPadding(false);
|
||||||
mLauncher = Launcher.getLauncher(context);
|
mActivity = ActivityContext.lookupContext(context);
|
||||||
|
|
||||||
DeviceProfile grid = mLauncher.getDeviceProfile();
|
DeviceProfile grid = mActivity.getDeviceProfile();
|
||||||
|
|
||||||
mCellWidth = mCellHeight = -1;
|
mCellWidth = mCellHeight = -1;
|
||||||
mFixedCellWidth = mFixedCellHeight = -1;
|
mFixedCellWidth = mFixedCellHeight = -1;
|
||||||
|
@ -286,8 +286,6 @@ public class CellLayout extends ViewGroup {
|
||||||
|
|
||||||
mShortcutsAndWidgets = new ShortcutAndWidgetContainer(context, mContainerType);
|
mShortcutsAndWidgets = new ShortcutAndWidgetContainer(context, mContainerType);
|
||||||
mShortcutsAndWidgets.setCellDimensions(mCellWidth, mCellHeight, mCountX, mCountY);
|
mShortcutsAndWidgets.setCellDimensions(mCellWidth, mCellHeight, mCountX, mCountY);
|
||||||
|
|
||||||
mStylusEventHelper = new StylusEventHelper(new SimpleOnStylusPressListener(this), this);
|
|
||||||
addView(mShortcutsAndWidgets);
|
addView(mShortcutsAndWidgets);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,20 +335,6 @@ public class CellLayout extends ViewGroup {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onTouchEvent(MotionEvent ev) {
|
|
||||||
boolean handled = super.onTouchEvent(ev);
|
|
||||||
// Stylus button press on a home screen should not switch between overview mode and
|
|
||||||
// the home screen mode, however, once in overview mode stylus button press should be
|
|
||||||
// enabled to allow rearranging the different home screens. So check what mode
|
|
||||||
// the workspace is in, and only perform stylus button presses while in overview mode.
|
|
||||||
if (mLauncher.isInState(LauncherState.OVERVIEW)
|
|
||||||
&& mStylusEventHelper.onMotionEvent(ev)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return handled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void enableHardwareLayer(boolean hasLayer) {
|
public void enableHardwareLayer(boolean hasLayer) {
|
||||||
mShortcutsAndWidgets.setLayerType(hasLayer ? LAYER_TYPE_HARDWARE : LAYER_TYPE_NONE, sPaint);
|
mShortcutsAndWidgets.setLayerType(hasLayer ? LAYER_TYPE_HARDWARE : LAYER_TYPE_NONE, sPaint);
|
||||||
}
|
}
|
||||||
|
@ -504,7 +488,7 @@ public class CellLayout extends ViewGroup {
|
||||||
|
|
||||||
public void setFolderLeaveBehindCell(int x, int y) {
|
public void setFolderLeaveBehindCell(int x, int y) {
|
||||||
View child = getChildAt(x, y);
|
View child = getChildAt(x, y);
|
||||||
mFolderLeaveBehind.setup(mLauncher, null,
|
mFolderLeaveBehind.setup(getContext(), mActivity, null,
|
||||||
child.getMeasuredWidth(), child.getPaddingTop());
|
child.getMeasuredWidth(), child.getPaddingTop());
|
||||||
|
|
||||||
mFolderLeaveBehind.delegateCellX = x;
|
mFolderLeaveBehind.delegateCellX = x;
|
||||||
|
@ -945,7 +929,7 @@ public class CellLayout extends ViewGroup {
|
||||||
if (resize) {
|
if (resize) {
|
||||||
cellToRect(cellX, cellY, spanX, spanY, r);
|
cellToRect(cellX, cellY, spanX, spanY, r);
|
||||||
if (v instanceof LauncherAppWidgetHostView) {
|
if (v instanceof LauncherAppWidgetHostView) {
|
||||||
DeviceProfile profile = mLauncher.getDeviceProfile();
|
DeviceProfile profile = mActivity.getDeviceProfile();
|
||||||
Utilities.shrinkRect(r, profile.appWidgetScale.x, profile.appWidgetScale.y);
|
Utilities.shrinkRect(r, profile.appWidgetScale.x, profile.appWidgetScale.y);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -2047,7 +2031,7 @@ public class CellLayout extends ViewGroup {
|
||||||
.translationY(initDeltaY)
|
.translationY(initDeltaY)
|
||||||
.build(child)
|
.build(child)
|
||||||
.setDuration(REORDER_ANIMATION_DURATION);
|
.setDuration(REORDER_ANIMATION_DURATION);
|
||||||
mLauncher.getDragController().addFirstFrameAnimationHelper(a);
|
Launcher.cast(mActivity).getDragController().addFirstFrameAnimationHelper(a);
|
||||||
a.setInterpolator(DEACCEL_1_5);
|
a.setInterpolator(DEACCEL_1_5);
|
||||||
a.start();
|
a.start();
|
||||||
}
|
}
|
||||||
|
@ -2063,7 +2047,7 @@ public class CellLayout extends ViewGroup {
|
||||||
private void commitTempPlacement() {
|
private void commitTempPlacement() {
|
||||||
mTmpOccupied.copyTo(mOccupied);
|
mTmpOccupied.copyTo(mOccupied);
|
||||||
|
|
||||||
int screenId = mLauncher.getWorkspace().getIdForScreen(this);
|
int screenId = Launcher.cast(mActivity).getWorkspace().getIdForScreen(this);
|
||||||
int container = Favorites.CONTAINER_DESKTOP;
|
int container = Favorites.CONTAINER_DESKTOP;
|
||||||
|
|
||||||
if (mContainerType == HOTSEAT) {
|
if (mContainerType == HOTSEAT) {
|
||||||
|
@ -2089,8 +2073,8 @@ public class CellLayout extends ViewGroup {
|
||||||
info.spanY = lp.cellVSpan;
|
info.spanY = lp.cellVSpan;
|
||||||
|
|
||||||
if (requiresDbUpdate) {
|
if (requiresDbUpdate) {
|
||||||
mLauncher.getModelWriter().modifyItemInDatabase(info, container, screenId,
|
Launcher.cast(mActivity).getModelWriter().modifyItemInDatabase(info, container,
|
||||||
info.cellX, info.cellY, info.spanX, info.spanY);
|
screenId, info.cellX, info.cellY, info.spanX, info.spanY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,6 @@ import android.content.Context;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.MotionEvent;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewDebug;
|
import android.view.ViewDebug;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -32,8 +31,6 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
|
||||||
|
|
||||||
public class Hotseat extends CellLayout implements LogContainerProvider, Insettable {
|
public class Hotseat extends CellLayout implements LogContainerProvider, Insettable {
|
||||||
|
|
||||||
private final Launcher mLauncher;
|
|
||||||
|
|
||||||
@ViewDebug.ExportedProperty(category = "launcher")
|
@ViewDebug.ExportedProperty(category = "launcher")
|
||||||
private boolean mHasVerticalHotseat;
|
private boolean mHasVerticalHotseat;
|
||||||
|
|
||||||
|
@ -47,7 +44,6 @@ public class Hotseat extends CellLayout implements LogContainerProvider, Insetta
|
||||||
|
|
||||||
public Hotseat(Context context, AttributeSet attrs, int defStyle) {
|
public Hotseat(Context context, AttributeSet attrs, int defStyle) {
|
||||||
super(context, attrs, defStyle);
|
super(context, attrs, defStyle);
|
||||||
mLauncher = Launcher.getLauncher(context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the orientation specific coordinates given an invariant order in the hotseat. */
|
/* Get the orientation specific coordinates given an invariant order in the hotseat. */
|
||||||
|
@ -59,10 +55,10 @@ public class Hotseat extends CellLayout implements LogContainerProvider, Insetta
|
||||||
return mHasVerticalHotseat ? (getCountY() - (rank + 1)) : 0;
|
return mHasVerticalHotseat ? (getCountY() - (rank + 1)) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void resetLayout(boolean hasVerticalHotseat) {
|
public void resetLayout(boolean hasVerticalHotseat) {
|
||||||
removeAllViewsInLayout();
|
removeAllViewsInLayout();
|
||||||
mHasVerticalHotseat = hasVerticalHotseat;
|
mHasVerticalHotseat = hasVerticalHotseat;
|
||||||
InvariantDeviceProfile idp = mLauncher.getDeviceProfile().inv;
|
InvariantDeviceProfile idp = mActivity.getDeviceProfile().inv;
|
||||||
if (hasVerticalHotseat) {
|
if (hasVerticalHotseat) {
|
||||||
setGridSize(1, idp.numHotseatIcons);
|
setGridSize(1, idp.numHotseatIcons);
|
||||||
} else {
|
} else {
|
||||||
|
@ -70,15 +66,6 @@ public class Hotseat extends CellLayout implements LogContainerProvider, Insetta
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onInterceptTouchEvent(MotionEvent ev) {
|
|
||||||
// We don't want any clicks to go through to the hotseat unless the workspace is in
|
|
||||||
// the normal state or an accessible drag is in progress.
|
|
||||||
return (!mLauncher.getWorkspace().workspaceIconsCanBeDragged()
|
|
||||||
&& !mLauncher.getAccessibilityDelegate().isInAccessibleDrag())
|
|
||||||
|| super.onInterceptTouchEvent(ev);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void fillInLogContainerData(View v, ItemInfo info, Target target, Target targetParent) {
|
public void fillInLogContainerData(View v, ItemInfo info, Target target, Target targetParent) {
|
||||||
target.gridX = info.cellX;
|
target.gridX = info.cellX;
|
||||||
|
@ -89,7 +76,7 @@ public class Hotseat extends CellLayout implements LogContainerProvider, Insetta
|
||||||
@Override
|
@Override
|
||||||
public void setInsets(Rect insets) {
|
public void setInsets(Rect insets) {
|
||||||
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams();
|
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams();
|
||||||
DeviceProfile grid = mLauncher.getDeviceProfile();
|
DeviceProfile grid = mActivity.getDeviceProfile();
|
||||||
|
|
||||||
if (grid.isVerticalBarLayout()) {
|
if (grid.isVerticalBarLayout()) {
|
||||||
lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
|
lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
|
||||||
|
|
|
@ -122,6 +122,7 @@ import com.android.launcher3.util.Thunk;
|
||||||
import com.android.launcher3.util.TraceHelper;
|
import com.android.launcher3.util.TraceHelper;
|
||||||
import com.android.launcher3.util.UiThreadHelper;
|
import com.android.launcher3.util.UiThreadHelper;
|
||||||
import com.android.launcher3.util.ViewOnDrawExecutor;
|
import com.android.launcher3.util.ViewOnDrawExecutor;
|
||||||
|
import com.android.launcher3.views.ActivityContext;
|
||||||
import com.android.launcher3.views.OptionsPopupView;
|
import com.android.launcher3.views.OptionsPopupView;
|
||||||
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
||||||
import com.android.launcher3.widget.PendingAddShortcutInfo;
|
import com.android.launcher3.widget.PendingAddShortcutInfo;
|
||||||
|
@ -940,6 +941,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
|
||||||
mDropTargetBar.setup(mDragController);
|
mDropTargetBar.setup(mDragController);
|
||||||
|
|
||||||
mAllAppsController.setupViews(mAppsView);
|
mAllAppsController.setupViews(mAppsView);
|
||||||
|
mHotseat.setOnInterceptTouchListener(mWorkspace::onInterceptHotseatTouch);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2391,6 +2393,13 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
|
||||||
return (Launcher) fromContext(context);
|
return (Launcher) fromContext(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Just a wrapper around the type cast to allow easier tracking of calls.
|
||||||
|
*/
|
||||||
|
public static <T extends Launcher> T cast(ActivityContext activityContext) {
|
||||||
|
return (T) activityContext;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback for listening for onResume
|
* Callback for listening for onResume
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -26,6 +26,7 @@ import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import com.android.launcher3.CellLayout.ContainerType;
|
import com.android.launcher3.CellLayout.ContainerType;
|
||||||
|
import com.android.launcher3.views.ActivityContext;
|
||||||
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
||||||
|
|
||||||
public class ShortcutAndWidgetContainer extends ViewGroup {
|
public class ShortcutAndWidgetContainer extends ViewGroup {
|
||||||
|
@ -43,12 +44,12 @@ public class ShortcutAndWidgetContainer extends ViewGroup {
|
||||||
|
|
||||||
private int mCountX;
|
private int mCountX;
|
||||||
|
|
||||||
private Launcher mLauncher;
|
private ActivityContext mActivity;
|
||||||
private boolean mInvertIfRtl = false;
|
private boolean mInvertIfRtl = false;
|
||||||
|
|
||||||
public ShortcutAndWidgetContainer(Context context, @ContainerType int containerType) {
|
public ShortcutAndWidgetContainer(Context context, @ContainerType int containerType) {
|
||||||
super(context);
|
super(context);
|
||||||
mLauncher = Launcher.getLauncher(context);
|
mActivity = ActivityContext.lookupContext(context);
|
||||||
mWallpaperManager = WallpaperManager.getInstance(context);
|
mWallpaperManager = WallpaperManager.getInstance(context);
|
||||||
mContainerType = containerType;
|
mContainerType = containerType;
|
||||||
}
|
}
|
||||||
|
@ -92,7 +93,7 @@ public class ShortcutAndWidgetContainer extends ViewGroup {
|
||||||
public void setupLp(View child) {
|
public void setupLp(View child) {
|
||||||
CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
|
CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
|
||||||
if (child instanceof LauncherAppWidgetHostView) {
|
if (child instanceof LauncherAppWidgetHostView) {
|
||||||
DeviceProfile profile = mLauncher.getDeviceProfile();
|
DeviceProfile profile = mActivity.getDeviceProfile();
|
||||||
lp.setup(mCellWidth, mCellHeight, invertLayoutHorizontally(), mCountX,
|
lp.setup(mCellWidth, mCellHeight, invertLayoutHorizontally(), mCountX,
|
||||||
profile.appWidgetScale.x, profile.appWidgetScale.y);
|
profile.appWidgetScale.x, profile.appWidgetScale.y);
|
||||||
} else {
|
} else {
|
||||||
|
@ -107,12 +108,12 @@ public class ShortcutAndWidgetContainer extends ViewGroup {
|
||||||
|
|
||||||
public int getCellContentHeight() {
|
public int getCellContentHeight() {
|
||||||
return Math.min(getMeasuredHeight(),
|
return Math.min(getMeasuredHeight(),
|
||||||
mLauncher.getDeviceProfile().getCellHeight(mContainerType));
|
mActivity.getDeviceProfile().getCellHeight(mContainerType));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void measureChild(View child) {
|
public void measureChild(View child) {
|
||||||
CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
|
CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
|
||||||
final DeviceProfile profile = mLauncher.getDeviceProfile();
|
final DeviceProfile profile = mActivity.getDeviceProfile();
|
||||||
|
|
||||||
if (child instanceof LauncherAppWidgetHostView) {
|
if (child instanceof LauncherAppWidgetHostView) {
|
||||||
lp.setup(mCellWidth, mCellHeight, invertLayoutHorizontally(), mCountX,
|
lp.setup(mCellWidth, mCellHeight, invertLayoutHorizontally(), mCountX,
|
||||||
|
@ -149,7 +150,7 @@ public class ShortcutAndWidgetContainer extends ViewGroup {
|
||||||
LauncherAppWidgetHostView lahv = (LauncherAppWidgetHostView) child;
|
LauncherAppWidgetHostView lahv = (LauncherAppWidgetHostView) child;
|
||||||
|
|
||||||
// Scale and center the widget to fit within its cells.
|
// Scale and center the widget to fit within its cells.
|
||||||
DeviceProfile profile = mLauncher.getDeviceProfile();
|
DeviceProfile profile = mActivity.getDeviceProfile();
|
||||||
float scaleX = profile.appWidgetScale.x;
|
float scaleX = profile.appWidgetScale.x;
|
||||||
float scaleY = profile.appWidgetScale.y;
|
float scaleY = profile.appWidgetScale.y;
|
||||||
|
|
||||||
|
|
|
@ -475,6 +475,13 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||||
super.onViewAdded(child);
|
super.onViewAdded(child);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean onInterceptHotseatTouch(View v, MotionEvent ev) {
|
||||||
|
// We don't want any clicks to go through to the hotseat unless the workspace is in
|
||||||
|
// the normal state or an accessible drag is in progress.
|
||||||
|
return !workspaceIconsCanBeDragged()
|
||||||
|
&& !mLauncher.getAccessibilityDelegate().isInAccessibleDrag();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes and binds the first page
|
* Initializes and binds the first page
|
||||||
* @param qsb an existing qsb to recycle or null.
|
* @param qsb an existing qsb to recycle or null.
|
||||||
|
@ -2442,7 +2449,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||||
this.cellY = cellY;
|
this.cellY = cellY;
|
||||||
|
|
||||||
BubbleTextView cell = (BubbleTextView) layout.getChildAt(cellX, cellY);
|
BubbleTextView cell = (BubbleTextView) layout.getChildAt(cellX, cellY);
|
||||||
bg.setup(mLauncher, null, cell.getMeasuredWidth(), cell.getPaddingTop());
|
bg.setup(mLauncher, mLauncher, null, cell.getMeasuredWidth(), cell.getPaddingTop());
|
||||||
|
|
||||||
// The full preview background should appear behind the icon
|
// The full preview background should appear behind the icon
|
||||||
bg.isClipping = false;
|
bg.isClipping = false;
|
||||||
|
|
|
@ -23,6 +23,7 @@ import android.animation.Animator;
|
||||||
import android.animation.AnimatorListenerAdapter;
|
import android.animation.AnimatorListenerAdapter;
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.animation.ValueAnimator;
|
import android.animation.ValueAnimator;
|
||||||
|
import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
|
@ -41,6 +42,7 @@ import com.android.launcher3.DeviceProfile;
|
||||||
import com.android.launcher3.Launcher;
|
import com.android.launcher3.Launcher;
|
||||||
import com.android.launcher3.R;
|
import com.android.launcher3.R;
|
||||||
import com.android.launcher3.util.Themes;
|
import com.android.launcher3.util.Themes;
|
||||||
|
import com.android.launcher3.views.ActivityContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This object represents a FolderIcon preview background. It stores drawing / measurement
|
* This object represents a FolderIcon preview background. It stores drawing / measurement
|
||||||
|
@ -121,20 +123,20 @@ public class PreviewBackground {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public void setup(Launcher launcher, View invalidateDelegate,
|
public void setup(Context context, ActivityContext activity, View invalidateDelegate,
|
||||||
int availableSpaceX, int topPadding) {
|
int availableSpaceX, int topPadding) {
|
||||||
mInvalidateDelegate = invalidateDelegate;
|
mInvalidateDelegate = invalidateDelegate;
|
||||||
mBgColor = Themes.getAttrColor(launcher, android.R.attr.colorPrimary);
|
mBgColor = Themes.getAttrColor(context, android.R.attr.colorPrimary);
|
||||||
mBadgeColor = Themes.getAttrColor(launcher, R.attr.folderBadgeColor);
|
mBadgeColor = Themes.getAttrColor(context, R.attr.folderBadgeColor);
|
||||||
|
|
||||||
DeviceProfile grid = launcher.getDeviceProfile();
|
DeviceProfile grid = activity.getDeviceProfile();
|
||||||
previewSize = grid.folderIconSizePx;
|
previewSize = grid.folderIconSizePx;
|
||||||
|
|
||||||
basePreviewOffsetX = (availableSpaceX - previewSize) / 2;
|
basePreviewOffsetX = (availableSpaceX - previewSize) / 2;
|
||||||
basePreviewOffsetY = topPadding + grid.folderIconOffsetYPx;
|
basePreviewOffsetY = topPadding + grid.folderIconOffsetYPx;
|
||||||
|
|
||||||
// Stroke width is 1dp
|
// Stroke width is 1dp
|
||||||
mStrokeWidth = launcher.getResources().getDisplayMetrics().density;
|
mStrokeWidth = context.getResources().getDisplayMetrics().density;
|
||||||
|
|
||||||
float radius = getScaledRadius();
|
float radius = getScaledRadius();
|
||||||
float shadowRadius = radius + mStrokeWidth;
|
float shadowRadius = radius + mStrokeWidth;
|
||||||
|
|
|
@ -107,7 +107,8 @@ public class PreviewItemManager {
|
||||||
mTotalWidth = totalSize;
|
mTotalWidth = totalSize;
|
||||||
mPrevTopPadding = mIcon.getPaddingTop();
|
mPrevTopPadding = mIcon.getPaddingTop();
|
||||||
|
|
||||||
mIcon.mBackground.setup(mIcon.mLauncher, mIcon, mTotalWidth, mIcon.getPaddingTop());
|
mIcon.mBackground.setup(mIcon.mLauncher, mIcon.mLauncher, mIcon, mTotalWidth,
|
||||||
|
mIcon.getPaddingTop());
|
||||||
mIcon.mPreviewLayoutRule.init(mIcon.mBackground.previewSize, mIntrinsicIconSize,
|
mIcon.mPreviewLayoutRule.init(mIcon.mBackground.previewSize, mIntrinsicIconSize,
|
||||||
Utilities.isRtl(mIcon.getResources()));
|
Utilities.isRtl(mIcon.getResources()));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue