From 28bb4e61c46cd1cb6d28e0cac8250149a617800e Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Thu, 19 Jan 2023 19:53:33 -0700 Subject: [PATCH] detail: fix crash when playing genre song Fix an issue where the genre detail view would crash when playing a song. --- .../java/org/oxycblt/auxio/detail/GenreDetailFragment.kt | 6 +++--- .../java/org/oxycblt/auxio/detail/recycler/DetailAdapter.kt | 6 +----- .../main/java/org/oxycblt/auxio/list/adapter/ListDiffer.kt | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt index 65603b4bf..b69598d2b 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -127,10 +127,10 @@ class GenreDetailFragment : if (playbackMode != null) { playbackModel.playFrom(item, playbackMode) } else { - // When configured to play from the selected item, we already have an Artist + // When configured to play from the selected item, we already have an Genre // to play from. - playbackModel.playFromArtist( - item, unlikelyToBeNull(detailModel.currentArtist.value)) + playbackModel.playFromGenre( + item, unlikelyToBeNull(detailModel.currentGenre.value)) } } else -> error("Unexpected datatype: ${item::class.simpleName}") diff --git a/app/src/main/java/org/oxycblt/auxio/detail/recycler/DetailAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/recycler/DetailAdapter.kt index 70541a004..0928f8e30 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/recycler/DetailAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/recycler/DetailAdapter.kt @@ -36,7 +36,6 @@ import org.oxycblt.auxio.list.SelectableListListener import org.oxycblt.auxio.list.adapter.ListDiffer import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter import org.oxycblt.auxio.list.adapter.SimpleDiffCallback -import org.oxycblt.auxio.list.adapter.overwriteList import org.oxycblt.auxio.list.recycler.* import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.util.context @@ -142,10 +141,7 @@ private class DetailListDiffer( when (instructions) { is DetailListInstructions.Diff -> inner.submitList(newList, onDone) is DetailListInstructions.ReplaceRest -> { - val amount = newList.size - instructions.at - updateCallback.onRemoved(instructions.at, amount) - inner.overwriteList(newList) - updateCallback.onInserted(instructions.at, amount) + inner.submitList(newList.slice(0..instructions.at)) { inner.submitList(newList) } } } } diff --git a/app/src/main/java/org/oxycblt/auxio/list/adapter/ListDiffer.kt b/app/src/main/java/org/oxycblt/auxio/list/adapter/ListDiffer.kt index ece76956d..f02800fa7 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/adapter/ListDiffer.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/adapter/ListDiffer.kt @@ -95,7 +95,7 @@ enum class BasicListInstructions { REPLACE } -private abstract class BasicListDiffer() : ListDiffer { +private abstract class BasicListDiffer : ListDiffer { override fun submitList( newList: List, instructions: BasicListInstructions,