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

View file

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

View file

@ -44,19 +44,6 @@ class HorizontalAlbumAdapter(
//setColors(color, holder) //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? { override fun getAlbumText(album: Album): String? {

View file

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

View file

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

View file

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

View file

@ -135,6 +135,11 @@ object AlbumLoader {
albums.add(album) albums.add(album)
return 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() } ?: 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> { private fun getArtists(cursor: Cursor?): ArrayList<Artist> {
val artists = ArrayList<Artist>() val artists = ArrayList<Artist>()
if (cursor != null && cursor.moveToFirst()) { if (cursor != null && cursor.moveToFirst()) {

View file

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

View file

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