From 7f0bbaab4ee172a8ac03f180922054ea27aea421 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 7 Oct 2020 12:48:04 +0900 Subject: [PATCH] pass blurhash in parcel and fix sidebar image --- .../com/dkanada/gramophone/glide/CustomGlideRequest.java | 1 - app/src/main/java/com/dkanada/gramophone/model/Album.java | 6 ++++++ app/src/main/java/com/dkanada/gramophone/model/Artist.java | 5 +++++ app/src/main/java/com/dkanada/gramophone/model/Genre.java | 3 +++ .../main/java/com/dkanada/gramophone/model/Playlist.java | 3 +++ app/src/main/java/com/dkanada/gramophone/model/Song.java | 5 +++++ .../com/dkanada/gramophone/ui/activities/MainActivity.java | 2 +- .../ui/activities/details/AlbumDetailActivity.java | 6 +++--- .../ui/activities/details/ArtistDetailActivity.java | 6 +++--- 9 files changed, 29 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/dkanada/gramophone/glide/CustomGlideRequest.java b/app/src/main/java/com/dkanada/gramophone/glide/CustomGlideRequest.java index f6ced4f4..e16d28ff 100644 --- a/app/src/main/java/com/dkanada/gramophone/glide/CustomGlideRequest.java +++ b/app/src/main/java/com/dkanada/gramophone/glide/CustomGlideRequest.java @@ -99,7 +99,6 @@ public class CustomGlideRequest { public static RequestOptions createRequestOptions(String item, Drawable placeholder) { return new RequestOptions() - .centerCrop() .placeholder(placeholder) .error(DEFAULT_IMAGE) .diskCacheStrategy(DEFAULT_DISK_CACHE_STRATEGY) diff --git a/app/src/main/java/com/dkanada/gramophone/model/Album.java b/app/src/main/java/com/dkanada/gramophone/model/Album.java index 8f139f13..67be145e 100644 --- a/app/src/main/java/com/dkanada/gramophone/model/Album.java +++ b/app/src/main/java/com/dkanada/gramophone/model/Album.java @@ -3,6 +3,8 @@ package com.dkanada.gramophone.model; import android.os.Parcel; import android.os.Parcelable; +import androidx.annotation.NonNull; + import org.jellyfin.apiclient.model.dto.BaseItemDto; import org.jellyfin.apiclient.model.entities.ImageType; @@ -52,6 +54,7 @@ public class Album implements Parcelable { this.artistName = song.artistName; this.primary = song.primary; + this.blurHash = song.blurHash; } public Album() { @@ -72,6 +75,7 @@ public class Album implements Parcelable { return id.hashCode(); } + @NonNull @Override public String toString() { return id; @@ -92,6 +96,7 @@ public class Album implements Parcelable { dest.writeString(artistName); dest.writeString(primary); + dest.writeString(blurHash); } protected Album(Parcel in) { @@ -105,6 +110,7 @@ public class Album implements Parcelable { this.artistName = in.readString(); this.primary = in.readString(); + this.blurHash = in.readString(); } public static final Creator CREATOR = new Creator() { diff --git a/app/src/main/java/com/dkanada/gramophone/model/Artist.java b/app/src/main/java/com/dkanada/gramophone/model/Artist.java index da1a2647..1d52fef9 100644 --- a/app/src/main/java/com/dkanada/gramophone/model/Artist.java +++ b/app/src/main/java/com/dkanada/gramophone/model/Artist.java @@ -3,6 +3,8 @@ package com.dkanada.gramophone.model; import android.os.Parcel; import android.os.Parcelable; +import androidx.annotation.NonNull; + import org.jellyfin.apiclient.model.dto.BaseItemDto; import org.jellyfin.apiclient.model.dto.GenreDto; import org.jellyfin.apiclient.model.entities.ImageType; @@ -70,6 +72,7 @@ public class Artist implements Parcelable { return id.hashCode(); } + @NonNull @Override public String toString() { return id; @@ -86,6 +89,7 @@ public class Artist implements Parcelable { dest.writeString(name); dest.writeString(primary); + dest.writeString(blurHash); } protected Artist(Parcel in) { @@ -97,6 +101,7 @@ public class Artist implements Parcelable { this.name = in.readString(); this.primary = in.readString(); + this.blurHash = in.readString(); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { diff --git a/app/src/main/java/com/dkanada/gramophone/model/Genre.java b/app/src/main/java/com/dkanada/gramophone/model/Genre.java index 527905c1..161d93e3 100644 --- a/app/src/main/java/com/dkanada/gramophone/model/Genre.java +++ b/app/src/main/java/com/dkanada/gramophone/model/Genre.java @@ -3,6 +3,8 @@ package com.dkanada.gramophone.model; import android.os.Parcel; import android.os.Parcelable; +import androidx.annotation.NonNull; + import org.jellyfin.apiclient.model.dto.BaseItemDto; import org.jellyfin.apiclient.model.dto.GenreDto; @@ -37,6 +39,7 @@ public class Genre implements Parcelable { return id.hashCode(); } + @NonNull @Override public String toString() { return id; diff --git a/app/src/main/java/com/dkanada/gramophone/model/Playlist.java b/app/src/main/java/com/dkanada/gramophone/model/Playlist.java index 9bf41e2d..6f3d5bc9 100644 --- a/app/src/main/java/com/dkanada/gramophone/model/Playlist.java +++ b/app/src/main/java/com/dkanada/gramophone/model/Playlist.java @@ -3,6 +3,8 @@ package com.dkanada.gramophone.model; import android.os.Parcel; import android.os.Parcelable; +import androidx.annotation.NonNull; + import org.jellyfin.apiclient.model.dto.BaseItemDto; public class Playlist implements Parcelable { @@ -38,6 +40,7 @@ public class Playlist implements Parcelable { return id.hashCode(); } + @NonNull @Override public String toString() { return id; diff --git a/app/src/main/java/com/dkanada/gramophone/model/Song.java b/app/src/main/java/com/dkanada/gramophone/model/Song.java index 587c6cdd..3a6d6389 100644 --- a/app/src/main/java/com/dkanada/gramophone/model/Song.java +++ b/app/src/main/java/com/dkanada/gramophone/model/Song.java @@ -3,6 +3,8 @@ package com.dkanada.gramophone.model; import android.os.Parcel; import android.os.Parcelable; +import androidx.annotation.NonNull; + import org.jellyfin.apiclient.model.dto.BaseItemDto; import org.jellyfin.apiclient.model.dto.MediaSourceInfo; import org.jellyfin.apiclient.model.entities.ImageType; @@ -117,6 +119,7 @@ public class Song implements Parcelable { return id.hashCode(); } + @NonNull @Override public String toString() { return id; @@ -144,6 +147,7 @@ public class Song implements Parcelable { dest.writeString(this.primary); dest.writeString(Boolean.toString(favorite)); + dest.writeString(this.blurHash); dest.writeString(this.path); dest.writeLong(this.size); @@ -173,6 +177,7 @@ public class Song implements Parcelable { this.primary = in.readString(); this.favorite = Boolean.parseBoolean(in.readString()); + this.blurHash = in.readString(); this.path = in.readString(); this.size = in.readLong(); diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java index 50f37433..bf3f1b11 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java @@ -184,7 +184,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { CustomGlideRequest.Builder .from(this, song.primary, song.blurHash) - .build().into(navigationBinding.image); + .build().centerInside().into(navigationBinding.image); } else if (binding.navigationView.getHeaderCount() != 0) { binding.navigationView.removeHeaderView(navigationBinding.getRoot()); navigationBinding = null; diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/details/AlbumDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/details/AlbumDetailActivity.java index 1f93cb79..504a9646 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/details/AlbumDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/details/AlbumDetailActivity.java @@ -61,7 +61,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements setUpViews(); Album album = getIntent().getExtras().getParcelable(EXTRA_ALBUM); - loadAlbumCover(album.primary); + loadAlbumCover(album); setAlbum(album); ItemQuery query = new ItemQuery(); @@ -106,9 +106,9 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements setColors(DialogUtils.resolveColor(this, R.attr.defaultFooterColor)); } - private void loadAlbumCover(String primary) { + private void loadAlbumCover(Album album) { CustomGlideRequest.Builder - .from(this, primary, primary) + .from(this, album.primary, album.blurHash) .palette().build().dontAnimate() .into(new CustomPaletteTarget(binding.image) { @Override diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/details/ArtistDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/details/ArtistDetailActivity.java index 8f9368fe..39d8574f 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/details/ArtistDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/details/ArtistDetailActivity.java @@ -67,7 +67,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement setUpViews(); Artist artist = getIntent().getExtras().getParcelable(EXTRA_ARTIST); - loadArtistImage(artist.primary); + loadArtistImage(artist); setArtist(artist); ItemQuery albums = new ItemQuery(); @@ -150,9 +150,9 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement this.usePalette = usePalette; } - private void loadArtistImage(String primary) { + private void loadArtistImage(Artist artist) { CustomGlideRequest.Builder - .from(this, primary, primary) + .from(this, artist.primary, artist.blurHash) .palette().build().dontAnimate() .into(new CustomPaletteTarget(binding.image) { @Override