69 lines
2.2 KiB
Kotlin
Executable File
69 lines
2.2 KiB
Kotlin
Executable File
package code.name.monkey.retromusic.ui.adapter.song
|
|
|
|
import android.view.LayoutInflater
|
|
import android.view.ViewGroup
|
|
import androidx.annotation.LayoutRes
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import code.name.monkey.appthemehelper.ThemeStore
|
|
import code.name.monkey.appthemehelper.util.TintHelper
|
|
import code.name.monkey.retromusic.model.Song
|
|
import code.name.monkey.retromusic.util.MusicUtil
|
|
import java.util.*
|
|
|
|
|
|
class SimpleSongAdapter(context: AppCompatActivity,
|
|
songs: ArrayList<Song>,
|
|
@LayoutRes i: Int,
|
|
val useNumbers: Boolean) : SongAdapter(context, songs, i, false, null) {
|
|
|
|
private var textColor: Int = 0
|
|
|
|
init {
|
|
textColor = ThemeStore.textColorPrimary(context)
|
|
}
|
|
|
|
override fun swapDataSet(dataSet: ArrayList<Song>) {
|
|
this.dataSet.clear()
|
|
this.dataSet = dataSet
|
|
notifyDataSetChanged()
|
|
}
|
|
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
|
return ViewHolder(LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false))
|
|
}
|
|
|
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
|
super.onBindViewHolder(holder, position)
|
|
val fixedTrackNumber = MusicUtil.getFixedTrackNumber(dataSet[position].trackNumber)
|
|
|
|
if (holder.imageText != null) {
|
|
if (useNumbers) {
|
|
holder.imageText!!.text = (position + 1).toString()
|
|
} else {
|
|
holder.imageText!!.text = if (fixedTrackNumber > 0) fixedTrackNumber.toString() else "-"
|
|
}
|
|
holder.imageText!!.setTextColor(textColor)
|
|
}
|
|
|
|
if (holder.time != null) {
|
|
holder.time!!.text = MusicUtil.getReadableDurationString(dataSet[position].duration)
|
|
holder.time!!.setTextColor(textColor)
|
|
}
|
|
if (holder.title != null) {
|
|
holder.title!!.setTextColor(textColor)
|
|
}
|
|
if (holder.menu != null) {
|
|
TintHelper.setTintAuto(holder.menu!!, textColor, false)
|
|
}
|
|
}
|
|
|
|
override fun getItemCount(): Int {
|
|
return dataSet.size
|
|
}
|
|
|
|
fun setTextColor(textColor: Int) {
|
|
this.textColor = textColor
|
|
notifyDataSetChanged()
|
|
}
|
|
}
|