<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2022 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
  -->
<ConstraintSet
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <Constraint
        android:id="@+id/album_art"
        android:layout_width="match_parent"
        android:layout_height="@dimen/qs_media_session_height_expanded"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />

    <!-- Touch ripple must have the same constraint as the album art. -->
    <Constraint
        android:id="@+id/touch_ripple_view"
        android:layout_width="match_parent"
        android:layout_height="@dimen/qs_media_session_height_expanded"
        app:layout_constraintStart_toStartOf="@+id/album_art"
        app:layout_constraintEnd_toEndOf="@+id/album_art"
        app:layout_constraintTop_toTopOf="@+id/album_art"
        app:layout_constraintBottom_toBottomOf="@+id/album_art" />

    <!-- Turbulence noise must have the same constraint as the album art. -->
    <Constraint
        android:id="@+id/turbulence_noise_view"
        android:layout_width="match_parent"
        android:layout_height="@dimen/qs_media_session_height_expanded"
        app:layout_constraintStart_toStartOf="@+id/album_art"
        app:layout_constraintEnd_toEndOf="@+id/album_art"
        app:layout_constraintTop_toTopOf="@+id/album_art"
        app:layout_constraintBottom_toBottomOf="@+id/album_art" />

    <Constraint
        android:id="@+id/loading_effect_view"
        android:layout_width="match_parent"
        android:layout_height="@dimen/qs_media_session_height_expanded"
        app:layout_constraintStart_toStartOf="@+id/album_art"
        app:layout_constraintEnd_toEndOf="@+id/album_art"
        app:layout_constraintTop_toTopOf="@+id/album_art"
        app:layout_constraintBottom_toBottomOf="@+id/album_art" />

    <Constraint
        android:id="@+id/header_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/qs_media_padding"
        android:layout_marginEnd="@dimen/qs_media_padding"
        app:layout_constraintEnd_toStartOf="@id/actionPlayPause"
        app:layout_constraintTop_toBottomOf="@id/media_seamless"
        app:layout_constrainedWidth="true"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toTopOf="@id/header_artist"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintVertical_bias="1" />

    <Constraint
        android:id="@+id/media_explicit_indicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="@dimen/qs_media_info_spacing"
        android:layout_marginBottom="@dimen/qs_media_padding"
        android:layout_marginTop="0dp"
        app:layout_constraintStart_toStartOf="@id/header_title"
        app:layout_constraintEnd_toStartOf="@id/header_artist"
        app:layout_constraintTop_toTopOf="@id/header_artist"
        app:layout_constraintBottom_toTopOf="@id/media_action_barrier_top"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintHorizontal_chainStyle="packed"/>

    <Constraint
        android:id="@+id/header_artist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="@dimen/qs_media_padding"
        android:layout_marginBottom="@dimen/qs_media_padding"
        android:layout_marginTop="0dp"
        app:layout_constrainedWidth="true"
        app:layout_constraintEnd_toStartOf="@id/actionPlayPause"
        app:layout_constraintStart_toEndOf="@id/media_explicit_indicator"
        app:layout_constraintBottom_toTopOf="@id/media_action_barrier_top"
        app:layout_constraintVertical_bias="0" />

    <Constraint
        android:id="@+id/actionPlayPause"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginStart="@dimen/qs_media_padding"
        android:layout_marginEnd="@dimen/qs_media_padding"
        android:layout_marginBottom="@dimen/qs_media_padding"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@id/media_action_barrier_top" />

    <!--
    The bottom row of action buttons should remain in the same order when RTL, so their constraints
    are set with right/left instead of start/end.
    The chain is set to "spread" so that the progress bar can be weighted to fill any empty space.
     -->
    <Constraint
        android:id="@+id/actionPrev"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_chainStyle="spread" />

    <Constraint
        android:id="@+id/media_scrubbing_elapsed_time"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintLeft_toRightOf="@id/actionPrev"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_chainStyle="spread" />

    <Constraint
        android:id="@+id/media_progress_bar"
        android:layout_width="0dp"
        android:layout_height="48dp"
        app:layout_constraintLeft_toRightOf="@id/media_scrubbing_elapsed_time"
        app:layout_constraintRight_toLeftOf="@id/actionNext"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_weight="1" />

    <Constraint
        android:id="@+id/actionNext"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintRight_toLeftOf="@id/media_scrubbing_total_time"
        app:layout_constraintBottom_toBottomOf="parent" />

    <Constraint
        android:id="@+id/media_scrubbing_total_time"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintRight_toLeftOf="@id/action0"
        app:layout_constraintBottom_toBottomOf="parent" />

    <Constraint
        android:id="@+id/action0"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintRight_toLeftOf="@id/action1"
        app:layout_constraintBottom_toBottomOf="parent" />

    <Constraint
        android:id="@+id/action1"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintRight_toLeftOf="@id/action2"
        app:layout_constraintBottom_toBottomOf="parent" />

    <Constraint
        android:id="@+id/action2"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintRight_toLeftOf="@id/action3"
        app:layout_constraintBottom_toBottomOf="parent" />

    <Constraint
        android:id="@+id/action3"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintRight_toLeftOf="@id/action4"
        app:layout_constraintBottom_toBottomOf="parent" />

    <Constraint
        android:id="@+id/action4"
        android:layout_width="48dp"
        android:layout_height="48dp"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />
</ConstraintSet>
