1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.systemui.shared.system;
17 
18 import android.app.WallpaperColors;
19 import android.content.Context;
20 
21 import com.android.internal.colorextraction.ColorExtractor.GradientColors;
22 import com.android.internal.colorextraction.types.Tonal;
23 
24 public class TonalCompat {
25 
26     private final Tonal mTonal;
27 
TonalCompat(Context context)28     public TonalCompat(Context context) {
29         mTonal = new Tonal(context);
30     }
31 
extractDarkColors(WallpaperColors colors)32     public ExtractionInfo extractDarkColors(WallpaperColors colors) {
33         GradientColors darkColors = new GradientColors();
34         mTonal.extractInto(colors, new GradientColors(), darkColors, new GradientColors());
35 
36         ExtractionInfo result = new ExtractionInfo();
37         result.mainColor = darkColors.getMainColor();
38         result.secondaryColor = darkColors.getSecondaryColor();
39         result.supportsDarkText = darkColors.supportsDarkText();
40         if (colors != null) {
41             result.supportsDarkTheme =
42                     (colors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_THEME) != 0;
43         }
44         return result;
45     }
46 
47     public static class ExtractionInfo {
48         public int mainColor;
49         public int secondaryColor;
50         public boolean supportsDarkText;
51         public boolean supportsDarkTheme;
52     }
53 }
54