mirror of
https://github.com/clangen/musikcube.git
synced 2025-03-23 04:21:02 +00:00
Ellipsize album titles properly.
This commit is contained in:
parent
6722ebd2ed
commit
43437d446d
@ -51,7 +51,7 @@ class AlbumBrowseActivity : BaseActivity(), Filterable {
|
|||||||
setTitleFromIntent(R.string.albums_title)
|
setTitleFromIntent(R.string.albums_title)
|
||||||
enableUpNavigation()
|
enableUpNavigation()
|
||||||
|
|
||||||
adapter = AlbumBrowseAdapter(eventListener, playback)
|
adapter = AlbumBrowseAdapter(eventListener, playback, prefs)
|
||||||
|
|
||||||
val recyclerView = findViewById<FastScrollRecyclerView>(R.id.recycler_view)
|
val recyclerView = findViewById<FastScrollRecyclerView>(R.id.recycler_view)
|
||||||
setupDefaultRecyclerView(recyclerView, adapter)
|
setupDefaultRecyclerView(recyclerView, adapter)
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package io.casey.musikcube.remote.ui.albums.adapter
|
package io.casey.musikcube.remote.ui.albums.adapter
|
||||||
|
|
||||||
|
import android.content.SharedPreferences
|
||||||
import android.support.v7.widget.RecyclerView
|
import android.support.v7.widget.RecyclerView
|
||||||
|
import android.text.TextUtils
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
@ -13,12 +15,14 @@ import io.casey.musikcube.remote.injection.GlideApp
|
|||||||
import io.casey.musikcube.remote.service.websocket.model.IAlbum
|
import io.casey.musikcube.remote.service.websocket.model.IAlbum
|
||||||
import io.casey.musikcube.remote.ui.shared.extension.fallback
|
import io.casey.musikcube.remote.ui.shared.extension.fallback
|
||||||
import io.casey.musikcube.remote.ui.shared.extension.getColorCompat
|
import io.casey.musikcube.remote.ui.shared.extension.getColorCompat
|
||||||
|
import io.casey.musikcube.remote.ui.shared.extension.titleEllipsizeMode
|
||||||
import io.casey.musikcube.remote.ui.shared.mixin.PlaybackMixin
|
import io.casey.musikcube.remote.ui.shared.mixin.PlaybackMixin
|
||||||
import io.casey.musikcube.remote.ui.shared.model.albumart.Size
|
import io.casey.musikcube.remote.ui.shared.model.albumart.Size
|
||||||
import io.casey.musikcube.remote.ui.shared.model.albumart.getUrl
|
import io.casey.musikcube.remote.ui.shared.model.albumart.getUrl
|
||||||
|
|
||||||
class AlbumBrowseAdapter(private val listener: EventListener,
|
class AlbumBrowseAdapter(private val listener: EventListener,
|
||||||
private val playback: PlaybackMixin)
|
private val playback: PlaybackMixin,
|
||||||
|
val prefs: SharedPreferences)
|
||||||
: RecyclerView.Adapter<AlbumBrowseAdapter.ViewHolder>()
|
: RecyclerView.Adapter<AlbumBrowseAdapter.ViewHolder>()
|
||||||
{
|
{
|
||||||
interface EventListener {
|
interface EventListener {
|
||||||
@ -27,6 +31,7 @@ class AlbumBrowseAdapter(private val listener: EventListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var model: List<IAlbum> = listOf()
|
private var model: List<IAlbum> = listOf()
|
||||||
|
private val ellipsizeMode = titleEllipsizeMode(prefs)
|
||||||
|
|
||||||
internal fun setModel(model: List<IAlbum>) {
|
internal fun setModel(model: List<IAlbum>) {
|
||||||
this.model = model
|
this.model = model
|
||||||
@ -37,9 +42,9 @@ class AlbumBrowseAdapter(private val listener: EventListener,
|
|||||||
val inflater = LayoutInflater.from(parent.context)
|
val inflater = LayoutInflater.from(parent.context)
|
||||||
val view = inflater.inflate(R.layout.simple_list_item, parent, false)
|
val view = inflater.inflate(R.layout.simple_list_item, parent, false)
|
||||||
val action = view.findViewById<View>(R.id.action)
|
val action = view.findViewById<View>(R.id.action)
|
||||||
view.setOnClickListener({ v -> listener.onItemClicked(v.tag as IAlbum) })
|
view.setOnClickListener { v -> listener.onItemClicked(v.tag as IAlbum) }
|
||||||
action.setOnClickListener({ v -> listener.onActionClicked(v, v.tag as IAlbum) })
|
action.setOnClickListener { v -> listener.onActionClicked(v, v.tag as IAlbum) }
|
||||||
return ViewHolder(view, playback)
|
return ViewHolder(view, playback, ellipsizeMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
@ -49,12 +54,20 @@ class AlbumBrowseAdapter(private val listener: EventListener,
|
|||||||
override fun getItemCount(): Int = model.size
|
override fun getItemCount(): Int = model.size
|
||||||
|
|
||||||
class ViewHolder internal constructor(
|
class ViewHolder internal constructor(
|
||||||
itemView: View, val playback: PlaybackMixin) : RecyclerView.ViewHolder(itemView) {
|
itemView: View,
|
||||||
|
val playback: PlaybackMixin,
|
||||||
|
ellipsizeMode: TextUtils.TruncateAt)
|
||||||
|
: RecyclerView.ViewHolder(itemView)
|
||||||
|
{
|
||||||
private val title = itemView.findViewById<TextView>(R.id.title)
|
private val title = itemView.findViewById<TextView>(R.id.title)
|
||||||
private val subtitle = itemView.findViewById<TextView>(R.id.subtitle)
|
private val subtitle = itemView.findViewById<TextView>(R.id.subtitle)
|
||||||
private val artwork = itemView.findViewById<ImageView>(R.id.artwork)
|
private val artwork = itemView.findViewById<ImageView>(R.id.artwork)
|
||||||
private val action = itemView.findViewById<View>(R.id.action)
|
private val action = itemView.findViewById<View>(R.id.action)
|
||||||
|
|
||||||
|
init {
|
||||||
|
title.ellipsize = ellipsizeMode
|
||||||
|
}
|
||||||
|
|
||||||
internal fun bind(album: IAlbum) {
|
internal fun bind(album: IAlbum) {
|
||||||
val playing = playback.service.playingTrack
|
val playing = playback.service.playingTrack
|
||||||
val playingId = playing.albumId
|
val playingId = playing.albumId
|
||||||
|
Loading…
x
Reference in New Issue
Block a user