Fix album style & search

This commit is contained in:
h4h13 2020-02-06 12:22:34 +05:30
parent eee663f717
commit 393bd59a1c
11 changed files with 42 additions and 31 deletions

View file

@ -52,7 +52,6 @@ class HomeAdapter(
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
println("ViewType ${getItemViewType(position)}")
when (getItemViewType(position)) {
RECENT_ALBUMS -> {
val viewHolder = holder as AlbumViewHolder

View file

@ -9,7 +9,9 @@ import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
import code.name.monkey.retromusic.glide.AlbumGlideRequest
import code.name.monkey.retromusic.glide.ArtistGlideRequest
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.menu.SongMenuHelper
import code.name.monkey.retromusic.loaders.PlaylistSongsLoader
@ -60,8 +62,17 @@ class SearchAdapter(
val album = dataSet?.get(position) as Album
holder.title?.text = album.title
holder.text?.text = album.artist
/*SongGlideRequest.Builder.from(Glide.with(activity), album.safeGetFirstSong())
.checkIgnoreMediaStore(activity).build().into(holder.image)*/
holder.image?.let {
AlbumGlideRequest.Builder(Glide.with(activity), album.id)
.generatePalette(activity)
.build()
.dontAnimate()
.dontTransform()
.into(object : RetroMusicColoredTarget(it) {
override fun onColorReady(color: Int) {
}
})
}
}
ARTIST -> {
val artist = dataSet?.get(position) as Artist
@ -133,21 +144,24 @@ class SearchAdapter(
val item = dataSet!![adapterPosition]
when (itemViewType) {
ALBUM -> {
item as Album
val options = ActivityOptions.makeSceneTransitionAnimation(
activity,
UtilPair.create(image, activity.getString(R.string.transition_album_art))
)
NavigationUtil.goToAlbumOptions(activity, (item as Album).id, options)
NavigationUtil.goToAlbumOptions(activity, item.id, options)
}
ARTIST -> {
item as Artist
val options = ActivityOptions.makeSceneTransitionAnimation(
activity,
UtilPair.create(image, activity.getString(R.string.transition_artist_image))
)
NavigationUtil.goToArtistOptions(activity, (item as Artist).id, options)
NavigationUtil.goToArtistOptions(activity, item.id, options)
}
GENRE -> {
NavigationUtil.goToGenre(activity, item as Genre)
item as Genre
NavigationUtil.goToGenre(activity, item)
}
PLAYLIST -> {
NavigationUtil.goToPlaylistNew(activity, item as Playlist)

View file

@ -28,7 +28,7 @@ import me.zhanghai.android.fastscroll.PopupTextProvider
open class AlbumAdapter(
protected val activity: AppCompatActivity,
dataSet: List<Album>,
protected var itemLayoutRes: Int,
var itemLayoutRes: Int,
cabHolder: CabHolder?
) : AbsMultiSelectAdapter<AlbumAdapter.ViewHolder, Album>(
activity,

View file

@ -44,19 +44,6 @@ class HorizontalAlbumAdapter(
//setColors(color, holder)
}
})
/*SongGlideRequest.Builder.from(Glide.with(activity), album.safeGetFirstSong())
.checkIgnoreMediaStore(activity).generatePalette(activity).build()
.into(object : RetroMusicColoredTarget(holder.image!!) {
override fun onLoadCleared(placeholder: Drawable?) {
super.onLoadCleared(placeholder)
setColors(albumArtistFooterColor, holder)
}
override fun onColorReady(color: Int) {
if (usePalette) setColors(color, holder)
else setColors(albumArtistFooterColor, holder)
}
})*/
}
override fun getAlbumText(album: Album): String? {

View file

@ -30,7 +30,6 @@ class ArtistAdapter(
val activity: AppCompatActivity,
var dataSet: ArrayList<Artist>,
var itemLayoutRes: Int,
cabHolder: CabHolder?
) : AbsMultiSelectAdapter<ArtistAdapter.ViewHolder, Artist>(
activity, cabHolder, R.menu.menu_media_selection

View file

@ -50,10 +50,11 @@ class AlbumGlideRequest {
}
class Builder(val requestManager: RequestManager, val albumId: Long) {
companion object {
fun from(requestManager: RequestManager, albumId: Long): Builder {
return Builder(requestManager, albumId)
}
}
fun generatePalette(context: Context): PaletteBuilder {
return PaletteBuilder(this, context)

View file

@ -18,7 +18,9 @@ import android.graphics.Bitmap;
import androidx.palette.graphics.Palette;
public class BitmapPaletteWrapper {
private final Bitmap mBitmap;
private final Palette mPalette;
public BitmapPaletteWrapper(Bitmap bitmap, Palette palette) {

View file

@ -135,6 +135,11 @@ object AlbumLoader {
albums.add(album)
return album
}
fun getAlbums(context: Context, paramString: String): List<Album> {
return makeAlbumCursor(context, "album LIKE ?", arrayOf("$paramString%"))
.mapList(true) { Album.fromCursor(this) }
}
}
/*

View file

@ -44,6 +44,13 @@ object ArtistLoader {
} ?: Artist()
}
fun getArtists(context: Context, paramString: String): List<Artist> {
return makeArtistCursor(context, "artist LIKE ?", arrayOf("$paramString%"))
.mapList(true) {
Artist.fromCursor(this)
}
}
private fun getArtists(cursor: Cursor?): ArrayList<Artist> {
val artists = ArrayList<Artist>()
if (cursor != null && cursor.moveToFirst()) {

View file

@ -16,8 +16,6 @@ package code.name.monkey.retromusic.loaders
import android.content.Context
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.model.Album
import code.name.monkey.retromusic.model.Artist
import code.name.monkey.retromusic.model.Genre
import java.util.Locale
@ -31,13 +29,13 @@ object SearchLoader {
results.addAll(songs)
}
val artists = emptyArray<Artist>()//ArtistLoader.getArtists(context, searchString)
val artists = ArtistLoader.getArtists(context, searchString)
if (artists.isNotEmpty()) {
results.add(context.resources.getString(R.string.artists))
results.addAll(artists)
}
val albums = emptyArray<Album>()//AlbumLoader.getAlbums(context, searchString)
val albums = AlbumLoader.getAlbums(context, searchString)
if (albums.isNotEmpty()) {
results.add(context.resources.getString(R.string.albums))
results.addAll(albums)

View file

@ -47,7 +47,7 @@
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:scaleType="centerCrop"
tools:srcCompat="@tools:sample/backgrounds/scenic[16]" />
tools:srcCompat="@tools:sample/avatars" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/imageText"
@ -58,8 +58,7 @@
android:minHeight="40dp"
android:textAppearance="@style/TextViewSubtitle2"
android:visibility="gone"
tools:text="100"
tools:visibility="visible" />
tools:text="100" />
</com.google.android.material.card.MaterialCardView>
</FrameLayout>