Files
app_Settings/res/layout/modes_set_schedule_layout.xml
Yuri Lin 300d3d14c3 Right-align "end time" text on the schedule setter
When the "end time" text label is wider than the actual time, then aligning it with the start of the time causes it to wrap, even when there's plenty more space on the screen. This change right-aligns it in all cases (even when it's shorter), as it's hard to get all three of "right-aligned when too long", "left-aligned to the time display when short enough", and "wraps when it hits the center line instead of overflowing".

Fixes: 367054151
Test: manual, in English & Danish
Flag: android.app.modes_ui
Change-Id: I106864d6fb09aeac5fcc8d22e8d3d67b1b31ce4e
2024-09-17 15:46:59 -04:00

245 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"
android:importantForAccessibility="no" />
<!-- 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), right-aligned -->
<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_toEndOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="1"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/zen_mode_end_time"
android:importantForAccessibility="no" />
<!-- 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>