1<!-- 2 ~ Copyright (C) 2022 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<com.android.systemui.car.hvac.HvacPanelView 18 xmlns:android="http://schemas.android.com/apk/res/android" 19 xmlns:app="http://schemas.android.com/apk/res-auto" 20 xmlns:systemui="http://schemas.android.com/apk/res-auto" 21 android:id="@+id/hvac_panel" 22 android:orientation="vertical" 23 android:layout_width="match_parent" 24 android:layout_height="@dimen/hvac_panel_full_expanded_height" 25 android:background="@color/hvac_background_color"> 26 <androidx.constraintlayout.widget.Guideline 27 android:id="@+id/top_guideline" 28 android:layout_width="wrap_content" 29 android:layout_height="wrap_content" 30 android:orientation="horizontal" 31 app:layout_constraintGuide_begin="@dimen/hvac_panel_top_padding"/> 32 <androidx.constraintlayout.widget.Guideline 33 android:id="@+id/bottom_guideline" 34 android:layout_width="wrap_content" 35 android:layout_height="wrap_content" 36 android:orientation="horizontal" 37 app:layout_constraintGuide_end="@dimen/hvac_panel_bottom_padding"/> 38 <!-- NOTE: HVAC property ID's can be found in VehiclePropertyIds.java, and the area 39 ID's depend on each OEM's VHAL implementation. --> 40 <com.android.systemui.car.hvac.referenceui.BackgroundAdjustingTemperatureControlView 41 android:id="@+id/driver_hvac" 42 android:layout_width="wrap_content" 43 android:layout_height="wrap_content" 44 app:layout_constraintLeft_toLeftOf="parent" 45 app:layout_constraintTop_toTopOf="parent" 46 app:layout_constraintBottom_toBottomOf="parent" 47 systemui:hvacAreaId="49"> 48 <include layout="@layout/hvac_temperature_bar_overlay"/> 49 </com.android.systemui.car.hvac.referenceui.BackgroundAdjustingTemperatureControlView> 50 <com.android.systemui.car.hvac.toggle.HvacBooleanToggleButton 51 android:id="@+id/recycle_air_button" 52 android:layout_width="@dimen/hvac_panel_button_dimen" 53 android:layout_height="@dimen/hvac_panel_group_height" 54 android:background="@drawable/hvac_panel_button_bg" 55 app:layout_constraintTop_toBottomOf="@+id/top_guideline" 56 app:layout_constraintLeft_toRightOf="@+id/driver_hvac" 57 app:layout_constraintRight_toLeftOf="@+id/fan_control" 58 systemui:hvacAreaId="117" 59 systemui:hvacPropertyId="354419976" 60 systemui:hvacTurnOffIfAutoOn="true" 61 systemui:hvacToggleOnButtonDrawable="@drawable/ic_recycle_air_on" 62 systemui:hvacToggleOffButtonDrawable="@drawable/ic_recycle_air_off"/> 63 <LinearLayout 64 android:id="@+id/fan_control" 65 android:background="@drawable/hvac_panel_button_bg" 66 android:layout_width="@dimen/hvac_fan_speed_bar_width" 67 android:layout_height="@dimen/hvac_panel_group_height" 68 app:layout_constraintTop_toBottomOf="@+id/top_guideline" 69 app:layout_constraintLeft_toRightOf="@+id/recycle_air_button" 70 app:layout_constraintRight_toLeftOf="@+id/ac_button" 71 android:layout_centerVertical="true" 72 android:layout_centerHorizontal="true" 73 android:orientation="vertical"> 74 <com.android.systemui.car.hvac.referenceui.FanSpeedBar 75 android:layout_weight="1" 76 android:layout_width="match_parent" 77 android:layout_height="0dp"/> 78 <com.android.systemui.car.hvac.referenceui.FanDirectionButtons 79 android:layout_weight="1" 80 android:layout_width="match_parent" 81 android:layout_height="0dp" 82 android:orientation="horizontal" 83 android:layoutDirection="ltr"/> 84 </LinearLayout> 85 <com.android.systemui.car.hvac.toggle.HvacBooleanToggleButton 86 android:id="@+id/ac_button" 87 android:layout_width="@dimen/hvac_panel_button_dimen" 88 android:layout_height="@dimen/hvac_panel_group_height" 89 android:background="@drawable/hvac_panel_button_bg" 90 app:layout_constraintTop_toBottomOf="@+id/top_guideline" 91 app:layout_constraintLeft_toRightOf="@+id/fan_control" 92 app:layout_constraintRight_toLeftOf="@+id/passenger_hvac" 93 systemui:hvacAreaId="117" 94 systemui:hvacPropertyId="354419973" 95 systemui:hvacTurnOffIfAutoOn="true" 96 systemui:hvacToggleOnButtonDrawable="@drawable/ic_ac_on" 97 systemui:hvacToggleOffButtonDrawable="@drawable/ic_ac_off"/> 98 <com.android.systemui.car.hvac.referenceui.BackgroundAdjustingTemperatureControlView 99 android:id="@+id/passenger_hvac" 100 android:layout_width="wrap_content" 101 android:layout_height="wrap_content" 102 app:layout_constraintRight_toRightOf="parent" 103 app:layout_constraintTop_toTopOf="parent" 104 app:layout_constraintBottom_toBottomOf="parent" 105 systemui:hvacAreaId="68"> 106 <include layout="@layout/hvac_temperature_bar_overlay"/> 107 </com.android.systemui.car.hvac.referenceui.BackgroundAdjustingTemperatureControlView> 108 <com.android.systemui.car.hvac.toggle.HvacBooleanToggleButton 109 android:id="@+id/ac_master_switch" 110 android:background="@drawable/hvac_panel_button_bg" 111 android:scaleType="center" 112 style="@style/HvacButton" 113 app:layout_constraintLeft_toRightOf="@+id/driver_hvac" 114 app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" 115 systemui:hvacAreaId="117" 116 systemui:hvacPropertyId="354419984" 117 systemui:hvacTurnOffIfPowerOff="false" 118 systemui:hvacToggleOnButtonDrawable="@drawable/ac_master_switch_on" 119 systemui:hvacToggleOffButtonDrawable="@drawable/ac_master_switch_off"/> 120 <com.android.systemui.car.hvac.SeatTemperatureLevelButton 121 android:id="@+id/seat_heat_level_button_left" 122 android:background="@drawable/hvac_panel_button_bg" 123 style="@style/HvacButton" 124 app:layout_constraintLeft_toRightOf="@+id/ac_master_switch" 125 app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" 126 systemui:hvacAreaId="1" 127 systemui:seatTemperatureType="heating" 128 systemui:seatTemperatureIconDrawableList="@array/hvac_heated_seat_default_icons"/> 129 <com.android.systemui.car.hvac.toggle.HvacBooleanToggleButton 130 android:id="@+id/defroster_button" 131 android:background="@drawable/hvac_panel_button_bg" 132 style="@style/HvacButton" 133 app:layout_constraintLeft_toRightOf="@+id/seat_heat_level_button_left" 134 app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" 135 systemui:hvacAreaId="1" 136 systemui:hvacPropertyId="320865540" 137 systemui:hvacToggleOnButtonDrawable="@drawable/ic_front_defroster_on" 138 systemui:hvacToggleOffButtonDrawable="@drawable/ic_front_defroster_off"/> 139 <com.android.systemui.car.hvac.toggle.HvacBooleanToggleButton 140 android:id="@+id/auto_button" 141 android:background="@drawable/hvac_panel_button_bg" 142 systemui:hvacAreaId="117" 143 systemui:hvacPropertyId="354419978" 144 android:scaleType="center" 145 android:layout_gravity="center" 146 android:layout_width="0dp" 147 style="@style/HvacButton" 148 app:layout_constraintLeft_toRightOf="@+id/defroster_button" 149 app:layout_constraintRight_toLeftOf="@+id/rear_defroster_button" 150 app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" 151 systemui:hvacToggleOnButtonDrawable="@drawable/ic_auto_on" 152 systemui:hvacToggleOffButtonDrawable="@drawable/ic_auto_off"/> 153 <com.android.systemui.car.hvac.toggle.HvacBooleanToggleButton 154 android:id="@+id/rear_defroster_button" 155 android:background="@drawable/hvac_panel_button_bg" 156 style="@style/HvacButton" 157 systemui:hvacAreaId="2" 158 systemui:hvacPropertyId="320865540" 159 app:layout_constraintRight_toLeftOf="@+id/seat_heat_level_button_right" 160 app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" 161 systemui:hvacToggleOnButtonDrawable="@drawable/ic_rear_defroster_on" 162 systemui:hvacToggleOffButtonDrawable="@drawable/ic_rear_defroster_off"/> 163 <com.android.systemui.car.hvac.SeatTemperatureLevelButton 164 android:id="@+id/seat_heat_level_button_right" 165 android:background="@drawable/hvac_panel_button_bg" 166 style="@style/HvacButton" 167 app:layout_constraintRight_toLeftOf="@+id/passenger_hvac" 168 app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" 169 systemui:hvacAreaId="4" 170 systemui:seatTemperatureType="heating" 171 systemui:seatTemperatureIconDrawableList="@array/hvac_heated_seat_default_icons"/> 172 173 <FrameLayout 174 android:id="@+id/handle_bar" 175 android:layout_width="match_parent" 176 android:layout_height="wrap_content" 177 android:padding="@dimen/hvac_panel_handle_bar_frame_padding"> 178 <include layout="@layout/hvac_panel_handle_bar"/> 179 </FrameLayout> 180 181</com.android.systemui.car.hvac.HvacPanelView>