Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 671019f9 authored by James O'Leary's avatar James O'Leary Committed by Android (Google) Code Review
Browse files

Merge "Connect ColorStateList to CAM" into sc-dev

parents 49f6ccf6 4e94d2d0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.util.Xml;

import com.android.internal.R;
import com.android.internal.graphics.ColorUtils;
import com.android.internal.graphics.cam.Cam;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;

@@ -555,9 +556,8 @@ public class ColorStateList extends ComplexColor implements Parcelable {
        final int alpha = MathUtils.constrain((int) (baseAlpha * alphaMod + 0.5f), 0, 255);

        if (validLStar) {
            final double[] labColor = new double[3];
            ColorUtils.colorToLAB(baseColor, labColor);
            baseColor = ColorUtils.LABToColor(lStar, labColor[1], labColor[2]);
            final Cam baseCam = ColorUtils.colorToCAM(baseColor);
            baseColor = ColorUtils.CAMToColor(baseCam.getHue(), baseCam.getChroma(), lStar);
        }

        return (baseColor & 0xFFFFFF) | (alpha << 24);
+20 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2021 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#ff0000" android:lStar="50" />
</selector>
+1 −0
Original line number Diff line number Diff line
@@ -25,5 +25,6 @@
    <drawable name="yellow">#ffffff00</drawable>
    <color name="testcolor1">#ff00ff00</color>
    <color name="testcolor2">#ffff0000</color>
    <color name="testcolor3">#fff00000</color>
    <color name="failColor">#ff0000ff</color>
</resources>
+6 −0
Original line number Diff line number Diff line
@@ -67,4 +67,10 @@ public class ColorStateListTest extends AndroidTestCase {
        int defaultColor = mResources.getColor(R.color.color_no_default);
        assertEquals(mResources.getColor(R.color.testcolor1), defaultColor);
    }

    @SmallTest
    public void testLstar() throws Exception {
        int defaultColor = mResources.getColor(R.color.color_with_lstar);
        assertEquals(mResources.getColor(R.color.testcolor3), defaultColor);
    }
}