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: Fix UID naming
|
||||||
* TODO: Leverage FlexibleListAdapter more in dialogs (Disable item anims)
|
* TODO: Leverage FlexibleListAdapter more in dialogs (Disable item anims)
|
||||||
* TODO: Add more logging
|
* 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
|
@AndroidEntryPoint
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,10 @@ class ArtistDetailFragment :
|
||||||
adapter = ConcatAdapter(artistHeaderAdapter, artistListAdapter)
|
adapter = ConcatAdapter(artistHeaderAdapter, artistListAdapter)
|
||||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
||||||
if (it != 0) {
|
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
|
item is Divider || item is Header
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,10 @@ class GenreDetailFragment :
|
||||||
adapter = ConcatAdapter(genreHeaderAdapter, genreListAdapter)
|
adapter = ConcatAdapter(genreHeaderAdapter, genreListAdapter)
|
||||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
||||||
if (it != 0) {
|
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
|
item is Divider || item is Header
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,10 @@ class PlaylistDetailFragment :
|
||||||
}
|
}
|
||||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
||||||
if (it != 0) {
|
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
|
item is Divider || item is Header
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,10 @@ class SearchFragment : ListFragment<Music, FragmentSearchBinding>() {
|
||||||
binding.searchRecycler.apply {
|
binding.searchRecycler.apply {
|
||||||
adapter = searchAdapter
|
adapter = searchAdapter
|
||||||
(layoutManager as GridLayoutManager).setFullWidthLookup {
|
(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
|
item is Divider || item is Header
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -335,6 +335,7 @@
|
||||||
<string name="def_track">No track</string>
|
<string name="def_track">No track</string>
|
||||||
<string name="def_song_count">No songs</string>
|
<string name="def_song_count">No songs</string>
|
||||||
<string name="def_playback">No music playing</string>
|
<string name="def_playback">No music playing</string>
|
||||||
|
<string name="def_playlists">There\'s nothing here yet</string>
|
||||||
|
|
||||||
<!-- Codec Namespace | Format names -->
|
<!-- Codec Namespace | Format names -->
|
||||||
<eat-comment />
|
<eat-comment />
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue