1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  ~ Copyright (C) 2024 The Android Open Source Project
4  ~
5  ~ Licensed under the Apache License, Version 2.0 (the "License");
6  ~ you may not use this file except in compliance with the License.
7  ~ You may obtain a copy of the License at
8  ~
9  ~      http://www.apache.org/licenses/LICENSE-2.0
10  ~
11  ~ Unless required by applicable law or agreed to in writing, software
12  ~ distributed under the License is distributed on an "AS IS" BASIS,
13  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  ~ See the License for the specific language governing permissions and
15  ~ limitations under the License.
16  -->
17
18<LinearLayout
19    xmlns:android="http://schemas.android.com/apk/res/android"
20    xmlns:app="http://schemas.android.com/apk/res-auto"
21    android:id="@+id/modes_set_schedule_layout"
22    android:layout_width="match_parent"
23    android:layout_height="wrap_content"
24    android:layout_centerHorizontal="true"
25    android:gravity="fill_horizontal"
26    android:orientation="vertical"
27    android:paddingLeft="24dp"
28    android:paddingRight="24dp"
29    android:paddingTop="24dp"
30    android:paddingBottom="24dp">
31
32    <!-- Start time & end time row -->
33    <androidx.constraintlayout.widget.ConstraintLayout
34        android:layout_width="match_parent"
35        android:layout_height="wrap_content"
36        android:gravity="fill_horizontal"
37        android:orientation="horizontal">
38
39        <!-- Start time title (non-clickable preference) -->
40        <TextView
41            android:id="@+id/start_time_label"
42            android:clickable="false"
43            android:layout_width="wrap_content"
44            android:layout_height="wrap_content"
45            app:layout_constraintTop_toTopOf="parent"
46            app:layout_constraintEnd_toStartOf="@+id/guideline"
47            app:layout_constraintStart_toStartOf="parent"
48            app:layout_constrainedWidth="true"
49            app:layout_constraintHorizontal_bias="0"
50            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
51            android:text="@string/zen_mode_start_time"
52            android:importantForAccessibility="no" />
53
54        <!-- Start time display + setter -->
55        <TextView
56            android:id="@+id/start_time"
57            android:layout_width="wrap_content"
58            android:layout_height="wrap_content"
59            app:layout_constraintStart_toStartOf="parent"
60            app:layout_constraintTop_toBottomOf="@+id/start_time_label"
61            app:layout_constraintEnd_toStartOf="@+id/guideline"
62            app:layout_constrainedWidth="true"
63            app:layout_constraintHorizontal_bias="0"
64            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
65            android:textColor="?android:attr/colorAccent"
66            android:textSize="40sp" />
67
68        <!-- Center boundary to make sure each only expands to take up at most half the space -->
69        <androidx.constraintlayout.widget.Guideline
70            android:id="@+id/guideline"
71            android:layout_width="wrap_content"
72            android:layout_height="match_parent"
73            android:orientation="vertical"
74            app:layout_constraintGuide_percent="0.5" />
75
76        <!-- End time title (non-clickable preference), right-aligned -->
77        <TextView
78            android:id="@+id/end_time_label"
79            android:clickable="false"
80            android:layout_width="wrap_content"
81            android:layout_height="wrap_content"
82            app:layout_constraintTop_toTopOf="parent"
83            app:layout_constraintStart_toEndOf="@+id/guideline"
84            app:layout_constraintEnd_toEndOf="parent"
85            app:layout_constrainedWidth="true"
86            app:layout_constraintHorizontal_bias="1"
87            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
88            android:text="@string/zen_mode_end_time"
89            android:importantForAccessibility="no" />
90
91        <!-- End time setter; right-aligned -->
92        <TextView
93            android:id="@+id/end_time"
94            android:layout_width="wrap_content"
95            android:layout_height="wrap_content"
96            app:layout_constraintTop_toBottomOf="@+id/end_time_label"
97            app:layout_constraintEnd_toEndOf="parent"
98            app:layout_constraintStart_toEndOf="@+id/guideline"
99            app:layout_constrainedWidth="true"
100            app:layout_constraintHorizontal_bias="1"
101            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
102            android:textColor="?android:attr/colorAccent"
103            android:textSize="40sp" />
104
105    </androidx.constraintlayout.widget.ConstraintLayout>
106
107    <!-- Schedule duration display row -->
108    <LinearLayout
109        android:layout_width="match_parent"
110        android:layout_height="wrap_content"
111        android:orientation="horizontal"
112        android:paddingTop="8dp"
113        android:paddingBottom="8dp">
114
115        <!-- left side line divider -->
116        <View
117            android:layout_width="0dp"
118            android:layout_height="1.5dp"
119            android:layout_weight="1"
120            android:layout_gravity="center_vertical"
121            android:background="?android:attr/dividerHorizontal" />
122
123        <!-- length of schedule -->
124        <TextView
125            android:id="@+id/schedule_duration"
126            android:clickable="false"
127            android:layout_width="wrap_content"
128            android:layout_height="wrap_content"
129            android:paddingHorizontal="8dp"
130            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Small"
131            android:textColor="?android:attr/textColorSecondary" />
132
133        <!-- right side line divider -->
134        <View
135            android:layout_width="0dp"
136            android:layout_height="1.5dp"
137            android:layout_weight="1"
138            android:layout_gravity="center_vertical"
139            android:background="?android:attr/dividerHorizontal" />
140
141    </LinearLayout>
142
143    <!-- Buttons for selecting days of the week -->
144    <androidx.constraintlayout.widget.ConstraintLayout
145        android:id="@+id/days_of_week_container"
146        android:layout_width="match_parent"
147        android:layout_height="wrap_content"
148        android:minHeight="10dp"
149        android:maxHeight="60dp"
150        android:orientation="horizontal">
151
152        <ToggleButton
153            android:id="@+id/day0"
154            android:layout_width="0dp"
155            android:layout_height="0dp"
156            android:background="@drawable/modes_schedule_day_toggle"
157            android:textColor="@color/modes_set_schedule_text_color"
158            android:textSize="18sp"
159            app:layout_constraintDimensionRatio="1:1"
160            app:layout_constraintHorizontal_chainStyle="spread_inside"
161            app:layout_constraintEnd_toStartOf="@+id/day1"
162            app:layout_constraintStart_toStartOf="parent"
163            app:layout_constraintTop_toTopOf="parent" />
164
165        <ToggleButton
166            android:id="@+id/day1"
167            android:layout_width="0dp"
168            android:layout_height="0dp"
169            android:background="@drawable/modes_schedule_day_toggle"
170            android:textColor="@color/modes_set_schedule_text_color"
171            android:textSize="18sp"
172            app:layout_constraintDimensionRatio="1:1"
173            app:layout_constraintHorizontal_chainStyle="spread_inside"
174            app:layout_constraintStart_toEndOf="@+id/day0"
175            app:layout_constraintEnd_toStartOf="@+id/day2"
176            app:layout_constraintTop_toTopOf="parent" />
177
178        <ToggleButton
179            android:id="@+id/day2"
180            android:layout_width="0dp"
181            android:layout_height="0dp"
182            android:background="@drawable/modes_schedule_day_toggle"
183            android:textColor="@color/modes_set_schedule_text_color"
184            android:textSize="18sp"
185            app:layout_constraintDimensionRatio="1:1"
186            app:layout_constraintHorizontal_chainStyle="spread_inside"
187            app:layout_constraintStart_toEndOf="@+id/day1"
188            app:layout_constraintEnd_toStartOf="@+id/day3"
189            app:layout_constraintTop_toTopOf="parent" />
190
191        <ToggleButton
192            android:id="@+id/day3"
193            android:layout_width="0dp"
194            android:layout_height="0dp"
195            android:background="@drawable/modes_schedule_day_toggle"
196            android:textColor="@color/modes_set_schedule_text_color"
197            android:textSize="18sp"
198            app:layout_constraintDimensionRatio="1:1"
199            app:layout_constraintHorizontal_chainStyle="spread_inside"
200            app:layout_constraintStart_toEndOf="@+id/day2"
201            app:layout_constraintEnd_toStartOf="@+id/day4"
202            app:layout_constraintTop_toTopOf="parent" />
203
204        <ToggleButton
205            android:id="@+id/day4"
206            android:layout_width="0dp"
207            android:layout_height="0dp"
208            android:background="@drawable/modes_schedule_day_toggle"
209            android:textColor="@color/modes_set_schedule_text_color"
210            android:textSize="18sp"
211            app:layout_constraintDimensionRatio="1:1"
212            app:layout_constraintHorizontal_chainStyle="spread_inside"
213            app:layout_constraintStart_toEndOf="@+id/day3"
214            app:layout_constraintEnd_toStartOf="@+id/day5"
215            app:layout_constraintTop_toTopOf="parent" />
216
217        <ToggleButton
218            android:id="@+id/day5"
219            android:layout_width="0dp"
220            android:layout_height="0dp"
221            android:background="@drawable/modes_schedule_day_toggle"
222            android:textColor="@color/modes_set_schedule_text_color"
223            android:textSize="18sp"
224            app:layout_constraintDimensionRatio="1:1"
225            app:layout_constraintHorizontal_chainStyle="spread_inside"
226            app:layout_constraintStart_toEndOf="@+id/day4"
227            app:layout_constraintEnd_toStartOf="@+id/day6"
228            app:layout_constraintTop_toTopOf="parent" />
229
230        <ToggleButton
231            android:id="@+id/day6"
232            android:layout_width="0dp"
233            android:layout_height="0dp"
234            android:background="@drawable/modes_schedule_day_toggle"
235            android:textColor="@color/modes_set_schedule_text_color"
236            android:textSize="18sp"
237            app:layout_constraintDimensionRatio="1:1"
238            app:layout_constraintHorizontal_chainStyle="spread_inside"
239            app:layout_constraintEnd_toEndOf="parent"
240            app:layout_constraintStart_toEndOf="@+id/day5"
241            app:layout_constraintTop_toTopOf="parent" />
242
243    </androidx.constraintlayout.widget.ConstraintLayout>
244
245</LinearLayout>
246