Improve image placeholders

- Show placeholders until the image is loaded because timeout can be very long and missing profile pictures and video thumbnails make app inconvenient to use

- Adapt profile picture and video thumbnail placeholders to light theme

- Replace profile picture and video thumbnail placeholders with vector graphics
This commit is contained in:
krlvm 2022-06-21 20:22:39 +03:00 committed by Stypox
parent 067239b4f7
commit 175459cd4f
19 changed files with 125 additions and 81 deletions

View file

@ -104,6 +104,10 @@ public final class PicassoHelper {
return loadImageDefault(url, R.drawable.dummy_thumbnail);
}
public static RequestCreator loadDetailsThumbnail(final String url) {
return loadImageDefault(url, R.drawable.dummy_thumbnail, false);
}
public static RequestCreator loadBanner(final String url) {
return loadImageDefault(url, R.drawable.channel_banner);
}
@ -189,15 +193,24 @@ public final class PicassoHelper {
private static RequestCreator loadImageDefault(final String url, final int placeholderResId) {
return loadImageDefault(url, placeholderResId, true);
}
private static RequestCreator loadImageDefault(final String url, final int placeholderResId,
final boolean showPlaceholderWhileLoading) {
if (!shouldLoadImages || isBlank(url)) {
return picassoInstance
.load((String) null)
.placeholder(placeholderResId) // show placeholder when no image should load
.error(placeholderResId);
} else {
return picassoInstance
final RequestCreator requestCreator = picassoInstance
.load(url)
.error(placeholderResId); // don't show placeholder while loading, only on error
.error(placeholderResId);
if (showPlaceholderWhileLoading) {
requestCreator.placeholder(placeholderResId);
}
return requestCreator;
}
}
}