list: avoid crashing on span size lookups
Apparently sometimes the span size lookup will try to find an item that does not exist. Fix that.
This commit is contained in:
parent
fb892453bd
commit
89eeaa33cc
6 changed files with 18 additions and 5 deletions
|
|
@ -51,7 +51,7 @@ import org.oxycblt.auxio.util.systemBarInsetsCompat
|
|||
* TODO: Fix UID naming
|
||||
* TODO: Leverage FlexibleListAdapter more in dialogs (Disable item anims)
|
||||
* TODO: Add more logging
|
||||
* TODO: Try to move on from shared objs in synchronized and volatile
|
||||
* TODO: Try to move on from synchronized and volatile in shared objs
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
|
|
|||
|
|
@ -101,7 +101,10 @@ class ArtistDetailFragment :
|
|||
adapter = ConcatAdapter(artistHeaderAdapter, artistListAdapter)
|
||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
||||
if (it != 0) {
|
||||
val item = detailModel.artistList.value[it - 1]
|
||||
val item =
|
||||
detailModel.artistList.value.getOrElse(it - 1) {
|
||||
return@setFullWidthLookup false
|
||||
}
|
||||
item is Divider || item is Header
|
||||
} else {
|
||||
true
|
||||
|
|
|
|||
|
|
@ -94,7 +94,10 @@ class GenreDetailFragment :
|
|||
adapter = ConcatAdapter(genreHeaderAdapter, genreListAdapter)
|
||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
||||
if (it != 0) {
|
||||
val item = detailModel.genreList.value[it - 1]
|
||||
val item =
|
||||
detailModel.genreList.value.getOrElse(it - 1) {
|
||||
return@setFullWidthLookup false
|
||||
}
|
||||
item is Divider || item is Header
|
||||
} else {
|
||||
true
|
||||
|
|
|
|||
|
|
@ -109,7 +109,10 @@ class PlaylistDetailFragment :
|
|||
}
|
||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
||||
if (it != 0) {
|
||||
val item = detailModel.playlistList.value[it - 1]
|
||||
val item =
|
||||
detailModel.playlistList.value.getOrElse(it - 1) {
|
||||
return@setFullWidthLookup false
|
||||
}
|
||||
item is Divider || item is Header
|
||||
} else {
|
||||
true
|
||||
|
|
|
|||
|
|
@ -110,7 +110,10 @@ class SearchFragment : ListFragment<Music, FragmentSearchBinding>() {
|
|||
binding.searchRecycler.apply {
|
||||
adapter = searchAdapter
|
||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
||||
val item = searchModel.searchResults.value[it]
|
||||
val item =
|
||||
searchModel.searchResults.value.getOrElse(it) {
|
||||
return@setFullWidthLookup false
|
||||
}
|
||||
item is Divider || item is Header
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -335,6 +335,7 @@
|
|||
<string name="def_track">No track</string>
|
||||
<string name="def_song_count">No songs</string>
|
||||
<string name="def_playback">No music playing</string>
|
||||
<string name="def_playlists">There\'s nothing here yet</string>
|
||||
|
||||
<!-- Codec Namespace | Format names -->
|
||||
<eat-comment />
|
||||
|
|
|
|||
Loading…
Reference in a new issue