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