1<?xml version="1.0" encoding="utf-8"?>
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<androidx.constraintlayout.widget.ConstraintLayout
18    xmlns:android="http://schemas.android.com/apk/res/android"
19    xmlns:app="http://schemas.android.com/apk/res-auto"
20    xmlns:tools="http://schemas.android.com/tools"
21    android:id="@+id/activity_main"
22    android:layout_width="match_parent"
23    android:layout_height="match_parent"
24    android:background="@android:color/background_dark"
25    android:windowIsFloating="true"
26    tools:context=".MainClusterActivity">
27
28    <androidx.constraintlayout.widget.Guideline
29        android:layout_width="wrap_content"
30        android:layout_height="wrap_content"
31        android:id="@+id/left_unobscured"
32        android:orientation="vertical"
33        app:layout_constraintGuide_begin="@dimen/speedometer_overlap_width"/>
34
35    <androidx.constraintlayout.widget.Guideline
36        android:layout_width="wrap_content"
37        android:layout_height="wrap_content"
38        android:id="@+id/right_unobscured"
39        android:orientation="vertical"
40        app:layout_constraintGuide_end="@dimen/speedometer_overlap_width"/>
41
42    <androidx.constraintlayout.widget.Guideline
43        android:layout_width="wrap_content"
44        android:layout_height="wrap_content"
45        android:id="@+id/gauges_top"
46        android:orientation="horizontal"
47        app:layout_constraintGuide_begin="@dimen/speedometer_top"/>
48
49    <SurfaceView
50        android:id="@+id/cluster_display"
51        android:layout_width="match_parent"
52        android:layout_height="0dp"
53        app:layout_constraintTop_toTopOf="parent"
54        app:layout_constraintBottom_toTopOf="@+id/info"/>
55
56    <ImageView
57        android:layout_width="match_parent"
58        android:layout_height="@dimen/navigation_gradient_height"
59        android:src="@drawable/gradient_top"
60        app:layout_constraintTop_toTopOf="parent"/>
61
62    <ImageView
63        android:layout_width="match_parent"
64        android:layout_height="@dimen/navigation_gradient_height"
65        android:src="@drawable/gradient_bottom"
66        app:layout_constraintBottom_toBottomOf="@+id/info"/>
67
68    <LinearLayout
69        android:id="@+id/info"
70        android:layout_width="0dp"
71        android:layout_height="@dimen/info_height"
72        app:layout_constraintLeft_toRightOf="@+id/left_unobscured"
73        app:layout_constraintRight_toLeftOf="@+id/right_unobscured"
74        app:layout_constraintBottom_toBottomOf="parent"
75        android:gravity="center">
76
77        <LinearLayout
78            android:layout_width="wrap_content"
79            android:layout_height="wrap_content"
80            android:orientation="vertical"
81            android:gravity="start">
82
83            <TextView
84                android:layout_height="wrap_content"
85                android:layout_width="wrap_content"
86                android:includeFontPadding="false"
87                android:text="@string/info_fuel_label"
88                android:textSize="@dimen/info_label_text_size"/>
89
90            <TextView
91                android:id="@+id/info_fuel"
92                android:layout_height="wrap_content"
93                android:layout_width="wrap_content"
94                android:includeFontPadding="false"
95                android:text="@string/info_value_empty"
96                android:textSize="@dimen/info_value_text_size"/>
97
98            <TextView
99                android:layout_height="wrap_content"
100                android:layout_width="wrap_content"
101                android:includeFontPadding="false"
102                android:text="@string/info_range_label"
103                android:textSize="@dimen/info_label_text_size"/>
104
105            <TextView
106                android:id="@+id/info_range"
107                android:layout_height="wrap_content"
108                android:layout_width="wrap_content"
109                android:includeFontPadding="false"
110                android:text="@string/info_value_empty"
111                android:textSize="@dimen/info_value_text_size"/>
112        </LinearLayout>
113
114        <include
115            android:layout_width="0dp"
116            android:layout_height="match_parent"
117            android:layout_weight="1"
118            android:id="@+id/navigation_state"
119            layout="@layout/include_navigation_state"/>
120
121        <LinearLayout
122            android:layout_width="wrap_content"
123            android:layout_height="wrap_content"
124            android:orientation="vertical"
125            android:gravity="end">
126
127            <TextView
128                android:layout_height="wrap_content"
129                android:layout_width="wrap_content"
130                android:includeFontPadding="false"
131                android:text="@string/info_speed_label"
132                android:textSize="@dimen/info_label_text_size"/>
133
134            <TextView
135                android:id="@+id/info_speed"
136                android:layout_height="wrap_content"
137                android:layout_width="wrap_content"
138                android:includeFontPadding="false"
139                android:text="@string/info_value_empty"
140                android:textSize="@dimen/info_value_text_size"/>
141
142            <TextView
143                android:layout_height="wrap_content"
144                android:layout_width="wrap_content"
145                android:includeFontPadding="false"
146                android:text="@string/info_rpm_label"
147                android:textSize="@dimen/info_label_text_size"/>
148
149            <TextView
150                android:id="@+id/info_rpm"
151                android:layout_height="wrap_content"
152                android:layout_width="wrap_content"
153                android:includeFontPadding="false"
154                android:text="@string/info_value_empty"
155                android:textSize="@dimen/info_value_text_size"/>
156        </LinearLayout>
157    </LinearLayout>
158
159    <ImageView
160        android:id="@+id/left_gauge"
161        android:layout_width="@dimen/speedometer_width"
162        android:layout_height="@dimen/speedometer_height"
163        android:src="@drawable/speedometer"
164        android:elevation="2dp"
165        app:layout_constraintTop_toBottomOf="@+id/gauges_top"
166        app:layout_constraintRight_toLeftOf="@+id/left_unobscured"/>
167
168    <ImageView
169        android:id="@+id/right_gauge"
170        android:layout_width="@dimen/speedometer_width"
171        android:layout_height="@dimen/speedometer_height"
172        android:src="@drawable/speedometer"
173        android:elevation="2dp"
174        app:layout_constraintTop_toBottomOf="@+id/gauges_top"
175        app:layout_constraintLeft_toRightOf="@+id/right_unobscured"/>
176
177    <LinearLayout
178        android:layout_width="wrap_content"
179        android:layout_height="wrap_content"
180        android:orientation="vertical"
181        android:translationZ="4dp"
182        app:layout_constraintLeft_toLeftOf="parent"
183        app:layout_constraintBottom_toBottomOf="parent">
184
185        <Button
186            android:id="@+id/btn_car_info"
187            android:clickable="true"
188            android:layout_width="@dimen/facet_icon_size"
189            android:layout_height="@dimen/facet_icon_size"
190            android:layout_margin="@dimen/facet_icon_margin"
191            android:background="@drawable/ic_car_info"
192            android:backgroundTint="@color/icon_color"
193            android:focusableInTouchMode="true" />
194        <Button
195            android:id="@+id/btn_nav"
196            android:clickable="true"
197            android:layout_width="@dimen/facet_icon_size"
198            android:layout_height="@dimen/facet_icon_size"
199            android:layout_margin="@dimen/facet_icon_margin"
200            android:background="@drawable/ic_nav"
201            android:backgroundTint="@color/icon_color"
202            android:focusableInTouchMode="true" />
203        <Button
204            android:id="@+id/btn_music"
205            android:clickable="true"
206            android:layout_width="@dimen/facet_icon_size"
207            android:layout_height="@dimen/facet_icon_size"
208            android:layout_margin="@dimen/facet_icon_margin"
209            android:background="@drawable/ic_music"
210            android:backgroundTint="@color/icon_color"
211            android:focusableInTouchMode="true" />
212        <Button
213            android:id="@+id/btn_phone"
214            android:clickable="true"
215            android:layout_width="@dimen/facet_icon_size"
216            android:layout_height="@dimen/facet_icon_size"
217            android:layout_margin="@dimen/facet_icon_margin"
218            android:background="@drawable/ic_phone"
219            android:backgroundTint="@color/icon_color"
220            android:focusableInTouchMode="true" />
221    </LinearLayout>
222
223    <LinearLayout
224        android:layout_width="wrap_content"
225        android:layout_height="wrap_content"
226        android:orientation="vertical"
227        android:translationZ="4dp"
228        app:layout_constraintRight_toRightOf="parent"
229        app:layout_constraintBottom_toBottomOf="parent">
230
231        <TextView
232            android:id="@+id/gear_parked"
233            android:layout_height="wrap_content"
234            android:layout_width="wrap_content"
235            android:layout_marginHorizontal="@dimen/gear_icon_margin"
236            android:text="@string/gear_parked"
237            android:textColor="@color/icon_color"
238            android:textSize="@dimen/gear_text_size"/>
239
240        <TextView
241            android:id="@+id/gear_reverse"
242            android:layout_height="wrap_content"
243            android:layout_width="wrap_content"
244            android:layout_marginHorizontal="@dimen/gear_icon_margin"
245            android:text="@string/gear_reverse"
246            android:textColor="@color/icon_color"
247            android:textSize="@dimen/gear_text_size"/>
248
249        <TextView
250            android:id="@+id/gear_neutral"
251            android:layout_height="wrap_content"
252            android:layout_width="wrap_content"
253            android:layout_marginHorizontal="@dimen/gear_icon_margin"
254            android:text="@string/gear_neutral"
255            android:textColor="@color/icon_color"
256            android:textSize="@dimen/gear_text_size"/>
257
258        <TextView
259            android:id="@+id/gear_drive"
260            android:layout_height="wrap_content"
261            android:layout_width="wrap_content"
262            android:layout_marginHorizontal="@dimen/gear_icon_margin"
263            android:text="@string/gear_drive"
264            android:textColor="@color/icon_color"
265            android:textSize="@dimen/gear_text_size"/>
266
267    </LinearLayout>
268</androidx.constraintlayout.widget.ConstraintLayout>
269