diff --git a/res/values-v29/styles.xml b/res/values-v29/styles.xml
index 75905949a5..8254d483fc 100644
--- a/res/values-v29/styles.xml
+++ b/res/values-v29/styles.xml
@@ -27,6 +27,7 @@
- true
- true
- ?attr/workspaceTextColor
+ - ?attr/isWorkspaceDarkText
- shortEdges
- false
- false
diff --git a/res/values-v30/styles.xml b/res/values-v30/styles.xml
index 71740a92c5..a144363e12 100644
--- a/res/values-v30/styles.xml
+++ b/res/values-v30/styles.xml
@@ -27,6 +27,7 @@
- true
- true
- ?attr/workspaceTextColor
+ - ?attr/isWorkspaceDarkText
- always
- false
- false
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index a81802d87a..1f8a022b73 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -43,6 +43,7 @@
+
diff --git a/res/values/styles.xml b/res/values/styles.xml
index dd72114495..0bca00ebf3 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -27,6 +27,7 @@
- true
- true
- ?attr/workspaceTextColor
+ - ?attr/isWorkspaceDarkText
@@ -86,6 +89,7 @@
- #CDFFFFFF
- #FF80868B
- ?attr/workspaceTextColor
+ - true
@@ -126,6 +132,7 @@
- #19212121
- #CDFFFFFF
- ?attr/workspaceTextColor
+ - ?attr/isWorkspaceDarkText
- @color/workspace_text_color_dark
- @android:color/transparent
- @android:color/transparent
diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java
index 22d1b1c48a..f5a8ef6f1d 100644
--- a/src/com/android/launcher3/folder/Folder.java
+++ b/src/com/android/launcher3/folder/Folder.java
@@ -296,6 +296,8 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo
}
if (Utilities.ATLEAST_S) {
+ mColorExtractionIndex = LocalColorExtractor.getColorIndex(
+ !Themes.getAttrBoolean(getContext(), R.attr.isFolderDarkText));
mColorExtractor = LocalColorExtractor.newInstance(getContext());
mColorListener = (RectF rect, SparseIntArray extractedColors) -> {
mColorChangeRunnable = () -> {
diff --git a/src/com/android/launcher3/folder/FolderAnimationManager.java b/src/com/android/launcher3/folder/FolderAnimationManager.java
index af8be8d2f9..7fbfb8934e 100644
--- a/src/com/android/launcher3/folder/FolderAnimationManager.java
+++ b/src/com/android/launcher3/folder/FolderAnimationManager.java
@@ -168,15 +168,15 @@ public class FolderAnimationManager {
final float yDistance = initialY - lp.y;
// Set up the Folder background.
- int previewBackgroundColor = Themes.getAttrColor(mContext, R.attr.folderFillColor);
final int finalColor;
+ int folderFillColor = Themes.getAttrColor(mContext, R.attr.folderFillColor);
if (mIsOpening) {
- finalColor = Themes.getAttrColor(mContext, R.attr.popupColorPrimary);
+ finalColor = folderFillColor;
} else {
finalColor = mFolderBackground.getColor().getDefaultColor();
}
- final int initialColor = setColorAlphaBound(previewBackgroundColor,
- mPreviewBackground.getBackgroundAlpha());
+ final int initialColor = setColorAlphaBound(
+ folderFillColor, mPreviewBackground.getBackgroundAlpha());
mFolderBackground.mutate();
mFolderBackground.setColor(mIsOpening ? initialColor : finalColor);
diff --git a/src/com/android/launcher3/widget/LocalColorExtractor.java b/src/com/android/launcher3/widget/LocalColorExtractor.java
index a66024aafc..e479b7d049 100644
--- a/src/com/android/launcher3/widget/LocalColorExtractor.java
+++ b/src/com/android/launcher3/widget/LocalColorExtractor.java
@@ -113,8 +113,14 @@ public class LocalColorExtractor implements ResourceBasedOverride {
* Returns an index used to query the color of interest from the list of extracted colors.
*/
public static int getColorIndex(Context context) {
- return Utilities.isDarkTheme(context)
- ? DARK_COLOR_EXTRACTION_INDEX
- : LIGHT_COLOR_EXTRACTION_INDEX;
+ return getColorIndex(Utilities.isDarkTheme(context));
+ }
+
+ /**
+ * Returns an index used to query the color of interest from the list of extracted colors.
+ * @param getDarkIndex True when dark index is wanted, False when light index is wanted.
+ */
+ public static int getColorIndex(boolean getDarkIndex) {
+ return getDarkIndex ? DARK_COLOR_EXTRACTION_INDEX : LIGHT_COLOR_EXTRACTION_INDEX;
}
}