Implemented the logic of podcast controllers

This commit is contained in:
CappielloAntonio 2022-02-08 17:46:13 +01:00
parent 072b339f8c
commit c376adf2d9
8 changed files with 295 additions and 12 deletions

View file

@ -7,4 +7,6 @@
app:controller_layout_id="@layout/inner_fragment_player_controller_layout"
app:repeat_toggle_modes="all|one"
app:show_shuffle_button="true"
app:show_rewind_button="false"
app:show_fastforward_button="false"
app:show_timeout="0" />

View file

@ -145,6 +145,25 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/exo_progress" />
<View
android:id="@+id/placeholder_view_left"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="24dp"
app:layout_constraintBottom_toBottomOf="@+id/placeholder_view_middle_left"
app:layout_constraintEnd_toStartOf="@+id/placeholder_view_middle_left"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/placeholder_view_middle_left" />
<View
android:id="@+id/placeholder_view_middle_left"
android:layout_width="42dp"
android:layout_height="42dp"
app:layout_constraintBottom_toBottomOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintEnd_toStartOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintStart_toEndOf="@id/placeholder_view_left"
app:layout_constraintTop_toTopOf="@+id/player_play_pause_placeholder_view" />
<View
android:id="@+id/player_play_pause_placeholder_view"
android:layout_width="70dp"
@ -156,6 +175,42 @@
app:layout_constraintTop_toBottomOf="@+id/exo_progress"
app:layout_constraintVertical_bias=".60" />
<View
android:id="@+id/placeholder_view_middle_right"
android:layout_width="42dp"
android:layout_height="42dp"
app:layout_constraintBottom_toBottomOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintEnd_toStartOf="@id/placeholder_view_right"
app:layout_constraintStart_toEndOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintTop_toTopOf="@+id/player_play_pause_placeholder_view" />
<View
android:id="@+id/placeholder_view_right"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginEnd="24dp"
app:layout_constraintBottom_toBottomOf="@+id/placeholder_view_middle_right"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/placeholder_view_middle_right"
app:layout_constraintTop_toTopOf="@+id/placeholder_view_middle_right" />
<Button
android:id="@+id/player_playback_speed_button"
style="@style/Widget.Material3.Button.TextButton"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginStart="24dp"
android:insetLeft="0dp"
android:insetTop="0dp"
android:insetRight="0dp"
android:insetBottom="0dp"
app:cornerRadius="30dp"
app:layout_constraintBottom_toBottomOf="@+id/placeholder_view_middle_left"
app:layout_constraintEnd_toStartOf="@+id/placeholder_view_middle_left"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/placeholder_view_middle_left"
app:tint="?attr/colorOnPrimaryContainer" />
<ImageButton
android:id="@+id/exo_shuffle"
android:layout_width="32dp"
@ -163,13 +218,26 @@
android:layout_marginStart="24dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/exo_prev"
app:layout_constraintEnd_toStartOf="@+id/exo_prev"
app:layout_constraintBottom_toBottomOf="@+id/placeholder_view_middle_left"
app:layout_constraintEnd_toStartOf="@+id/placeholder_view_middle_left"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/exo_prev"
app:layout_constraintTop_toTopOf="@+id/placeholder_view_middle_left"
app:srcCompat="@drawable/ic_shuffle"
app:tint="?attr/colorOnPrimaryContainer" />
<ImageButton
android:id="@+id/exo_rew"
android:layout_width="42dp"
android:layout_height="42dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:scaleType="fitCenter"
android:src="@drawable/ic_replay"
app:layout_constraintBottom_toBottomOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintEnd_toStartOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintStart_toEndOf="@id/placeholder_view_left"
app:layout_constraintTop_toTopOf="@+id/player_play_pause_placeholder_view"
app:tint="?attr/colorOnPrimaryContainer" />
<ImageButton
android:id="@+id/exo_prev"
android:layout_width="42dp"
@ -178,7 +246,7 @@
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintEnd_toStartOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintStart_toEndOf="@id/exo_shuffle"
app:layout_constraintStart_toEndOf="@id/placeholder_view_left"
app:layout_constraintTop_toTopOf="@+id/player_play_pause_placeholder_view"
app:srcCompat="@drawable/ic_skip_previous"
app:tint="?attr/colorOnPrimaryContainer" />
@ -222,12 +290,25 @@
android:background="?attr/selectableItemBackgroundBorderless"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintEnd_toStartOf="@id/exo_repeat_toggle"
app:layout_constraintEnd_toStartOf="@id/placeholder_view_right"
app:layout_constraintStart_toEndOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintTop_toTopOf="@+id/player_play_pause_placeholder_view"
app:srcCompat="@drawable/ic_skip_next"
app:tint="?attr/colorOnPrimaryContainer" />
<ImageButton
android:id="@+id/exo_ffwd"
android:layout_width="42dp"
android:layout_height="42dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintEnd_toStartOf="@id/placeholder_view_right"
app:layout_constraintStart_toEndOf="@+id/player_play_pause_placeholder_view"
app:layout_constraintTop_toTopOf="@+id/player_play_pause_placeholder_view"
app:srcCompat="@drawable/ic_forward"
app:tint="?attr/colorOnPrimaryContainer" />
<ImageButton
android:id="@+id/exo_repeat_toggle"
android:layout_width="32dp"
@ -235,11 +316,25 @@
android:layout_marginEnd="24dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/exo_next"
app:layout_constraintBottom_toBottomOf="@+id/placeholder_view_middle_right"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/exo_next"
app:layout_constraintTop_toTopOf="@+id/exo_next"
app:layout_constraintStart_toEndOf="@+id/placeholder_view_middle_right"
app:layout_constraintTop_toTopOf="@+id/placeholder_view_middle_right"
app:srcCompat="@drawable/ic_repeat"
app:tint="?attr/colorOnPrimaryContainer" />
<ToggleButton
android:id="@+id/player_skip_silence_toggle_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="24dp"
android:background="@drawable/button_skip_silence_selector"
android:text=""
android:textOff=""
android:textOn=""
app:layout_constraintBottom_toBottomOf="@+id/placeholder_view_middle_right"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/placeholder_view_middle_right"
app:layout_constraintTop_toTopOf="@+id/placeholder_view_middle_right"
app:tint="?attr/colorOnPrimaryContainer" />
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -26,7 +26,7 @@
android:maxLines="1"
android:paddingStart="8dp"
android:paddingEnd="8dp"
app:layout_constraintEnd_toStartOf="@+id/player_header_button"
app:layout_constraintEnd_toStartOf="@+id/placeholder_left_view"
app:layout_constraintStart_toEndOf="@+id/player_header_media_cover_image"
app:layout_constraintTop_toTopOf="parent" />
@ -39,10 +39,43 @@
android:maxLines="1"
android:paddingStart="8dp"
android:paddingEnd="8dp"
app:layout_constraintEnd_toStartOf="@+id/player_header_button"
app:layout_constraintEnd_toStartOf="@+id/placeholder_left_view"
app:layout_constraintStart_toEndOf="@+id/player_header_media_cover_image"
app:layout_constraintTop_toBottomOf="@+id/player_header_media_title_label" />
<View
android:id="@+id/placeholder_left_view"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintBottom_toTopOf="@+id/player_header_seek_bar"
app:layout_constraintEnd_toStartOf="@+id/player_header_button"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/placeholder_right_view"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintBottom_toTopOf="@+id/player_header_seek_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/player_header_rewind_media_button"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:background="@drawable/ic_replay"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/player_header_seek_bar"
app:layout_constraintEnd_toStartOf="@+id/player_header_button"
app:layout_constraintTop_toTopOf="parent" />
<ToggleButton
android:id="@+id/player_header_button"
android:layout_width="28dp"
@ -56,7 +89,7 @@
android:textOff=""
android:textOn=""
app:layout_constraintBottom_toTopOf="@+id/player_header_seek_bar"
app:layout_constraintEnd_toStartOf="@+id/player_header_next_media_button"
app:layout_constraintEnd_toStartOf="@+id/placeholder_right_view"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
@ -71,6 +104,19 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/player_header_fast_forward_media_button"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:background="@drawable/ic_forward"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/player_header_seek_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<SeekBar
android:id="@+id/player_header_seek_bar"
android:layout_width="match_parent"

View file

@ -110,6 +110,7 @@
<string name="menu_unpin_button">Unpin</string>
<string name="player_bottom_sheet_title">Now playing</string>
<string name="player_song_lyrics_none_available_label">No lyrics available</string>
<string name="player_playback_speed">%1$.2fx</string>
<string name="playlist_catalogue_title">Playlist Catalogue</string>
<string name="playlist_catalogue_title_expanded">Browse Playlists</string>
<string name="playlist_chooser_dialog_empty">No playlists created</string>