From 54e68e8597b7485a1d8d9712a246f135ecb54841 Mon Sep 17 00:00:00 2001 From: Suphon Thanakornpakapong Date: Mon, 9 May 2022 18:48:59 +0700 Subject: [PATCH] Use dynamic colors for folder background --- lawnchair/src/app/lawnchair/theme/color/ColorTokens.kt | 7 +++++-- .../src/app/lawnchair/theme/drawable/DrawableTokens.kt | 2 +- .../android/launcher3/folder/FolderAnimationManager.java | 5 ++--- src/com/android/launcher3/folder/PreviewBackground.java | 4 ++-- .../launcher3/pageindicators/PageIndicatorDots.java | 4 +++- src/com/android/launcher3/popup/ArrowPopup.java | 1 - 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lawnchair/src/app/lawnchair/theme/color/ColorTokens.kt b/lawnchair/src/app/lawnchair/theme/color/ColorTokens.kt index dcb9334f16..e8ba11750e 100644 --- a/lawnchair/src/app/lawnchair/theme/color/ColorTokens.kt +++ b/lawnchair/src/app/lawnchair/theme/color/ColorTokens.kt @@ -62,8 +62,11 @@ object ColorTokens { @JvmField val OverviewScrim = DayNightColorToken(Neutral2_500.setLStar(87.0), Neutral1_800) @JvmField val SearchboxHighlight = DayNightColorToken(SurfaceVariantLight, Neutral1_800) - @JvmField val FolderDotColor = Accent2_50 - @JvmField val FolderFillColor = DayNightColorToken(Neutral1_50.setLStar(98.0), Neutral2_50.setLStar(30.0)) + @JvmField val FolderDotColor = Accent3_100 + @JvmField val FolderBackgroundColor = DayNightColorToken(Neutral1_50.setLStar(98.0), Neutral2_50.setLStar(30.0)) + @JvmField val FolderIconBorderColor = ColorPrimary + @JvmField val FolderPaginationColor = DayNightColorToken(Accent1_600, Accent2_100) + @JvmField val FolderPreviewColor = DayNightColorToken(Accent2_50.setLStar(80.0), Accent2_50.setLStar(30.0)) @JvmField val PopupColorPrimary = DayNightColorToken(Accent2_50, Neutral2_800) @JvmField val PopupColorSecondary = DayNightColorToken(Neutral2_100, Neutral1_900) diff --git a/lawnchair/src/app/lawnchair/theme/drawable/DrawableTokens.kt b/lawnchair/src/app/lawnchair/theme/drawable/DrawableTokens.kt index 88d0534576..20113d23e8 100644 --- a/lawnchair/src/app/lawnchair/theme/drawable/DrawableTokens.kt +++ b/lawnchair/src/app/lawnchair/theme/drawable/DrawableTokens.kt @@ -39,7 +39,7 @@ object DrawableTokens { @JvmField val RoundRectFolder = ResourceDrawableToken(R.drawable.round_rect_folder) - .setColor(ColorTokens.FolderFillColor) + .setColor(ColorTokens.FolderBackgroundColor) @JvmField val RoundRectPrimary = ResourceDrawableToken(R.drawable.round_rect_primary) diff --git a/src/com/android/launcher3/folder/FolderAnimationManager.java b/src/com/android/launcher3/folder/FolderAnimationManager.java index 58ea306e60..9edccbaac7 100644 --- a/src/com/android/launcher3/folder/FolderAnimationManager.java +++ b/src/com/android/launcher3/folder/FolderAnimationManager.java @@ -178,9 +178,8 @@ public class FolderAnimationManager { final float yDistance = initialY - lp.y; // Set up the Folder background. - // TODO: apply colortokens - final int initialColor = Themes.getAttrColor(mContext, R.attr.folderPreviewColor); - final int finalColor = Themes.getAttrColor(mContext, R.attr.folderBackgroundColor); + final int initialColor = ColorTokens.FolderPreviewColor.resolveColor(mContext); + final int finalColor = ColorTokens.FolderBackgroundColor.resolveColor(mContext); mFolderBackground.mutate(); mFolderBackground.setColor(mIsOpening ? initialColor : finalColor); diff --git a/src/com/android/launcher3/folder/PreviewBackground.java b/src/com/android/launcher3/folder/PreviewBackground.java index a889ef8181..5955b69a32 100644 --- a/src/com/android/launcher3/folder/PreviewBackground.java +++ b/src/com/android/launcher3/folder/PreviewBackground.java @@ -153,8 +153,8 @@ public class PreviewBackground extends CellLayout.DelegatedCellDrawing { TypedArray ta = context.getTheme().obtainStyledAttributes(R.styleable.FolderIconPreview); mDotColor = ColorTokens.FolderDotColor.resolveColor(context); - mStrokeColor = ta.getColor(R.styleable.FolderIconPreview_folderIconBorderColor, 0); - mBgColor = ColorTokens.FolderFillColor.resolveColor(context); + mStrokeColor = ColorTokens.FolderIconBorderColor.resolveColor(context); + mBgColor = ColorTokens.FolderPreviewColor.resolveColor(context); ta.recycle(); DeviceProfile grid = activity.getDeviceProfile(); diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java index 29eefe2a03..cbfafa8c87 100644 --- a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java +++ b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java @@ -39,6 +39,8 @@ import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.util.Themes; +import app.lawnchair.theme.color.ColorTokens; + /** * {@link PageIndicator} which shows dots per page. The active page is shown with the current * accent color. @@ -111,7 +113,7 @@ public class PageIndicatorDots extends View implements PageIndicator { mCirclePaint = new Paint(Paint.ANTI_ALIAS_FLAG); mCirclePaint.setStyle(Style.FILL); - mCirclePaint.setColor(Themes.getAttrColor(context, R.attr.folderPaginationColor)); + mCirclePaint.setColor(ColorTokens.FolderPaginationColor.resolveColor(context)); mDotRadius = getResources().getDimension(R.dimen.page_indicator_dot_size) / 2; setOutlineProvider(new MyOutlineProver()); diff --git a/src/com/android/launcher3/popup/ArrowPopup.java b/src/com/android/launcher3/popup/ArrowPopup.java index 05b7b24be0..a91e1270f7 100644 --- a/src/com/android/launcher3/popup/ArrowPopup.java +++ b/src/com/android/launcher3/popup/ArrowPopup.java @@ -177,7 +177,6 @@ public abstract class ArrowPopup mColorExtractors = null; } - // TODO: use ColorTokens if (shouldUseColorExtraction) { mColors = new int[] { ColorTokens.PopupShadeFirst.resolveColor(context),