diff --git a/res/values/clock_colors.xml b/res/values/clock_colors.xml
index 1539a92..465f0a0 100644
--- a/res/values/clock_colors.xml
+++ b/res/values/clock_colors.xml
@@ -15,7 +15,8 @@
      limitations under the License.
 -->
 <resources>
-    <string-array name="clock_color_ids">
+    <string-array translatable="false" name="clock_color_ids">
+        <item>GRAY</item>
         <item>RED</item>
         <item>ORANGE</item>
         <item>YELLOW</item>
@@ -23,10 +24,10 @@
         <item>BLUE</item>
         <item>INDIGO</item>
         <item>VIOLET</item>
-        <item>GRAY</item>
         <item>TEAL</item>
     </string-array>
     <array name="clock_color_names">
+        <item>@string/clock_color_gray</item>
         <item>@string/clock_color_red</item>
         <item>@string/clock_color_orange</item>
         <item>@string/clock_color_yellow</item>
@@ -34,10 +35,10 @@
         <item>@string/clock_color_blue</item>
         <item>@string/clock_color_indigo</item>
         <item>@string/clock_color_violet</item>
-        <item>@string/clock_color_gray</item>
         <item>@string/clock_color_teal</item>
     </array>
     <array name="clock_colors">
+        <item>#B9B9B9</item>
         <item>#FFA3A7</item>
         <item>#F7AC69</item>
         <item>#FFC951</item>
@@ -45,10 +46,10 @@
         <item>#8EC8FF</item>
         <item>#B9AAFF</item>
         <item>#F6A2FF</item>
-        <item>#B9B9B9</item>
         <item>#40D9CF</item>
     </array>
     <array name="clock_color_tone_min">
+        <item>0</item>
         <item>20</item>
         <item>20</item>
         <item>50</item>
@@ -56,10 +57,10 @@
         <item>20</item>
         <item>10</item>
         <item>20</item>
-        <item>0</item>
         <item>20</item>
     </array>
     <array name="clock_color_tone_max">
+        <item>100</item>
         <item>95</item>
         <item>95</item>
         <item>95</item>
@@ -67,7 +68,6 @@
         <item>95</item>
         <item>95</item>
         <item>97</item>
-        <item>100</item>
         <item>99</item>
     </array>
 </resources>
\ No newline at end of file
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
index ea60ae3..9d622da 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
@@ -35,8 +35,8 @@
     }
 
     companion object {
-        const val DEFAULT_COLOR_TONE_MIN = 0
-        const val DEFAULT_COLOR_TONE_MAX = 100
+        private const val DEFAULT_COLOR_TONE_MIN = 0
+        private const val DEFAULT_COLOR_TONE_MAX = 100
 
         fun getPresetColorMap(resources: Resources): Map<String, ClockColorViewModel> {
             val ids = resources.getStringArray(R.array.clock_color_ids)
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
index 61976ad..573777d 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
@@ -65,18 +65,18 @@
 
     @Test
     fun setSelectedClock() = runTest {
-        val colorRed = clockColorMap.values.first()
+        val colorGrey = clockColorMap.values.first()
         val observedSelectedClockColorAndSizeText =
             collectLastValue(underTest.selectedClockColorAndSizeText)
         interactor.setClockColor(
-            colorRed.colorId,
+            colorGrey.colorId,
             ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
             ClockSettingsViewModel.blendColorWithTone(
-                colorRed.color,
-                colorRed.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS),
+                colorGrey.color,
+                colorGrey.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS),
             )
         )
         interactor.setClockSize(ClockSize.DYNAMIC)
-        assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Red, dynamic")
+        assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Grey, dynamic")
     }
 }
