1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 5 * except in compliance with the License. You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software distributed under the 10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 * KIND, either express or implied. See the License for the specific language governing 12 * permissions and limitations under the License. 13 * 14 */ 15 16 package com.android.systemui.statusbar.notification.icon.ui.viewmodel 17 18 import android.graphics.Rect 19 20 /** 21 * Lookup the colors to use for the notification icons based on the bounds of the icon container. A 22 * result of `null` indicates that no color changes should be applied. 23 */ interfacenull24fun interface NotificationIconColorLookup { 25 fun iconColors(viewBounds: Rect): NotificationIconColors? 26 } 27 28 /** Colors to apply to notification icons. */ 29 interface NotificationIconColors { 30 31 /** A tint to apply to the icons. */ 32 val tint: Int 33 34 /** 35 * Returns the color to be applied to an icon, based on that icon's view bounds and whether or 36 * not the notification icon is colorized. 37 */ staticDrawableColornull38 fun staticDrawableColor(viewBounds: Rect): Int 39 } 40