diff --git a/src/com/android/customization/model/color/ColorProvider.kt b/src/com/android/customization/model/color/ColorProvider.kt
index 3d2cc7e..201a53f 100644
--- a/src/com/android/customization/model/color/ColorProvider.kt
+++ b/src/com/android/customization/model/color/ColorProvider.kt
@@ -221,10 +221,10 @@
     @ColorInt
     private fun ColorScheme.getLightColorPreview(): IntArray {
         return intArrayOf(
-            setAlphaComponent(this.accent1[2], ALPHA_MASK),
-            setAlphaComponent(this.accent1[2], ALPHA_MASK),
-            ColorStateList.valueOf(this.accent3[6]).withLStar(85f).colors[0],
-            setAlphaComponent(this.accent1[6], ALPHA_MASK)
+            setAlphaComponent(this.accent1.s100, ALPHA_MASK),
+            setAlphaComponent(this.accent1.s100, ALPHA_MASK),
+            ColorStateList.valueOf(this.accent3.s500).withLStar(85f).colors[0],
+            setAlphaComponent(this.accent1.s500, ALPHA_MASK)
         )
     }
 
@@ -235,23 +235,23 @@
     @ColorInt
     private fun ColorScheme.getDarkColorPreview(): IntArray {
         return intArrayOf(
-            setAlphaComponent(this.accent1[2], ALPHA_MASK),
-            setAlphaComponent(this.accent1[2], ALPHA_MASK),
-            ColorStateList.valueOf(this.accent3[6]).withLStar(85f).colors[0],
-            setAlphaComponent(this.accent1[6], ALPHA_MASK)
+            setAlphaComponent(this.accent1.s100, ALPHA_MASK),
+            setAlphaComponent(this.accent1.s100, ALPHA_MASK),
+            ColorStateList.valueOf(this.accent3.s500).withLStar(85f).colors[0],
+            setAlphaComponent(this.accent1.s500, ALPHA_MASK)
         )
     }
 
     private fun ColorScheme.getPresetColorPreview(seed: Int): IntArray {
         return when (this.style) {
-            Style.FRUIT_SALAD -> intArrayOf(seed, this.accent1[2])
+            Style.FRUIT_SALAD -> intArrayOf(seed, this.accent1.s100)
             Style.TONAL_SPOT -> intArrayOf(this.accentColor, this.accentColor)
             Style.MONOCHROMATIC ->
                 intArrayOf(
                     setAlphaComponent(0x000000, 255),
                     setAlphaComponent(0xFFFFFF, 255),
                 )
-            else -> intArrayOf(this.accent1[2], this.accent1[2])
+            else -> intArrayOf(this.accent1.s100, this.accent1.s100)
         }
     }
 
diff --git a/src/com/android/customization/model/color/WallpaperColorResources.java b/src/com/android/customization/model/color/WallpaperColorResources.java
index eb8b39b..dc3b903 100644
--- a/src/com/android/customization/model/color/WallpaperColorResources.java
+++ b/src/com/android/customization/model/color/WallpaperColorResources.java
@@ -21,8 +21,7 @@
 import android.widget.RemoteViews.ColorResources;
 
 import com.android.systemui.monet.ColorScheme;
-
-import java.util.List;
+import com.android.systemui.monet.TonalPalette;
 
 /** A class to override colors in a {@link Context} with wallpaper colors. */
 public class WallpaperColorResources {
@@ -43,9 +42,9 @@
         ColorResources.create(context, mColorOverlay).apply(context);
     }
 
-    private void addOverlayColor(List<Integer> colors, int firstResourceColorId) {
+    private void addOverlayColor(TonalPalette colorSchemehue, int firstResourceColorId) {
         int resourceColorId = firstResourceColorId;
-        for (int color : colors) {
+        for (int color : colorSchemehue.getAllShades()) {
             mColorOverlay.put(resourceColorId, color);
             resourceColorId++;
         }
