This is more like what the mocks show. To make it happen, this changes the layout to a ConstraintLayout with a guideline in the middle to make sure that the start and end time sections take up no more than half the screen. Confirmed that it wraps rather than overlapping when the text becomes too large. Flag: android.app.modes_ui Bug: 346396147 Test: manual Change-Id: I56adbd24594121a9cb5b4374f2eeecdfd40f61e4
244 lines
10 KiB
XML
244 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
~ Copyright (C) 2024 The Android Open Source Project
|
|
~
|
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
~ you may not use this file except in compliance with the License.
|
|
~ You may obtain a copy of the License at
|
|
~
|
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
~
|
|
~ Unless required by applicable law or agreed to in writing, software
|
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
~ See the License for the specific language governing permissions and
|
|
~ limitations under the License.
|
|
-->
|
|
|
|
<LinearLayout
|
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
android:id="@+id/modes_set_schedule_layout"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_centerHorizontal="true"
|
|
android:gravity="fill_horizontal"
|
|
android:orientation="vertical"
|
|
android:paddingLeft="24dp"
|
|
android:paddingRight="24dp"
|
|
android:paddingTop="24dp"
|
|
android:paddingBottom="24dp">
|
|
|
|
<!-- Start time & end time row -->
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:gravity="fill_horizontal"
|
|
android:orientation="horizontal">
|
|
|
|
<!-- Start time title (non-clickable preference) -->
|
|
<TextView
|
|
android:id="@+id/start_time_label"
|
|
android:clickable="false"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintTop_toTopOf="parent"
|
|
app:layout_constraintEnd_toStartOf="@+id/guideline"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintHorizontal_bias="0"
|
|
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
|
|
android:text="@string/zen_mode_start_time" />
|
|
|
|
<!-- Start time display + setter -->
|
|
<TextView
|
|
android:id="@+id/start_time"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@+id/start_time_label"
|
|
app:layout_constraintEnd_toStartOf="@+id/guideline"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintHorizontal_bias="0"
|
|
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
|
|
android:textColor="?android:attr/colorAccent"
|
|
android:textSize="40sp" />
|
|
|
|
<!-- Center boundary to make sure each only expands to take up at most half the space -->
|
|
<androidx.constraintlayout.widget.Guideline
|
|
android:id="@+id/guideline"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="match_parent"
|
|
android:orientation="vertical"
|
|
app:layout_constraintGuide_percent="0.5" />
|
|
|
|
<!-- End time title (non-clickable preference), left-aligned to edge of time display -->
|
|
<TextView
|
|
android:id="@+id/end_time_label"
|
|
android:clickable="false"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintTop_toTopOf="parent"
|
|
app:layout_constraintStart_toStartOf="@+id/end_time"
|
|
app:layout_constraintStart_toEndOf="@+id/guideline"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintHorizontal_bias="0"
|
|
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
|
|
android:text="@string/zen_mode_end_time" />
|
|
|
|
<!-- End time setter; right-aligned -->
|
|
<TextView
|
|
android:id="@+id/end_time"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintTop_toBottomOf="@+id/end_time_label"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toEndOf="@+id/guideline"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintHorizontal_bias="1"
|
|
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
|
|
android:textColor="?android:attr/colorAccent"
|
|
android:textSize="40sp" />
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
|
|
<!-- Schedule duration display row -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:paddingTop="8dp"
|
|
android:paddingBottom="8dp">
|
|
|
|
<!-- left side line divider -->
|
|
<View
|
|
android:layout_width="0dp"
|
|
android:layout_height="1.5dp"
|
|
android:layout_weight="1"
|
|
android:layout_gravity="center_vertical"
|
|
android:background="?android:attr/dividerHorizontal" />
|
|
|
|
<!-- length of schedule -->
|
|
<TextView
|
|
android:id="@+id/schedule_duration"
|
|
android:clickable="false"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:paddingHorizontal="8dp"
|
|
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Small" />
|
|
|
|
<!-- right side line divider -->
|
|
<View
|
|
android:layout_width="0dp"
|
|
android:layout_height="1.5dp"
|
|
android:layout_weight="1"
|
|
android:layout_gravity="center_vertical"
|
|
android:background="?android:attr/dividerHorizontal" />
|
|
|
|
</LinearLayout>
|
|
|
|
<!-- Buttons for selecting days of the week -->
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:id="@+id/days_of_week_container"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:minHeight="10dp"
|
|
android:maxHeight="60dp"
|
|
android:orientation="horizontal">
|
|
|
|
<ToggleButton
|
|
android:id="@+id/day0"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:background="@drawable/modes_schedule_day_toggle"
|
|
android:textColor="@color/modes_set_schedule_text_color"
|
|
android:textSize="18sp"
|
|
app:layout_constraintDimensionRatio="1:1"
|
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
|
app:layout_constraintEnd_toStartOf="@+id/day1"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ToggleButton
|
|
android:id="@+id/day1"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:background="@drawable/modes_schedule_day_toggle"
|
|
android:textColor="@color/modes_set_schedule_text_color"
|
|
android:textSize="18sp"
|
|
app:layout_constraintDimensionRatio="1:1"
|
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
|
app:layout_constraintStart_toEndOf="@+id/day0"
|
|
app:layout_constraintEnd_toStartOf="@+id/day2"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ToggleButton
|
|
android:id="@+id/day2"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:background="@drawable/modes_schedule_day_toggle"
|
|
android:textColor="@color/modes_set_schedule_text_color"
|
|
android:textSize="18sp"
|
|
app:layout_constraintDimensionRatio="1:1"
|
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
|
app:layout_constraintStart_toEndOf="@+id/day1"
|
|
app:layout_constraintEnd_toStartOf="@+id/day3"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ToggleButton
|
|
android:id="@+id/day3"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:background="@drawable/modes_schedule_day_toggle"
|
|
android:textColor="@color/modes_set_schedule_text_color"
|
|
android:textSize="18sp"
|
|
app:layout_constraintDimensionRatio="1:1"
|
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
|
app:layout_constraintStart_toEndOf="@+id/day2"
|
|
app:layout_constraintEnd_toStartOf="@+id/day4"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ToggleButton
|
|
android:id="@+id/day4"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:background="@drawable/modes_schedule_day_toggle"
|
|
android:textColor="@color/modes_set_schedule_text_color"
|
|
android:textSize="18sp"
|
|
app:layout_constraintDimensionRatio="1:1"
|
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
|
app:layout_constraintStart_toEndOf="@+id/day3"
|
|
app:layout_constraintEnd_toStartOf="@+id/day5"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ToggleButton
|
|
android:id="@+id/day5"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:background="@drawable/modes_schedule_day_toggle"
|
|
android:textColor="@color/modes_set_schedule_text_color"
|
|
android:textSize="18sp"
|
|
app:layout_constraintDimensionRatio="1:1"
|
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
|
app:layout_constraintStart_toEndOf="@+id/day4"
|
|
app:layout_constraintEnd_toStartOf="@+id/day6"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ToggleButton
|
|
android:id="@+id/day6"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:background="@drawable/modes_schedule_day_toggle"
|
|
android:textColor="@color/modes_set_schedule_text_color"
|
|
android:textSize="18sp"
|
|
app:layout_constraintDimensionRatio="1:1"
|
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toEndOf="@+id/day5"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
|
|
</LinearLayout>
|