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