@ -3,9 +3,7 @@ package com.github.apognu.otter.adapters
@@ -3,9 +3,7 @@ package com.github.apognu.otter.adapters
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.graphics.Typeface
import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.view.*
import androidx.appcompat.widget.PopupMenu
import androidx.recyclerview.widget.ItemTouchHelper
@ -18,11 +16,15 @@ import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
@@ -18,11 +16,15 @@ import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
import kotlinx.android.synthetic.main.row_track.view.*
import java.util.*
class PlaylistTracksAdapter ( private val context : Context ? , private val favoriteListener : OnFavoriteListener ? = null , val fromQueue : Boolean = false ) : OtterAdapter < PlaylistTrack , PlaylistTracksAdapter . ViewHolder > ( ) {
class PlaylistTracksAdapter ( private val context : Context ? , private val favoriteListener : OnFavoriteListener ? = null , private val playlistListener : OnPlaylistListener ? = null , val fromQueue : Boolean = false ) : OtterAdapter < PlaylistTrack , PlaylistTracksAdapter . ViewHolder > ( ) {
interface OnFavoriteListener {
fun onToggleFavorite ( id : Int , state : Boolean )
}
interface OnPlaylistListener {
fun onRemoveTrackFromPlaylist ( track : Track , index : Int )
}
private lateinit var touchHelper : ItemTouchHelper
var currentTrack : Track ? = null
@ -96,11 +98,14 @@ class PlaylistTracksAdapter(private val context: Context?, private val favoriteL
@@ -96,11 +98,14 @@ class PlaylistTracksAdapter(private val context: Context?, private val favoriteL
PopupMenu ( context , holder . actions , Gravity . START , R . attr . actionOverflowMenuStyle , 0 ) . apply {
inflate ( if ( fromQueue ) R . menu . row _queue else R . menu . row _track )
menu . findItem ( R . id . track _remove _from _playlist ) . isVisible = true
setOnMenuItemClickListener {
when ( it . itemId ) {
R . id . track _add _to _queue -> CommandBus . send ( Command . AddToQueue ( listOf ( track . track ) ) )
R . id . track _play _next -> CommandBus . send ( Command . PlayNext ( track . track ) )
R . id . queue _remove -> CommandBus . send ( Command . RemoveFromQueue ( track . track ) )
R . id . track _remove _from _playlist -> playlistListener ?. onRemoveTrackFromPlaylist ( track . track , position )
}
true