From ec6fd6ffb535d09aa719a950c8e75804a12744bd Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Sat, 11 Mar 2023 02:08:57 +0000 Subject: [PATCH] Update folder leave-behind color for taskbar Test: open folder in light theme and dark theme Fixes: 265828742 Change-Id: Ib544ab85dad16c203917ae02f924650e8a5bbc6f --- .../src/com/android/launcher3/taskbar/TaskbarView.java | 8 +++++++- src/com/android/launcher3/CellLayout.java | 5 ++++- src/com/android/launcher3/folder/PreviewBackground.java | 7 +++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java index e66856a4d8..7e78782f85 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java @@ -48,6 +48,7 @@ import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.LauncherBindableItemsContainer; +import com.android.launcher3.util.Themes; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.DoubleShadowBubbleTextView; import com.android.launcher3.views.IconButtonView; @@ -70,6 +71,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar private final int mIconTouchSize; private final int mItemMarginLeftRight; private final int mItemPadding; + private final int mFolderLeaveBehindColor; private final boolean mIsRtl; private final TaskbarActivityContext mActivityContext; @@ -136,6 +138,9 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar mItemMarginLeftRight = actualMargin - (mIconTouchSize - actualIconSize) / 2; mItemPadding = (mIconTouchSize - actualIconSize) / 2; + mFolderLeaveBehindColor = Themes.getAttrColor(mActivityContext, + android.R.attr.textColorTertiary); + // Needed to draw folder leave-behind when opening one. setWillNotDraw(false); @@ -547,7 +552,8 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar if (mLeaveBehindFolderIcon != null) { canvas.save(); canvas.translate(mLeaveBehindFolderIcon.getLeft(), mLeaveBehindFolderIcon.getTop()); - mLeaveBehindFolderIcon.getFolderBackground().drawLeaveBehind(canvas); + mLeaveBehindFolderIcon.getFolderBackground().drawLeaveBehind(canvas, + mFolderLeaveBehindColor); canvas.restore(); } } diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 38b0e0818c..37194b1ba6 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -92,6 +92,9 @@ public class CellLayout extends ViewGroup { private static final String TAG = "CellLayout"; private static final boolean LOGD = false; + /** The color of the "leave-behind" shape when a folder is opened from Hotseat. */ + private static final int FOLDER_LEAVE_BEHIND_COLOR = Color.argb(160, 245, 245, 245); + protected final ActivityContext mActivity; @ViewDebug.ExportedProperty(category = "launcher") @Thunk int mCellWidth; @@ -528,7 +531,7 @@ public class CellLayout extends ViewGroup { mFolderLeaveBehind.mDelegateCellY, mTempLocation); canvas.save(); canvas.translate(mTempLocation[0], mTempLocation[1]); - mFolderLeaveBehind.drawLeaveBehind(canvas); + mFolderLeaveBehind.drawLeaveBehind(canvas, FOLDER_LEAVE_BEHIND_COLOR); canvas.restore(); } diff --git a/src/com/android/launcher3/folder/PreviewBackground.java b/src/com/android/launcher3/folder/PreviewBackground.java index 8f9fa8a575..2465745f47 100644 --- a/src/com/android/launcher3/folder/PreviewBackground.java +++ b/src/com/android/launcher3/folder/PreviewBackground.java @@ -333,12 +333,15 @@ public class PreviewBackground extends CellLayout.DelegatedCellDrawing { getOffsetX() + inset, getOffsetY() + inset, getScaledRadius() - inset, mPaint); } - public void drawLeaveBehind(Canvas canvas) { + /** + * Draws the leave-behind circle on the given canvas and in the given color. + */ + public void drawLeaveBehind(Canvas canvas, int color) { float originalScale = mScale; mScale = 0.5f; mPaint.setStyle(Paint.Style.FILL); - mPaint.setColor(Color.argb(160, 245, 245, 245)); + mPaint.setColor(color); getShape().drawShape(canvas, getOffsetX(), getOffsetY(), getScaledRadius(), mPaint); mScale = originalScale;