1
0
mirror of https://github.com/ultrasonic/ultrasonic synced 2025-02-17 04:00:39 +01:00

Fixed Artist row layout

Changed Unknown image
This commit is contained in:
Nite 2020-11-24 18:19:58 +01:00
parent b3db46b1ab
commit a3c4815a07
No known key found for this signature in database
GPG Key ID: 1D1AD59B1C6386C1
5 changed files with 60 additions and 49 deletions

View File

@ -13,23 +13,14 @@ public interface ImageLoader {
void stopImageLoader(); void stopImageLoader();
void loadAvatarImage( void loadAvatarImage(View view, String username, boolean large, int size, boolean crossFade,
View view, boolean highQuality);
String username,
boolean large,
int size,
boolean crossFade,
boolean highQuality
);
void loadImage( void loadImage(View view, MusicDirectory.Entry entry, boolean large, int size,
View view, boolean crossFade, boolean highQuality);
MusicDirectory.Entry entry,
boolean large, void loadImage(View view, MusicDirectory.Entry entry, boolean large, int size,
int size, boolean crossFade, boolean highQuality, int defaultResourceId);
boolean crossFade,
boolean highQuality
);
void cancel(String coverArt); void cancel(String coverArt);

View File

@ -167,25 +167,24 @@ public class LegacyImageLoader implements Runnable, ImageLoader {
} }
@Override @Override
public void loadImage( public void loadImage(View view, MusicDirectory.Entry entry, boolean large, int size,
View view, boolean crossFade, boolean highQuality) {
MusicDirectory.Entry entry, loadImage(view, entry, large, size, crossFade, highQuality, -1);
boolean large, }
int size,
boolean crossFade, public void loadImage(View view, MusicDirectory.Entry entry, boolean large, int size,
boolean highQuality boolean crossFade, boolean highQuality, int defaultResourceId) {
) {
view.invalidate(); view.invalidate();
if (entry == null) { if (entry == null) {
setUnknownImage(view, large); setUnknownImage(view, large, defaultResourceId);
return; return;
} }
String coverArt = entry.getCoverArt(); String coverArt = entry.getCoverArt();
if (TextUtils.isEmpty(coverArt)) { if (TextUtils.isEmpty(coverArt)) {
setUnknownImage(view, large); setUnknownImage(view, large, defaultResourceId);
return; return;
} }
@ -200,7 +199,7 @@ public class LegacyImageLoader implements Runnable, ImageLoader {
return; return;
} }
setUnknownImage(view, large); setUnknownImage(view, large, defaultResourceId);
queue.offer(new Task(view, entry, size, large, crossFade, highQuality)); queue.offer(new Task(view, entry, size, large, crossFade, highQuality));
} }
@ -342,13 +341,18 @@ public class LegacyImageLoader implements Runnable, ImageLoader {
} }
private void setUnknownImage(View view, boolean large) { private void setUnknownImage(View view, boolean large) {
setUnknownImage(view, large, -1);
}
private void setUnknownImage(View view, boolean large, int resId) {
if (resId == -1) resId = R.drawable.unknown_album;
if (large) { if (large) {
setImageBitmap(view, null, largeUnknownImage, false); setImageBitmap(view, null, largeUnknownImage, false);
} else { } else {
if (view instanceof TextView) { if (view instanceof TextView) {
((TextView) view).setCompoundDrawablesWithIntrinsicBounds(R.drawable.unknown_album, 0, 0, 0); ((TextView) view).setCompoundDrawablesWithIntrinsicBounds(resId, 0, 0, 0);
} else if (view instanceof ImageView) { } else if (view instanceof ImageView) {
((ImageView) view).setImageResource(R.drawable.unknown_album); ((ImageView) view).setImageResource(resId);
} }
} }
} }

View File

