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
245 lines
10 KiB
XML
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>
|