Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve image placeholders #8530

Merged
merged 9 commits into from
Jul 14, 2022
Original file line number Diff line number Diff line change
Expand Up @@ -714,7 +714,7 @@ private View.OnTouchListener getOnControlsTouchListener() {
}

private void initThumbnailViews(@NonNull final StreamInfo info) {
PicassoHelper.loadThumbnail(info.getThumbnailUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
PicassoHelper.loadDetailsThumbnail(info.getThumbnailUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailThumbnailImageView, new Callback() {
@Override
public void onSuccess() {
Expand Down Expand Up @@ -1551,7 +1551,8 @@ public void handleResult(@NonNull final StreamInfo info) {
binding.detailUploaderThumbnailView.setVisibility(View.GONE);
}

final Drawable buddyDrawable = AppCompatResources.getDrawable(activity, R.drawable.buddy);
final Drawable buddyDrawable
= AppCompatResources.getDrawable(activity, R.drawable.placeholder_person);
binding.detailSubChannelThumbnailView.setImageDrawable(buddyDrawable);
binding.detailUploaderThumbnailView.setImageDrawable(buddyDrawable);

Expand Down Expand Up @@ -2360,8 +2361,8 @@ private void updateOverlayData(@Nullable final String overlayTitle,
@Nullable final String thumbnailUrl) {
binding.overlayTitleTextView.setText(isEmpty(overlayTitle) ? "" : overlayTitle);
binding.overlayChannelTextView.setText(isEmpty(uploader) ? "" : uploader);
binding.overlayThumbnail.setImageResource(R.drawable.dummy_thumbnail_dark);
PicassoHelper.loadThumbnail(thumbnailUrl).tag(PICASSO_VIDEO_DETAILS_TAG)
binding.overlayThumbnail.setImageDrawable(null);
PicassoHelper.loadDetailsThumbnail(thumbnailUrl).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.overlayThumbnail);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,8 @@ private void onPlaylistSelected(@NonNull final LocalPlaylistManager manager,
final Toast successToast = Toast.makeText(getContext(),
R.string.playlist_add_stream_success, Toast.LENGTH_SHORT);

if (playlist.thumbnailUrl.equals("drawable://" + R.drawable.dummy_thumbnail_playlist)) {
if (playlist.thumbnailUrl
.equals("drawable://" + R.drawable.placeholder_thumbnail_playlist)) {
playlistDisposables.add(manager
.changePlaylistThumbnail(playlist.uid, streams.get(0).getThumbnailUrl())
.observeOn(AndroidSchedulers.mainThread())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ private void updateThumbnailUrl() {
newThumbnailUrl = ((PlaylistStreamEntry) itemListAdapter.getItemsList().get(0))
.getStreamEntity().getThumbnailUrl();
} else {
newThumbnailUrl = "drawable://" + R.drawable.dummy_thumbnail_playlist;
newThumbnailUrl = "drawable://" + R.drawable.placeholder_thumbnail_playlist;
}

changeThumbnailUrl(newThumbnailUrl);
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/schabi/newpipe/player/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -3108,7 +3108,7 @@ public String getUploaderName() {
public Bitmap getThumbnail() {
if (currentThumbnail == null) {
currentThumbnail = BitmapFactory.decodeResource(
context.getResources(), R.drawable.dummy_thumbnail);
context.getResources(), R.drawable.placeholder_thumbnail_video);
}
return currentThumbnail;
}
Expand Down
25 changes: 19 additions & 6 deletions app/src/main/java/org/schabi/newpipe/util/PicassoHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,19 +97,23 @@ public static boolean getShouldLoadImages() {


public static RequestCreator loadAvatar(final String url) {
return loadImageDefault(url, R.drawable.buddy);
return loadImageDefault(url, R.drawable.placeholder_person);
}

public static RequestCreator loadThumbnail(final String url) {
return loadImageDefault(url, R.drawable.dummy_thumbnail);
return loadImageDefault(url, R.drawable.placeholder_thumbnail_video);
}

public static RequestCreator loadDetailsThumbnail(final String url) {
return loadImageDefault(url, R.drawable.placeholder_thumbnail_video, false);
}

public static RequestCreator loadBanner(final String url) {
return loadImageDefault(url, R.drawable.channel_banner);
return loadImageDefault(url, R.drawable.placeholder_channel_banner);
}

public static RequestCreator loadPlaylistThumbnail(final String url) {
return loadImageDefault(url, R.drawable.dummy_thumbnail_playlist);
return loadImageDefault(url, R.drawable.placeholder_thumbnail_playlist);
}

public static RequestCreator loadSeekbarThumbnailPreview(final String url) {
Expand Down Expand Up @@ -189,15 +193,24 @@ public void onPrepareLoad(final Drawable placeHolderDrawable) {


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;
}
}
}
Binary file removed app/src/main/res/drawable-nodpi/buddy.png
Binary file not shown.
Binary file not shown.
Binary file removed app/src/main/res/drawable-nodpi/dummy_thumbnail.png
Binary file not shown.
Binary file not shown.
Binary file not shown.
20 changes: 20 additions & 0 deletions app/src/main/res/drawable/placeholder_person.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">

<path
android:pathData="M0,0 L24,0 L24,24 L0,24 z"
android:fillColor="@color/placeholder_background" />

<group android:scaleX="0.8333333"
android:scaleY="0.8333333"
android:translateX="2"
android:translateY="2">
<path
android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"
android:fillColor="@color/placeholder_foreground" />
</group>

</vector>
15 changes: 15 additions & 0 deletions app/src/main/res/drawable/placeholder_thumbnail_playlist.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="9dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M0,0h24v24h-24z"
android:fillColor="@color/placeholder_background" />
<path
android:pathData="M13,12L8,17.5L8,6.5"
android:fillColor="@color/placeholder_foreground" />
<path
android:pathData="M16,12L11,17.5L11,6.5"
android:fillColor="@color/placeholder_foreground" />
</vector>
12 changes: 12 additions & 0 deletions app/src/main/res/drawable/placeholder_thumbnail_video.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="9dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M0,0h24v24h-24z"
android:fillColor="@color/placeholder_background" />
<path
android:pathData="M15,12L9,17.5L9,6.5"
android:fillColor="@color/placeholder_foreground" />
</vector>
8 changes: 4 additions & 4 deletions app/src/main/res/layout-large-land/fragment_video_detail.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
android:scaleType="fitCenter"
tools:ignore="RtlHardcoded"
tools:layout_height="200dp"
tools:src="@drawable/dummy_thumbnail" />
tools:src="@drawable/placeholder_thumbnail_video" />

<ImageView
android:id="@+id/detail_thumbnail_play_button"
Expand Down Expand Up @@ -271,7 +271,7 @@
android:layout_width="@dimen/video_item_detail_uploader_image_size"
android:layout_height="@dimen/video_item_detail_uploader_image_size"
android:contentDescription="@string/detail_uploader_thumbnail_view_description"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView" />

<com.google.android.material.imageview.ShapeableImageView
Expand All @@ -280,7 +280,7 @@
android:layout_height="@dimen/video_item_detail_sub_channel_image_size"
android:layout_gravity="bottom|right"
android:contentDescription="@string/detail_sub_channel_thumbnail_view_description"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
android:visibility="gone"
app:shapeAppearance="@style/CircularImageView"
tools:visibility="visible" />
Expand Down Expand Up @@ -645,7 +645,7 @@
android:paddingLeft="@dimen/video_item_search_padding"
android:paddingRight="@dimen/video_item_search_padding"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail" />
android:src="@drawable/placeholder_thumbnail_video" />

<LinearLayout
android:id="@+id/overlay_metadata_layout"
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/res/layout/channel_header.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:background="@android:color/black"
android:fitsSystemWindows="true"
android:scaleType="fitCenter"
android:src="@drawable/channel_banner"
android:src="@drawable/placeholder_channel_banner"
tools:ignore="ContentDescription" />

<FrameLayout
Expand All @@ -33,7 +33,7 @@
android:layout_width="@dimen/channel_avatar_size"
android:layout_height="@dimen/channel_avatar_size"
android:padding="1dp"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView"
app:strokeColor="#ffffff"
app:strokeWidth="2dp" />
Expand All @@ -44,7 +44,7 @@
android:layout_height="@dimen/sub_channel_avatar_size"
android:layout_gravity="bottom|right"
android:padding="1dp"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
android:visibility="gone"
app:shapeAppearance="@style/CircularImageView"
app:strokeColor="#ffffff"
Expand Down
9 changes: 4 additions & 5 deletions app/src/main/res/layout/fragment_video_detail.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
android:scaleType="fitCenter"
tools:ignore="RtlHardcoded"
tools:layout_height="200dp"
tools:src="@drawable/dummy_thumbnail" />
tools:src="@drawable/placeholder_thumbnail_video" />

<ImageView
android:id="@+id/detail_thumbnail_play_button"
Expand Down Expand Up @@ -258,7 +258,7 @@
android:layout_width="@dimen/video_item_detail_uploader_image_size"
android:layout_height="@dimen/video_item_detail_uploader_image_size"
android:contentDescription="@string/detail_uploader_thumbnail_view_description"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView" />

<com.google.android.material.imageview.ShapeableImageView
Expand All @@ -267,7 +267,7 @@
android:layout_height="@dimen/video_item_detail_sub_channel_image_size"
android:layout_gravity="bottom|right"
android:contentDescription="@string/detail_sub_channel_thumbnail_view_description"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
android:visibility="gone"
app:shapeAppearance="@style/CircularImageView"
tools:ignore="RtlHardcoded"
Expand Down Expand Up @@ -618,8 +618,7 @@
android:gravity="center_vertical"
android:paddingLeft="@dimen/video_item_search_padding"
android:paddingRight="@dimen/video_item_search_padding"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail" />
android:scaleType="fitCenter" />

<LinearLayout
android:id="@+id/overlay_metadata_layout"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/item_stream_segment.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:layout_width="0dp"
android:layout_height="@dimen/play_queue_thumbnail_width"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail"
android:src="@drawable/placeholder_thumbnail_video"
app:layout_constraintDimensionRatio="16:9"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_channel_grid_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:layout_centerHorizontal="true"
android:layout_margin="2dp"
android:contentDescription="@string/detail_uploader_thumbnail_view_description"
android:src="@drawable/buddy_channel_item"
android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView"
tools:ignore="RtlHardcoded" />

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_channel_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
android:layout_height="@dimen/video_item_search_avatar_image_height"
android:layout_marginLeft="@dimen/video_item_search_avatar_left_margin"
android:layout_marginRight="@dimen/video_item_search_avatar_right_margin"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/itemTitleView"
app:layout_constraintHorizontal_bias="0.5"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_channel_mini_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
android:layout_centerVertical="true"
android:layout_marginStart="3dp"
android:layout_marginRight="15dp"
android:src="@drawable/buddy_channel_item"
android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView"
tools:ignore="RtlHardcoded" />

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_comments_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
android:layout_marginLeft="3dp"
android:layout_marginRight="@dimen/comment_item_avatar_right_margin"
android:focusable="false"
android:src="@drawable/buddy"
android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView"
tools:ignore="RtlHardcoded" />

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_comments_mini_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
android:layout_centerVertical="true"
android:layout_marginStart="3dp"
android:layout_marginRight="15dp"
android:src="@drawable/buddy_channel_item"
android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView"
tools:ignore="RtlHardcoded" />

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_playlist_grid_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
android:layout_centerHorizontal="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:scaleType="fitStart"
android:src="@drawable/dummy_thumbnail_playlist"
android:src="@drawable/placeholder_thumbnail_playlist"
tools:ignore="RtlHardcoded" />

<org.schabi.newpipe.views.NewPipeTextView
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_playlist_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:scaleType="fitStart"
android:src="@drawable/dummy_thumbnail_playlist"
android:src="@drawable/placeholder_thumbnail_playlist"
tools:ignore="RtlHardcoded" />

<org.schabi.newpipe.views.NewPipeTextView
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_playlist_mini_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:scaleType="fitStart"
android:src="@drawable/dummy_thumbnail_playlist"
android:src="@drawable/placeholder_thumbnail_playlist"
tools:ignore="RtlHardcoded" />

<org.schabi.newpipe.views.NewPipeTextView
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_stream_grid_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
android:layout_width="@dimen/video_item_grid_thumbnail_image_width"
android:layout_height="@dimen/video_item_grid_thumbnail_image_height"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail"
android:src="@drawable/placeholder_thumbnail_video"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_stream_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail"
android:src="@drawable/placeholder_thumbnail_video"
app:layout_constraintBottom_toTopOf="@+id/itemProgressView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_stream_mini_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail"
android:src="@drawable/placeholder_thumbnail_video"
tools:ignore="RtlHardcoded" />

<org.schabi.newpipe.views.NewPipeTextView
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_stream_playlist_grid_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
android:layout_centerHorizontal="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail"
android:src="@drawable/placeholder_thumbnail_video"
tools:ignore="RtlHardcoded" />

<org.schabi.newpipe.views.NewPipeTextView
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/list_stream_playlist_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail"
android:src="@drawable/placeholder_thumbnail_video"
tools:ignore="RtlHardcoded" />

<org.schabi.newpipe.views.NewPipeTextView
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/picker_subscription_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
app:shapeAppearance="@style/CircularImageView"
tools:src="@drawable/buddy_channel_item" />
tools:src="@drawable/placeholder_person" />

<org.schabi.newpipe.views.NewPipeTextView
android:id="@+id/title_view"
Expand Down
Loading