Refreash viewholder item codes

Fix the viewholder item codes so they actually make sense.
This commit is contained in:
OxygenCobalt 2020-12-29 09:27:45 -07:00
parent 46fa300252
commit 966adf7704
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
5 changed files with 97 additions and 80 deletions

View file

@ -79,7 +79,7 @@ class AlbumDetailAdapter(
} }
companion object { companion object {
const val ALBUM_HEADER_ITEM_TYPE = 0xA024 const val ALBUM_HEADER_ITEM_TYPE = 0xA007
const val ALBUM_SONG_ITEM_TYPE = 0xA025 const val ALBUM_SONG_ITEM_TYPE = 0xA008
} }
} }

View file

@ -84,7 +84,7 @@ class ArtistDetailAdapter(
} }
companion object { companion object {
const val ARTIST_HEADER_ITEM_TYPE = 0xA022 const val ARTIST_HEADER_ITEM_TYPE = 0xA009
const val ARTIST_ALBUM_ITEM_TYPE = 0xA023 const val ARTIST_ALBUM_ITEM_TYPE = 0xA00A
} }
} }

View file

@ -83,7 +83,7 @@ class GenreDetailAdapter(
} }
companion object { companion object {
const val GENRE_HEADER_ITEM_TYPE = 0xA020 const val GENRE_HEADER_ITEM_TYPE = 0xA00B
const val GENRE_SONG_ITEM_TYPE = 0xA021 const val GENRE_SONG_ITEM_TYPE = 0xA00C
} }
} }

View file

@ -44,7 +44,7 @@ class QueueAdapter(
else else
HeaderViewHolder.ITEM_TYPE HeaderViewHolder.ITEM_TYPE
else else
QUEUE_ITEM_TYPE QUEUE_SONG_ITEM_TYPE
} }
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
@ -55,7 +55,7 @@ class QueueAdapter(
parent.context, ItemActionHeaderBinding.inflate(LayoutInflater.from(parent.context)) parent.context, ItemActionHeaderBinding.inflate(LayoutInflater.from(parent.context))
) )
QUEUE_ITEM_TYPE -> QueueSongViewHolder( QUEUE_SONG_ITEM_TYPE -> QueueSongViewHolder(
ItemQueueSongBinding.inflate(LayoutInflater.from(parent.context)) ItemQueueSongBinding.inflate(LayoutInflater.from(parent.context))
) )
@ -182,7 +182,7 @@ class QueueAdapter(
} }
companion object { companion object {
const val QUEUE_ITEM_TYPE = 0xA015 const val QUEUE_SONG_ITEM_TYPE = 0xA005
const val USER_QUEUE_HEADER_ITEM_TYPE = 0xA016 const val USER_QUEUE_HEADER_ITEM_TYPE = 0xA006
} }
} }

View file

