1 /* 2 * Copyright (C) 2023 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 17 package com.android.systemui.statusbar.data.model 18 19 import com.android.internal.view.AppearanceRegion 20 import com.android.systemui.statusbar.phone.BoundsPair 21 22 /** Keeps track of various parameters coordinating the appearance of the status bar. */ 23 data class StatusBarAppearance( 24 /** The current mode of the status bar. */ 25 val mode: StatusBarMode, 26 /** The current bounds of the status bar. */ 27 val bounds: BoundsPair, 28 /** 29 * A list of appearance regions for the appearance of the status bar background. Used to 30 * determine the correct coloring of status bar icons to ensure contrast. See 31 * [com.android.systemui.statusbar.phone.LightBarController]. 32 */ 33 val appearanceRegions: List<AppearanceRegion>, 34 /** 35 * The navigation bar color as set by 36 * [com.android.systemui.statusbar.CommandQueue.onSystemBarAttributesChanged]. 37 * 38 * TODO(b/277764509): This likely belongs in a "NavigationBarAppearance"-type class, not a 39 * status bar class. 40 */ 41 val navbarColorManagedByIme: Boolean, 42 ) 43