@@ -61,9 +61,13 @@ public DynamicColor background() {
6161 @ Override
6262 public DynamicColor onBackground () {
6363 // Remapped to onSurface for 2025 spec.
64- DynamicColor color2025 = onSurface ().toBuilder ().setName ("on_background" ).build ();
64+ DynamicColor .Builder color2025Builder = onSurface ().toBuilder ().setName ("on_background" );
65+ color2025Builder .setTone (
66+ (s ) -> {
67+ return s .platform == WATCH ? 100.0 : onSurface ().getTone (s );
68+ });
6569 return super .onBackground ().toBuilder ()
66- .extendSpecVersion (SpecVersion .SPEC_2025 , color2025 )
70+ .extendSpecVersion (SpecVersion .SPEC_2025 , color2025Builder . build () )
6771 .build ();
6872 }
6973
@@ -1595,10 +1599,8 @@ public double getTone(DynamicScheme scheme, DynamicColor color) {
15951599 double relativeDelta = absoluteDelta * (amRoleA ? 1 : -1 );
15961600
15971601 switch (constraint ) {
1598- case EXACT :
1599- selfTone = MathUtils .clampDouble (0 , 100 , referenceTone + relativeDelta );
1600- break ;
1601- case NEARER :
1602+ case EXACT -> selfTone = MathUtils .clampDouble (0 , 100 , referenceTone + relativeDelta );
1603+ case NEARER -> {
16021604 if (relativeDelta > 0 ) {
16031605 selfTone =
16041606 MathUtils .clampDouble (
@@ -1612,14 +1614,14 @@ public double getTone(DynamicScheme scheme, DynamicColor color) {
16121614 100 ,
16131615 MathUtils .clampDouble (referenceTone + relativeDelta , referenceTone , selfTone ));
16141616 }
1615- break ;
1616- case FARTHER :
1617+ }
1618+ case FARTHER -> {
16171619 if (relativeDelta > 0 ) {
16181620 selfTone = MathUtils .clampDouble (referenceTone + relativeDelta , 100 , selfTone );
16191621 } else {
16201622 selfTone = MathUtils .clampDouble (0 , referenceTone + relativeDelta , selfTone );
16211623 }
1622- break ;
1624+ }
16231625 }
16241626
16251627 if (color .background != null && color .contrastCurve != null ) {
@@ -1864,27 +1866,32 @@ public TonalPalette getNeutralVariantPalette(
18641866 Platform platform ,
18651867 double contrastLevel ) {
18661868 switch (variant ) {
1867- case NEUTRAL :
1869+ case NEUTRAL -> {
18681870 return TonalPalette .fromHueAndChroma (
18691871 sourceColorHct .getHue (), (platform == PHONE ? 1.4 : 6 ) * 2.2 );
1870- case TONAL_SPOT :
1872+ }
1873+ case TONAL_SPOT -> {
18711874 return TonalPalette .fromHueAndChroma (
18721875 sourceColorHct .getHue (), (platform == PHONE ? 5 : 10 ) * 1.7 );
1873- case EXPRESSIVE :
1876+ }
1877+ case EXPRESSIVE -> {
18741878 double expressiveNeutralHue = getExpressiveNeutralHue (sourceColorHct );
18751879 double expressiveNeutralChroma =
18761880 getExpressiveNeutralChroma (sourceColorHct , isDark , platform );
18771881 return TonalPalette .fromHueAndChroma (
18781882 expressiveNeutralHue ,
18791883 expressiveNeutralChroma
18801884 * (expressiveNeutralHue >= 105 && expressiveNeutralHue < 125 ? 1.6 : 2.3 ));
1881- case VIBRANT :
1885+ }
1886+ case VIBRANT -> {
18821887 double vibrantNeutralHue = getVibrantNeutralHue (sourceColorHct );
18831888 double vibrantNeutralChroma = getVibrantNeutralChroma (sourceColorHct , platform );
18841889 return TonalPalette .fromHueAndChroma (vibrantNeutralHue , vibrantNeutralChroma * 1.29 );
1885- default :
1890+ }
1891+ default -> {
18861892 return super .getNeutralVariantPalette (
18871893 variant , sourceColorHct , isDark , platform , contrastLevel );
1894+ }
18881895 }
18891896 }
18901897
0 commit comments