1 /* 2 * Copyright (C) 2017 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 androidx.car.widget; 18 19 import static java.lang.annotation.RetentionPolicy.SOURCE; 20 21 import androidx.annotation.IntDef; 22 23 import java.lang.annotation.Retention; 24 25 /** 26 * Specifies how the system UI should respond to day/night mode events. 27 * 28 * <p>By default, the Android Auto system UI assumes the app content background is light during the 29 * day and dark during the night. The system UI updates the foreground color (such as status bar 30 * icon colors) to be dark during day mode and light during night mode. By setting the 31 * DayNightStyle, the app can specify how the system should respond to a day/night mode event. For 32 * example, if the app has a dark content background for both day and night time, the app can tell 33 * the system to use {@link #FORCE_NIGHT} style so the foreground color is locked to light color for 34 * both cases. 35 * 36 * <p>Note: Not all system UI elements can be customized with a DayNightStyle. 37 */ 38 @IntDef({ 39 DayNightStyle.AUTO, 40 DayNightStyle.AUTO_INVERSE, 41 DayNightStyle.ALWAYS_LIGHT, 42 DayNightStyle.ALWAYS_DARK, 43 DayNightStyle.FORCE_NIGHT, 44 DayNightStyle.FORCE_DAY, 45 }) 46 @Retention(SOURCE) 47 public @interface DayNightStyle { 48 /** 49 * Sets the foreground color to be automatically changed based on day/night mode, assuming the 50 * app content background is light during the day and dark during the night. 51 * 52 * <p>This is the default behavior. 53 */ 54 int AUTO = 0; 55 56 /** 57 * Sets the foreground color to be automatically changed based on day/night mode, assuming the 58 * app content background is dark during the day and light during the night. 59 */ 60 int AUTO_INVERSE = 1; 61 62 /** Sets the color to be locked to a light variant during day and night. */ 63 int ALWAYS_LIGHT = 2; 64 65 /** Sets the color to be locked ot a dark variant during day and night. */ 66 int ALWAYS_DARK = 3; 67 68 /** 69 * Sets the foreground color to be locked to the night version, which assumes the app content 70 * background is always dark during both day and night. 71 * 72 * @deprecated Use {@link #ALWAYS_LIGHT} instead. 73 */ 74 @Deprecated 75 int FORCE_NIGHT = 4; 76 77 /** 78 * Sets the foreground color to be locked to the day version, which assumes the app content 79 * background is always light during both day and night. 80 * 81 * @deprecated Use {@link #ALWAYS_DARK} instead. 82 */ 83 @Deprecated 84 int FORCE_DAY = 5; 85 86 } 87