@ -19,66 +19,52 @@ import org.oxycblt.auxio.recycler.viewholders.GenreViewHolder.Companion.from
import org.oxycblt.auxio.recycler.viewholders.HeaderViewHolder.Companion.from import org.oxycblt.auxio.recycler.viewholders.HeaderViewHolder.Companion.from
import org.oxycblt.auxio.recycler.viewholders.SongViewHolder.Companion.from import org.oxycblt.auxio.recycler.viewholders.SongViewHolder.Companion.from
/** /*
* The Shared ViewHolder for a [Genre]. Instantiation should be done with [from]. * A table of all ViewHolder codes. Please add to these so that all viewholder codes are unique.
* SongViewHolder -> 0xA000
* AlbumViewHolder -> 0xA001
* ArtistViewHolder -> 0xA002
* GenreViewHolder -> 0xA003
* HeaderViewHolder -> 0xA004
* QueueSongViewHolder -> 0xA005
* UserQueueHeaderViewHolder -> 0xA006
* AlbumHeaderViewHolder -> 0xA007
* AlbumSongViewHolder -> 0xA008
* ArtistHeaderViewHolder -> 0xA009
* ArtistAlbumViewHolder -> 0xA00A
* GenreHeaderViewHolder -> 0xA00B
* GenreSongViewHolder -> 0xA00C
*/ */
class GenreViewHolder private constructor(
private val binding: ItemGenreBinding,
doOnClick: (Genre) -> Unit,
doOnLongClick: (data: Genre, view: View) -> Unit
) : BaseViewHolder<Genre>(binding, doOnClick, doOnLongClick) {
override fun onBind(data: Genre) { /**
binding.genre = data * The Shared ViewHolder for a [Song]. Instantiation should be done with [from].
binding.genreName.requestLayout() */
class SongViewHolder private constructor(
private val binding: ItemSongBinding,
doOnClick: (data: Song) -> Unit,
doOnLongClick: (data: Song, view: View) -> Unit
) : BaseViewHolder<Song>(binding, doOnClick, doOnLongClick) {
override fun onBind(data: Song) {
binding.song = data
binding.songName.requestLayout()
binding.songInfo.requestLayout()
} }
companion object { companion object {
const val ITEM_TYPE = 0xA010 const val ITEM_TYPE = 0xA000
/** /**
* Create an instance of [GenreViewHolder] * Create an instance of [SongViewHolder]
*/ */
fun from( fun from(
context: Context, context: Context,
doOnClick: (Genre) -> Unit, doOnClick: (data: Song) -> Unit,
doOnLongClick: (data: Genre, view: View) -> Unit doOnLongClick: (data: Song, view: View) -> Unit
): GenreViewHolder { ): SongViewHolder {
return GenreViewHolder( return SongViewHolder(
ItemGenreBinding.inflate(LayoutInflater.from(context)), ItemSongBinding.inflate(LayoutInflater.from(context)),
doOnClick, doOnLongClick
)
}
}
}
/**
* The Shared ViewHolder for a [Artist]. Instantiation should be done with [from].
*/
class ArtistViewHolder private constructor(
private val binding: ItemArtistBinding,
doOnClick: (Artist) -> Unit,
doOnLongClick: (data: Artist, view: View) -> Unit
) : BaseViewHolder<Artist>(binding, doOnClick, doOnLongClick) {
override fun onBind(data: Artist) {
binding.artist = data
binding.artistName.requestLayout()
}
companion object {
const val ITEM_TYPE = 0xA011
/**
* Create an instance of [ArtistViewHolder]
*/
fun from(
context: Context,
doOnClick: (Artist) -> Unit,
doOnLongClick: (data: Artist, view: View) -> Unit
): ArtistViewHolder {
return ArtistViewHolder(
ItemArtistBinding.inflate(LayoutInflater.from(context)),
doOnClick, doOnLongClick doOnClick, doOnLongClick
) )
} }
@ -100,7 +86,7 @@ class AlbumViewHolder private constructor(
} }
companion object { companion object {
const val ITEM_TYPE = 0xA012 const val ITEM_TYPE = 0xA001
/** /**
* Create an instance of [AlbumViewHolder] * Create an instance of [AlbumViewHolder]
@ -119,34 +105,65 @@ class AlbumViewHolder private constructor(
} }
/** /**
* The Shared ViewHolder for a [Song]. Instantiation should be done with [from]. * The Shared ViewHolder for a [Artist]. Instantiation should be done with [from].
*/ */
class SongViewHolder private constructor( class ArtistViewHolder private constructor(
private val binding: ItemSongBinding, private val binding: ItemArtistBinding,
doOnClick: (data: Song) -> Unit, doOnClick: (Artist) -> Unit,
doOnLongClick: (data: Song, view: View) -> Unit doOnLongClick: (data: Artist, view: View) -> Unit
) : BaseViewHolder<Song>(binding, doOnClick, doOnLongClick) { ) : BaseViewHolder<Artist>(binding, doOnClick, doOnLongClick) {
override fun onBind(data: Song) { override fun onBind(data: Artist) {
binding.song = data binding.artist = data
binding.artistName.requestLayout()
binding.songName.requestLayout()
binding.songInfo.requestLayout()
} }
companion object { companion object {
const val ITEM_TYPE = 0xA013 const val ITEM_TYPE = 0xA002
/** /**
* Create an instance of [SongViewHolder] * Create an instance of [ArtistViewHolder]
*/ */
fun from( fun from(
context: Context, context: Context,
doOnClick: (data: Song) -> Unit, doOnClick: (Artist) -> Unit,
doOnLongClick: (data: Song, view: View) -> Unit doOnLongClick: (data: Artist, view: View) -> Unit
): SongViewHolder { ): ArtistViewHolder {
return SongViewHolder( return ArtistViewHolder(
ItemSongBinding.inflate(LayoutInflater.from(context)), ItemArtistBinding.inflate(LayoutInflater.from(context)),
doOnClick, doOnLongClick
)
}
}
}
/**
* The Shared ViewHolder for a [Genre]. Instantiation should be done with [from].
*/
class GenreViewHolder private constructor(
private val binding: ItemGenreBinding,
doOnClick: (Genre) -> Unit,
doOnLongClick: (data: Genre, view: View) -> Unit
) : BaseViewHolder<Genre>(binding, doOnClick, doOnLongClick) {
override fun onBind(data: Genre) {
binding.genre = data
binding.genreName.requestLayout()
}
companion object {
const val ITEM_TYPE = 0xA003
/**
* Create an instance of [GenreViewHolder]
*/
fun from(
context: Context,
doOnClick: (Genre) -> Unit,
doOnLongClick: (data: Genre, view: View) -> Unit
): GenreViewHolder {
return GenreViewHolder(
ItemGenreBinding.inflate(LayoutInflater.from(context)),
doOnClick, doOnLongClick doOnClick, doOnLongClick
) )
} }
@ -165,7 +182,7 @@ class HeaderViewHolder(
} }
companion object { companion object {
const val ITEM_TYPE = 0xA014 const val ITEM_TYPE = 0xA004
/** /**
* Create an instance of [HeaderViewHolder] * Create an instance of [HeaderViewHolder]