PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt

77 lines
2.8 KiB
Kotlin
Raw Normal View History

2019-04-20 05:29:45 +00:00
package code.name.monkey.retromusic.adapter.song
2018-11-30 01:06:16 +00:00
2019-09-18 15:44:14 +00:00
import android.app.ActivityOptions
2019-12-01 11:28:57 +00:00
import android.view.MenuItem
import android.view.View
2018-11-30 01:06:16 +00:00
import androidx.appcompat.app.AppCompatActivity
import code.name.monkey.retromusic.R
2019-06-04 18:18:27 +00:00
import code.name.monkey.retromusic.helper.MusicPlayerRemote
2018-11-30 01:06:16 +00:00
import code.name.monkey.retromusic.interfaces.CabHolder
import code.name.monkey.retromusic.model.Song
2019-12-01 11:28:57 +00:00
import code.name.monkey.retromusic.util.NavigationUtil
2019-06-04 18:18:27 +00:00
import com.google.android.material.button.MaterialButton
2020-01-02 03:53:43 +00:00
import java.util.ArrayList
2018-11-30 01:06:16 +00:00
2019-11-15 17:44:42 +00:00
open class PlaylistSongAdapter(
2020-01-02 03:53:43 +00:00
activity: AppCompatActivity,
dataSet: ArrayList<Song>,
itemLayoutRes: Int,
usePalette: Boolean,
cabHolder: CabHolder?
2019-11-15 17:44:42 +00:00
) : AbsOffsetSongAdapter(activity, dataSet, itemLayoutRes, usePalette, cabHolder, false) {
2018-11-30 01:06:16 +00:00
2019-12-01 11:28:57 +00:00
init {
this.setMultiSelectMenuRes(R.menu.menu_cannot_delete_single_songs_playlist_songs_selection)
}
2018-11-30 01:06:16 +00:00
2019-12-01 11:28:57 +00:00
override fun createViewHolder(view: View): SongAdapter.ViewHolder {
return ViewHolder(view)
}
2018-11-30 01:06:16 +00:00
2019-12-01 11:28:57 +00:00
override fun onBindViewHolder(holder: SongAdapter.ViewHolder, position: Int) {
if (holder.itemViewType == OFFSET_ITEM) {
val viewHolder = holder as ViewHolder
viewHolder.playAction?.let {
it.setOnClickListener {
MusicPlayerRemote.openQueue(dataSet, 0, true)
}
}
viewHolder.shuffleAction?.let {
it.setOnClickListener {
MusicPlayerRemote.openAndShuffleQueue(dataSet, true)
}
}
} else {
super.onBindViewHolder(holder, position - 1)
}
}
2019-06-04 18:18:27 +00:00
2019-12-01 11:28:57 +00:00
open inner class ViewHolder(itemView: View) : AbsOffsetSongAdapter.ViewHolder(itemView) {
2018-11-30 01:06:16 +00:00
2019-12-01 11:28:57 +00:00
val playAction: MaterialButton? = itemView.findViewById(R.id.playAction)
val shuffleAction: MaterialButton? = itemView.findViewById(R.id.shuffleAction)
2018-11-30 01:06:16 +00:00
2019-12-01 11:28:57 +00:00
override var songMenuRes: Int
get() = R.menu.menu_item_cannot_delete_single_songs_playlist_song
set(value) {
super.songMenuRes = value
}
2019-06-04 18:18:27 +00:00
2019-12-01 11:28:57 +00:00
override fun onSongMenuItemClick(item: MenuItem): Boolean {
if (item.itemId == R.id.action_go_to_album) {
val activityOptions = ActivityOptions.makeSceneTransitionAnimation(
2020-01-02 03:53:43 +00:00
activity,
imageContainerCard ?: image,
"${activity.getString(R.string.transition_album_art)}_${song.albumId}"
2019-12-01 11:28:57 +00:00
)
2020-01-02 03:53:43 +00:00
NavigationUtil.goToAlbumOptions(activity, song.albumId, activityOptions)
2019-12-01 11:28:57 +00:00
return true
}
return super.onSongMenuItemClick(item)
}
}
2018-11-30 01:06:16 +00:00
2019-12-01 11:28:57 +00:00
companion object {
val TAG: String = PlaylistSongAdapter::class.java.simpleName
}
2018-11-30 01:06:16 +00:00
}