<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2023 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!-- MiniPlayerLayout is a LinearLayout. -->
<org.chromium.chrome.browser.readaloud.player.mini.MiniPlayerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/readaloud_mini_player"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
android:orientation="vertical"
android:alpha="0"
android:visibility="gone">
<!-- Shadow -->
<ImageView
android:layout_width="match_parent"
android:layout_height="8dp"
android:src="@drawable/modern_toolbar_shadow"
android:scaleType="fitXY"
android:scaleY="-1"
android:importantForAccessibility="no"/>
<FrameLayout
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Middle layout containing everything but the progress bar. -->
<RelativeLayout
android:id="@+id/mini_player_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp">
<!-- Buffering/unknown layout. -->
<LinearLayout
android:id="@+id/buffering_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/close_button"
android:layout_centerVertical="true"
android:orientation="horizontal">
<!-- Loading spinner -->
<ProgressBar
android:id="@+id/spinner"
style="?android:attr/progressBarStyleLarge"
android:layout_width="@dimen/readaloud_mini_player_play_button_diameter"
android:layout_height="@dimen/readaloud_mini_player_play_button_diameter"
android:layout_marginVertical="@dimen/readaloud_mini_player_play_button_margin_vertical"
android:layout_marginEnd="@dimen/readaloud_mini_player_play_button_margin_end"/>
<!-- Loading message -->
<TextView
android:id="@+id/loading_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingEnd="@dimen/readaloud_mini_player_text_padding_end"
android:text="@string/readaloud_playback_loading"
android:textAppearance="@style/TextAppearance.TextMediumThick"
android:ellipsize="end"
android:maxLines="1"
android:clickable="false"
android:focusable="false"/>
</LinearLayout>
<!-- Error layout. -->
<LinearLayout
android:id="@+id/error_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingStart="6dp"
android:visibility="gone"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/close_button"
android:layout_centerVertical="true"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginVertical="22dp"
android:layout_marginEnd="@dimen/readaloud_mini_player_play_button_margin_end"
android:src="@drawable/error_24"
android:clickable="false"
android:focusable="false"
android:importantForAccessibility="no"/>
<!-- Error message -->
<TextView
android:id="@+id/error_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingEnd="@dimen/readaloud_mini_player_text_padding_end"
android:text="@string/readaloud_playback_error"
android:textAppearance="@style/TextAppearance.TextMediumThick"
android:ellipsize="end"
android:maxLines="1"
android:clickable="false"
android:focusable="false"/>
</LinearLayout>
<!-- Ordinary playback layout: play button and text -->
<LinearLayout
android:id="@+id/normal_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/close_button">
<!-- Play/pause button -->
<ImageView
android:id="@+id/play_button"
android:layout_width="@dimen/readaloud_mini_player_play_button_diameter"
android:layout_height="@dimen/readaloud_mini_player_play_button_diameter"
android:layout_marginVertical="@dimen/readaloud_mini_player_play_button_margin_vertical"
android:layout_marginEnd="@dimen/readaloud_mini_player_play_button_margin_end"
android:src="@drawable/mini_play_button"
android:clickable="true"
android:focusable="true"
android:background="@drawable/rounded_ripple"
android:contentDescription="@string/readaloud_play"/>
<!-- Title and publisher -->
<LinearLayout
android:id="@+id/title_and_publisher"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingEnd="@dimen/readaloud_mini_player_text_padding_end"
android:orientation="vertical"
android:clickable="false"
android:focusable="false">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.TextMediumThick"
android:ellipsize="end"
android:maxLines="1"/>
<TextView
android:id="@+id/publisher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.TextSmall"
android:ellipsize="end"
android:maxLines="1"/>
</LinearLayout>
</LinearLayout>
<!-- Close button -->
<ImageView
android:id="@+id/close_button"
android:src="@drawable/baseline_close_24"
android:contentDescription="@string/readaloud_close_player_button_content_description"
android:layout_width="@dimen/readaloud_close_button_size"
android:layout_height="@dimen/readaloud_close_button_size"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/rounded_ripple"
android:scaleType="fitCenter"/>
</RelativeLayout>
<!-- Bottom progress bar -->
<ProgressBar
android:id="@+id/progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_gravity="bottom"
android:background="?attr/colorSurfaceVariant"
android:max="1000"
android:progress="0"
android:progressTint="@macro/default_icon_color"
android:progressTintMode="src_atop"
android:visibility="gone"/>
</FrameLayout>
</org.chromium.chrome.browser.readaloud.player.mini.MiniPlayerLayout>