/* * Copyright (c) 2020 Hemanth Savarla. * * Licensed under the GNU General Public License v3 * * This is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * */ package code.name.monkey.retromusic.adapter.song import android.view.View import androidx.appcompat.app.AppCompatActivity import code.name.monkey.retromusic.R import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.interfaces.ICabHolder import code.name.monkey.retromusic.model.Song import com.google.android.material.button.MaterialButton class ShuffleButtonSongAdapter( activity: AppCompatActivity, dataSet: MutableList, itemLayoutRes: Int, ICabHolder: ICabHolder? ) : AbsOffsetSongAdapter(activity, dataSet, itemLayoutRes, ICabHolder) { override fun createViewHolder(view: View): SongAdapter.ViewHolder { return ViewHolder(view) } 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) } } inner class ViewHolder(itemView: View) : AbsOffsetSongAdapter.ViewHolder(itemView) { val playAction: MaterialButton? = itemView.findViewById(R.id.playAction) val shuffleAction: MaterialButton? = itemView.findViewById(R.id.shuffleAction) override fun onClick(v: View?) { if (itemViewType == OFFSET_ITEM) { MusicPlayerRemote.openAndShuffleQueue(dataSet, true) return } super.onClick(v) } } }