detail: re-add toolbar play/shuffle
This commit is contained in:
parent
92a07e346b
commit
3007ad3ced
10 changed files with 152 additions and 10 deletions
|
@ -141,9 +141,15 @@ class AlbumDetailFragment : DetailFragment<Album, Song>() {
|
||||||
binding.detailPlayButton?.setOnClickListener {
|
binding.detailPlayButton?.setOnClickListener {
|
||||||
playbackModel.play(unlikelyToBeNull(detailModel.currentAlbum.value))
|
playbackModel.play(unlikelyToBeNull(detailModel.currentAlbum.value))
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarPlay.setOnClickListener {
|
||||||
|
playbackModel.play(unlikelyToBeNull(detailModel.currentAlbum.value))
|
||||||
|
}
|
||||||
binding.detailShuffleButton?.setOnClickListener {
|
binding.detailShuffleButton?.setOnClickListener {
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value))
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarShuffle.setOnClickListener {
|
||||||
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value))
|
||||||
|
}
|
||||||
updatePlayback(
|
updatePlayback(
|
||||||
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,9 +164,15 @@ class ArtistDetailFragment : DetailFragment<Artist, Music>() {
|
||||||
binding.detailPlayButton?.setOnClickListener {
|
binding.detailPlayButton?.setOnClickListener {
|
||||||
playbackModel.play(unlikelyToBeNull(detailModel.currentArtist.value))
|
playbackModel.play(unlikelyToBeNull(detailModel.currentArtist.value))
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarPlay.setOnClickListener {
|
||||||
|
playbackModel.play(unlikelyToBeNull(detailModel.currentArtist.value))
|
||||||
|
}
|
||||||
binding.detailShuffleButton?.setOnClickListener {
|
binding.detailShuffleButton?.setOnClickListener {
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentArtist.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentArtist.value))
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarShuffle.setOnClickListener {
|
||||||
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentArtist.value))
|
||||||
|
}
|
||||||
updatePlayback(
|
updatePlayback(
|
||||||
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,9 +133,15 @@ class GenreDetailFragment : DetailFragment<Genre, Music>() {
|
||||||
binding.detailPlayButton?.setOnClickListener {
|
binding.detailPlayButton?.setOnClickListener {
|
||||||
playbackModel.play(unlikelyToBeNull(detailModel.currentGenre.value))
|
playbackModel.play(unlikelyToBeNull(detailModel.currentGenre.value))
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarPlay.setOnClickListener {
|
||||||
|
playbackModel.play(unlikelyToBeNull(detailModel.currentGenre.value))
|
||||||
|
}
|
||||||
binding.detailShuffleButton?.setOnClickListener {
|
binding.detailShuffleButton?.setOnClickListener {
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentGenre.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentGenre.value))
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarShuffle.setOnClickListener {
|
||||||
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentGenre.value))
|
||||||
|
}
|
||||||
updatePlayback(
|
updatePlayback(
|
||||||
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -232,12 +232,24 @@ class PlaylistDetailFragment :
|
||||||
playbackModel.play(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
playbackModel.play(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarPlay.apply {
|
||||||
|
isEnabled = playable
|
||||||
|
setOnClickListener {
|
||||||
|
playbackModel.play(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
||||||
|
}
|
||||||
|
}
|
||||||
binding.detailShuffleButton?.apply {
|
binding.detailShuffleButton?.apply {
|
||||||
isEnabled = playable
|
isEnabled = playable
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
binding.detailToolbarShuffle.apply {
|
||||||
|
isEnabled = playable
|
||||||
|
setOnClickListener {
|
||||||
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
||||||
|
}
|
||||||
|
}
|
||||||
updatePlayback(
|
updatePlayback(
|
||||||
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,16 +164,32 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_toolbar_title"
|
android:id="@+id/detail_toolbar_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
android:layout_marginStart="@dimen/spacing_tiny"
|
android:layout_marginStart="@dimen/spacing_tiny"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
||||||
android:textColor="?attr/colorOnSurface"
|
android:textColor="?attr/colorOnSurface"
|
||||||
tools:text="Name" />
|
tools:text="Name" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_play"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Secondary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_play_24" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_shuffle"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Primary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_shuffle_off_24" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</com.google.android.material.appbar.MaterialToolbar>
|
</com.google.android.material.appbar.MaterialToolbar>
|
||||||
|
|
|
@ -146,18 +146,35 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_toolbar_title"
|
android:id="@+id/detail_toolbar_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
android:layout_marginStart="@dimen/spacing_tiny"
|
android:layout_marginStart="@dimen/spacing_tiny"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
||||||
android:textColor="?attr/colorOnSurface"
|
android:textColor="?attr/colorOnSurface"
|
||||||
tools:text="Name" />
|
tools:text="Name" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_play"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Secondary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_play_24" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_shuffle"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Primary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_shuffle_off_24" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.MaterialToolbar>
|
</com.google.android.material.appbar.MaterialToolbar>
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
|
|
|
@ -161,18 +161,35 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_toolbar_title"
|
android:id="@+id/detail_toolbar_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
android:layout_marginStart="@dimen/spacing_tiny"
|
android:layout_marginStart="@dimen/spacing_tiny"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
||||||
android:textColor="?attr/colorOnSurface"
|
android:textColor="?attr/colorOnSurface"
|
||||||
tools:text="Name" />
|
tools:text="Name" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_play"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Secondary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_play_24" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_shuffle"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Primary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_shuffle_off_24" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.MaterialToolbar>
|
</com.google.android.material.appbar.MaterialToolbar>
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
|
|
|
@ -164,16 +164,32 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_toolbar_title"
|
android:id="@+id/detail_toolbar_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
android:layout_marginStart="@dimen/spacing_tiny"
|
android:layout_marginStart="@dimen/spacing_tiny"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
||||||
android:textColor="?attr/colorOnSurface"
|
android:textColor="?attr/colorOnSurface"
|
||||||
tools:text="Name" />
|
tools:text="Name" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_play"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Secondary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_play_24" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_shuffle"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Primary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_shuffle_off_24" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</com.google.android.material.appbar.MaterialToolbar>
|
</com.google.android.material.appbar.MaterialToolbar>
|
||||||
|
|
|
@ -136,18 +136,35 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_toolbar_title"
|
android:id="@+id/detail_toolbar_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginStart="@dimen/spacing_tiny"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:layout_marginStart="@dimen/spacing_tiny"
|
|
||||||
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
android:textAppearance="@style/TextAppearance.Auxio.TitleLarge"
|
||||||
android:textColor="?attr/colorOnSurface"
|
android:textColor="?attr/colorOnSurface"
|
||||||
tools:text="Name" />
|
tools:text="Name" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_play"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Secondary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_play_24" />
|
||||||
|
|
||||||
|
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||||
|
android:id="@+id/detail_toolbar_shuffle"
|
||||||
|
style="@style/Widget.Auxio.Button.Icon.Small.Primary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_shuffle_off_24" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.MaterialToolbar>
|
</com.google.android.material.appbar.MaterialToolbar>
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
|
|
|
@ -297,8 +297,32 @@
|
||||||
<item name="iconTint" tools:ignore="PrivateResource">@color/m3_text_button_foreground_color_selector</item>
|
<item name="iconTint" tools:ignore="PrivateResource">@color/m3_text_button_foreground_color_selector</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Widget.Auxio.Button.Icon.Small.Secondary" parent="Widget.Auxio.Button.Icon.Small">
|
<style name="Widget.Auxio.Button.Icon.Small.Primary" parent="Widget.Material3.Button.IconButton.Filled">
|
||||||
<item name="materialThemeOverlay">@style/ThemeOverlay.Auxio.IconButton.Huge</item>
|
<item name="iconSize">@dimen/size_icon_small</item>
|
||||||
|
<item name="android:minWidth">@dimen/size_touchable_small</item>
|
||||||
|
<item name="android:minHeight">@dimen/size_touchable_small</item>
|
||||||
|
<item name="android:insetTop">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:insetBottom">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:insetLeft">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:insetRight">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:paddingStart">@dimen/spacing_small</item>
|
||||||
|
<item name="android:paddingEnd">@dimen/spacing_small</item>
|
||||||
|
<item name="android:paddingTop">@dimen/spacing_small</item>
|
||||||
|
<item name="android:paddingBottom">@dimen/spacing_small</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="Widget.Auxio.Button.Icon.Small.Secondary" parent="Widget.Material3.Button.IconButton.Filled.Tonal">
|
||||||
|
<item name="iconSize">@dimen/size_icon_small</item>
|
||||||
|
<item name="android:minWidth">@dimen/size_touchable_small</item>
|
||||||
|
<item name="android:minHeight">@dimen/size_touchable_small</item>
|
||||||
|
<item name="android:insetTop">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:insetBottom">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:insetLeft">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:insetRight">@dimen/spacing_tiny</item>
|
||||||
|
<item name="android:paddingStart">@dimen/spacing_small</item>
|
||||||
|
<item name="android:paddingEnd">@dimen/spacing_small</item>
|
||||||
|
<item name="android:paddingTop">@dimen/spacing_small</item>
|
||||||
|
<item name="android:paddingBottom">@dimen/spacing_small</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Widget.Auxio.Button.Icon.Small.PlayPause" parent="Widget.Auxio.Button.Icon.Small">
|
<style name="Widget.Auxio.Button.Icon.Small.PlayPause" parent="Widget.Auxio.Button.Icon.Small">
|
||||||
|
@ -321,10 +345,15 @@
|
||||||
<item name="android:paddingEnd">8dp</item>
|
<item name="android:paddingEnd">8dp</item>
|
||||||
<item name="android:paddingTop">8dp</item>
|
<item name="android:paddingTop">8dp</item>
|
||||||
<item name="android:paddingBottom">8dp</item>
|
<item name="android:paddingBottom">8dp</item>
|
||||||
<item name="materialThemeOverlay">@style/ThemeOverlay.Auxio.IconButton.Huge</item>
|
<item name="materialThemeOverlay">@style/ThemeOverlay.Auxio.IconButton.Palette.Secondary</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="ThemeOverlay.Auxio.IconButton.Huge" parent="">
|
<style name="ThemeOverlay.Auxio.IconButton.Palette.Primary" parent="">
|
||||||
|
<item name="colorContainer">?attr/colorPrimaryContainer</item>
|
||||||
|
<item name="colorOnContainer">?attr/colorOnPrimaryContainer</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="ThemeOverlay.Auxio.IconButton.Palette.Secondary" parent="">
|
||||||
<item name="colorContainer">?attr/colorSecondaryContainer</item>
|
<item name="colorContainer">?attr/colorSecondaryContainer</item>
|
||||||
<item name="colorOnContainer">?attr/colorOnSecondaryContainer</item>
|
<item name="colorOnContainer">?attr/colorOnSecondaryContainer</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in a new issue