show the fetched artists on the list

This commit is contained in:
tibbi 2020-09-30 19:43:06 +02:00
parent c53418719a
commit 75df0fc4b9
4 changed files with 99 additions and 1 deletions

View file

@ -0,0 +1,60 @@
package com.simplemobiletools.musicplayer.adapters
import android.view.Menu
import android.view.View
import android.view.ViewGroup
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.musicplayer.R
import com.simplemobiletools.musicplayer.activities.SimpleActivity
import com.simplemobiletools.musicplayer.models.Artist
import kotlinx.android.synthetic.main.item_artist.view.*
import java.util.*
class ArtistsAdapter(activity: SimpleActivity, val artists: ArrayList<Artist>, recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) :
MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
init {
setupDragListener(true)
}
override fun getActionMenuId() = R.menu.cab_artists
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.item_artist, parent)
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val artist = artists.getOrNull(position) ?: return
holder.bindView(artist, true, true) { itemView, layoutPosition ->
setupView(itemView, artist)
}
bindViewHolder(holder)
}
override fun getItemCount() = artists.size
override fun prepareActionMode(menu: Menu) {}
override fun actionItemPressed(id: Int) {}
override fun getSelectableItemCount() = artists.size
override fun getIsItemSelectable(position: Int) = true
override fun getItemSelectionKey(position: Int) = artists.getOrNull(position)?.id
override fun getItemKeyPosition(key: Int) = artists.indexOfFirst { it.id == key }
override fun onActionModeCreated() {}
override fun onActionModeDestroyed() {}
private fun getItemWithKey(key: Int): Artist? = artists.firstOrNull { it.id == key }
private fun setupView(view: View, artist: Artist) {
view.apply {
artist_frame?.isSelected = selectedKeys.contains(artist.id)
artist_title.text = artist.title
artist_title.setTextColor(textColor)
}
}
}

View file

@ -9,12 +9,18 @@ import com.simplemobiletools.commons.extensions.getStringValue
import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.commons.extensions.showErrorToast
import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.musicplayer.activities.SimpleActivity import com.simplemobiletools.musicplayer.activities.SimpleActivity
import com.simplemobiletools.musicplayer.adapters.ArtistsAdapter
import com.simplemobiletools.musicplayer.models.Artist import com.simplemobiletools.musicplayer.models.Artist
import kotlinx.android.synthetic.main.fragment_artists.view.*
class ArtistsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) { class ArtistsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) {
override fun setupFragment(activity: SimpleActivity) { override fun setupFragment(activity: SimpleActivity) {
getArtists(activity) { getArtists(activity) { artists ->
ArtistsAdapter(activity, artists, artists_list) {
}.apply {
artists_list.adapter = this
}
} }
} }

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/artist_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:foreground="@drawable/selector">
<RelativeLayout
android:id="@+id/artist_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/activity_margin">
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/artist_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
android:text="@string/text_color"/>
</RelativeLayout>
</FrameLayout>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<menu>
</menu>