<?xml version="1.0" encoding="utf-8"?><!-- ~ Copyright (C) 2022 Lukas Eisenhauer ~ ~ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version. ~ ~ This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ~ ~ You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. --> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".PlayFragment"> <RadioGroup android:id="@+id/beatIndicator" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tempoSlider" tools:layout_conversion_absoluteHeight="0dp" tools:layout_conversion_absoluteWidth="379dp" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/playButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:clickable="true" android:contentDescription="@string/play_button_description" android:src="@android:drawable/ic_media_play" app:fabSize="normal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:layout_conversion_absoluteHeight="56dp" tools:layout_conversion_absoluteWidth="56dp" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/reverseMeasureButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginEnd="16dp" android:clickable="true" android:contentDescription="@string/reverse_measure" android:src="@android:drawable/ic_media_previous" app:fabSize="mini" app:layout_constraintEnd_toStartOf="@+id/playButton" app:layout_constraintTop_toTopOf="parent" tools:layout_conversion_absoluteHeight="56dp" tools:layout_conversion_absoluteWidth="56dp" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/reversePhraseButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="16dp" android:clickable="true" android:contentDescription="@string/reverse_phrase" android:src="@android:drawable/ic_media_rew" app:fabSize="mini" app:layout_constraintEnd_toStartOf="@+id/reverseMeasureButton" app:layout_constraintTop_toTopOf="@+id/reverseMeasureButton" tools:layout_conversion_absoluteHeight="56dp" tools:layout_conversion_absoluteWidth="56dp" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/advanceMeasureButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:clickable="true" android:contentDescription="@string/advance_measure" android:src="@android:drawable/ic_media_next" app:fabSize="mini" app:layout_constraintStart_toEndOf="@+id/playButton" app:layout_constraintTop_toTopOf="@+id/reverseMeasureButton" tools:layout_conversion_absoluteHeight="56dp" tools:layout_conversion_absoluteWidth="56dp" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/advancePhraseButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:clickable="true" android:contentDescription="@string/advance_phrase" android:src="@android:drawable/ic_media_ff" app:fabSize="mini" app:layout_constraintStart_toEndOf="@+id/advanceMeasureButton" app:layout_constraintTop_toTopOf="@+id/reverseMeasureButton" tools:layout_conversion_absoluteHeight="56dp" tools:layout_conversion_absoluteWidth="56dp" /> <TextView android:id="@+id/tempoText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:text="@string/placeholder" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/masterVolumeSlider" tools:layout_conversion_absoluteHeight="19dp" tools:layout_conversion_absoluteWidth="112dp" /> <SeekBar android:id="@+id/tempoSlider" android:layout_width="0dp" android:layout_height="12dp" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tempoText" tools:layout_conversion_absoluteHeight="18dp" tools:layout_conversion_absoluteWidth="379dp" /> <TextView android:id="@+id/masterVolumeText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:text="@string/placeholder" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/playButton" tools:layout_conversion_absoluteHeight="19dp" tools:layout_conversion_absoluteWidth="112dp" /> <SeekBar android:id="@+id/masterVolumeSlider" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/masterVolumeText" tools:layout_conversion_absoluteHeight="18dp" tools:layout_conversion_absoluteWidth="379dp" /> <TableLayout android:id="@+id/phraseTable" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="32dp" android:layout_marginEnd="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/beatIndicator" tools:layout_conversion_absoluteHeight="0dp" tools:layout_conversion_absoluteWidth="411dp"> <TableRow android:id="@+id/phraseDisplay" android:layout_width="match_parent" android:layout_height="match_parent"> </TableRow> </TableLayout> <androidx.cardview.widget.CardView android:id="@+id/nextChordCard" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:padding="20dp" app:cardCornerRadius="10dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/phraseTable" tools:layout_conversion_absoluteHeight="27dp" tools:layout_conversion_absoluteWidth="258dp"> <TextView android:id="@+id/nextChordText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="@string/unknown_chord" android:textSize="20sp" tools:layout_conversion_absoluteHeight="27dp" tools:layout_conversion_absoluteWidth="258dp" /> </androidx.cardview.widget.CardView> </androidx.constraintlayout.widget.ConstraintLayout>