@ -121,7 +121,7 @@ class ArtistRowAdapter(
imageLoader.loadImage( imageLoader.loadImage(
holder.coverArt, holder.coverArt,
MusicDirectory.Entry().apply { coverArt = holder.coverArtId }, MusicDirectory.Entry().apply { coverArt = holder.coverArtId },
false, 0, false, true false, 0, false, true, R.drawable.ic_contact_picture
) )
} else if (holder is HeaderViewHolder) { } else if (holder is HeaderViewHolder) {
holder.folderName.text = folderName holder.folderName.text = folderName

View File

@ -26,18 +26,32 @@ class SubsonicImageLoaderProxy(
size: Int, size: Int,
crossFade: Boolean, crossFade: Boolean,
highQuality: Boolean highQuality: Boolean
) {
return loadImage(view, entry, large, size, crossFade, highQuality, -1)
}
override fun loadImage(
view: View?,
entry: MusicDirectory.Entry?,
large: Boolean,
size: Int,
crossFade: Boolean,
highQuality: Boolean,
defaultResourceId: Int
) { ) {
val id = entry?.coverArt val id = entry?.coverArt
val unknownImageId =
if (defaultResourceId == -1) R.drawable.unknown_album
else defaultResourceId
if (id != null && if (id != null &&
view != null && view != null &&
view is ImageView view is ImageView
) { ) {
val request = ImageRequest.CoverArt( val request = ImageRequest.CoverArt(
id, id, view,
view, placeHolderDrawableRes = unknownImageId,
placeHolderDrawableRes = R.drawable.unknown_album, errorDrawableRes = unknownImageId
errorDrawableRes = R.drawable.unknown_album
) )
subsonicImageLoader.load(request) subsonicImageLoader.load(request)
} }
@ -56,8 +70,7 @@ class SubsonicImageLoaderProxy(
view is ImageView view is ImageView
) { ) {
val request = ImageRequest.Avatar( val request = ImageRequest.Avatar(
username, username, view,
view,
placeHolderDrawableRes = R.drawable.ic_contact_picture, placeHolderDrawableRes = R.drawable.ic_contact_picture,
errorDrawableRes = R.drawable.ic_contact_picture errorDrawableRes = R.drawable.ic_contact_picture
) )

View File

@ -13,30 +13,31 @@
a:layout_width="wrap_content" a:layout_width="wrap_content"
a:layout_height="wrap_content" a:layout_height="wrap_content"
a:gravity="center_horizontal|center_vertical" a:gravity="center_horizontal|center_vertical"
a:minWidth="72dip" a:minWidth="56dip"
a:minHeight="56dip" a:minHeight="56dip"
a:paddingStart="16dip" a:paddingStart="8dip"
a:paddingLeft="16dip" a:paddingLeft="8dip"
a:paddingEnd="16dip" a:paddingEnd="8dip"
a:paddingRight="16dip" a:paddingRight="8dip"
a:text="A" a:text="A"
a:textAppearance="?android:attr/textAppearanceLarge" a:textAppearance="?android:attr/textAppearanceLarge"
a:textColor="@color/cyan" /> a:textColor="@color/cyan" />
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
a:id="@+id/artist_coverart" a:id="@+id/artist_coverart"
a:src="@drawable/unknown_album"
app:shapeAppearanceOverlay="@style/roundedImageView"
a:layout_width="40dp" a:layout_width="40dp"
a:layout_height="40dp" a:layout_height="40dp"
a:layout_toEndOf="@+id/row_section"
a:layout_toRightOf="@+id/row_section"
a:layout_gravity="center_horizontal|center_vertical" a:layout_gravity="center_horizontal|center_vertical"
a:layout_marginTop="8dp" a:layout_marginTop="8dp"
a:layout_marginLeft="8dp" a:layout_marginStart="2dp"
a:layout_marginRight="16dp" a:layout_marginLeft="2dp"
a:layout_marginStart="8dp" a:layout_marginEnd="10dp"
a:layout_marginEnd="16dp" /> a:layout_marginRight="10dp"
a:layout_toEndOf="@+id/row_section"
a:layout_toRightOf="@+id/row_section"
a:scaleType="fitCenter"
a:src="@drawable/ic_contact_picture"
app:shapeAppearanceOverlay="@style/roundedImageView" />
<TextView <TextView
a:id="@+id/row_artist_name" a:id="@+id/row_artist_name"
@ -49,5 +50,7 @@
a:minHeight="56dip" a:minHeight="56dip"
a:paddingLeft="3dip" a:paddingLeft="3dip"
a:paddingRight="3dip" a:paddingRight="3dip"
a:layout_marginRight="12dp"
a:layout_marginEnd="12dp"
a:textAppearance="?android:attr/textAppearanceMedium" /> a:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout> </RelativeLayout>