Merge pull request #10066 from Stypox/swap-subchannel-avatar

Fix uploader and subchannel avatars being swapped and disable loading thumbnail message failure on content details page
This commit is contained in:
Tobi 2023-06-05 23:24:12 +02:00 committed by GitHub
commit 72c6ed2804
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 48 deletions

View file

@ -61,7 +61,6 @@ import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayout;
import com.squareup.picasso.Callback;
import org.schabi.newpipe.App; import org.schabi.newpipe.App;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
@ -649,27 +648,6 @@ public final class VideoDetailFragment
} }
} }
private void initThumbnailViews(@NonNull final StreamInfo info) {
PicassoHelper.loadDetailsThumbnail(info.getThumbnailUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailThumbnailImageView, new Callback() {
@Override
public void onSuccess() {
// nothing to do, the image was loaded correctly into the thumbnail
}
@Override
public void onError(final Exception e) {
showSnackBarError(new ErrorInfo(e, UserAction.LOAD_IMAGE,
info.getThumbnailUrl(), info));
}
});
PicassoHelper.loadAvatar(info.getSubChannelAvatarUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailSubChannelThumbnailView);
PicassoHelper.loadAvatar(info.getUploaderAvatarUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailUploaderThumbnailView);
}
/*////////////////////////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////////////////////////
// OwnStack // OwnStack
//////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////*/
@ -1480,12 +1458,9 @@ public final class VideoDetailFragment
binding.detailSubChannelThumbnailView.setVisibility(View.GONE); binding.detailSubChannelThumbnailView.setVisibility(View.GONE);
if (!isEmpty(info.getSubChannelName())) { if (!isEmpty(info.getSubChannelName())) {
displayBothUploaderAndSubChannel(info, activity); displayBothUploaderAndSubChannel(info);
} else if (!isEmpty(info.getUploaderName())) {
displayUploaderAsSubChannel(info, activity);
} else { } else {
binding.detailUploaderTextView.setVisibility(View.GONE); displayUploaderAsSubChannel(info);
binding.detailUploaderThumbnailView.setVisibility(View.GONE);
} }
final Drawable buddyDrawable = final Drawable buddyDrawable =
@ -1559,7 +1534,8 @@ public final class VideoDetailFragment
binding.detailSecondaryControlPanel.setVisibility(View.GONE); binding.detailSecondaryControlPanel.setVisibility(View.GONE);
checkUpdateProgressInfo(info); checkUpdateProgressInfo(info);
initThumbnailViews(info); PicassoHelper.loadDetailsThumbnail(info.getThumbnailUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailThumbnailImageView);
showMetaInfoInTextView(info.getMetaInfo(), binding.detailMetaInfoTextView, showMetaInfoInTextView(info.getMetaInfo(), binding.detailMetaInfoTextView,
binding.detailMetaInfoSeparator, disposables); binding.detailMetaInfoSeparator, disposables);
@ -1596,27 +1572,30 @@ public final class VideoDetailFragment
noVideoStreams ? R.drawable.ic_headset_shadow : R.drawable.ic_play_arrow_shadow); noVideoStreams ? R.drawable.ic_headset_shadow : R.drawable.ic_play_arrow_shadow);
} }
private void displayUploaderAsSubChannel(final StreamInfo info, final Context context) { private void displayUploaderAsSubChannel(final StreamInfo info) {
binding.detailSubChannelTextView.setText(info.getUploaderName()); binding.detailSubChannelTextView.setText(info.getUploaderName());
binding.detailSubChannelTextView.setVisibility(View.VISIBLE); binding.detailSubChannelTextView.setVisibility(View.VISIBLE);
binding.detailSubChannelTextView.setSelected(true); binding.detailSubChannelTextView.setSelected(true);
if (info.getUploaderSubscriberCount() > -1) { if (info.getUploaderSubscriberCount() > -1) {
binding.detailUploaderTextView.setText( binding.detailUploaderTextView.setText(
Localization.shortSubscriberCount(context, info.getUploaderSubscriberCount())); Localization.shortSubscriberCount(activity, info.getUploaderSubscriberCount()));
binding.detailUploaderTextView.setVisibility(View.VISIBLE); binding.detailUploaderTextView.setVisibility(View.VISIBLE);
} else { } else {
binding.detailUploaderTextView.setVisibility(View.GONE); binding.detailUploaderTextView.setVisibility(View.GONE);
} }
PicassoHelper.loadAvatar(info.getUploaderAvatarUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailSubChannelThumbnailView);
binding.detailSubChannelThumbnailView.setVisibility(View.VISIBLE);
binding.detailUploaderThumbnailView.setVisibility(View.GONE);
} }
private void displayBothUploaderAndSubChannel(final StreamInfo info, final Context context) { private void displayBothUploaderAndSubChannel(final StreamInfo info) {
binding.detailSubChannelTextView.setText(info.getSubChannelName()); binding.detailSubChannelTextView.setText(info.getSubChannelName());
binding.detailSubChannelTextView.setVisibility(View.VISIBLE); binding.detailSubChannelTextView.setVisibility(View.VISIBLE);
binding.detailSubChannelTextView.setSelected(true); binding.detailSubChannelTextView.setSelected(true);
binding.detailSubChannelThumbnailView.setVisibility(View.VISIBLE);
final StringBuilder subText = new StringBuilder(); final StringBuilder subText = new StringBuilder();
if (!isEmpty(info.getUploaderName())) { if (!isEmpty(info.getUploaderName())) {
subText.append( subText.append(
@ -1627,7 +1606,7 @@ public final class VideoDetailFragment
subText.append(Localization.DOT_SEPARATOR); subText.append(Localization.DOT_SEPARATOR);
} }
subText.append( subText.append(
Localization.shortSubscriberCount(context, info.getUploaderSubscriberCount())); Localization.shortSubscriberCount(activity, info.getUploaderSubscriberCount()));
} }
if (subText.length() > 0) { if (subText.length() > 0) {
@ -1637,6 +1616,13 @@ public final class VideoDetailFragment
} else { } else {
binding.detailUploaderTextView.setVisibility(View.GONE); binding.detailUploaderTextView.setVisibility(View.GONE);
} }
PicassoHelper.loadAvatar(info.getSubChannelAvatarUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailSubChannelThumbnailView);
binding.detailSubChannelThumbnailView.setVisibility(View.VISIBLE);
PicassoHelper.loadAvatar(info.getUploaderAvatarUrl()).tag(PICASSO_VIDEO_DETAILS_TAG)
.into(binding.detailUploaderThumbnailView);
binding.detailUploaderThumbnailView.setVisibility(View.VISIBLE);
} }
public void openDownloadDialog() { public void openDownloadDialog() {

View file

@ -267,23 +267,21 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/detail_uploader_thumbnail_view" android:id="@+id/detail_sub_channel_thumbnail_view"
android:layout_width="@dimen/video_item_detail_uploader_image_size" android:layout_width="@dimen/video_item_detail_uploader_image_size"
android:layout_height="@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:contentDescription="@string/detail_sub_channel_thumbnail_view_description"
android:src="@drawable/placeholder_person" android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView" /> app:shapeAppearance="@style/CircularImageView" />
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/detail_sub_channel_thumbnail_view" android:id="@+id/detail_uploader_thumbnail_view"
android:layout_width="@dimen/video_item_detail_sub_channel_image_size" android:layout_width="@dimen/video_item_detail_sub_channel_image_size"
android:layout_height="@dimen/video_item_detail_sub_channel_image_size" android:layout_height="@dimen/video_item_detail_sub_channel_image_size"
android:layout_gravity="bottom|right" android:layout_gravity="bottom|right"
android:contentDescription="@string/detail_sub_channel_thumbnail_view_description" android:contentDescription="@string/detail_uploader_thumbnail_view_description"
android:src="@drawable/placeholder_person" android:src="@drawable/placeholder_person"
android:visibility="gone" app:shapeAppearance="@style/CircularImageView" />
app:shapeAppearance="@style/CircularImageView"
tools:visibility="visible" />
</FrameLayout> </FrameLayout>

View file

@ -254,24 +254,22 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/detail_uploader_thumbnail_view" android:id="@+id/detail_sub_channel_thumbnail_view"
android:layout_width="@dimen/video_item_detail_uploader_image_size" android:layout_width="@dimen/video_item_detail_uploader_image_size"
android:layout_height="@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:contentDescription="@string/detail_sub_channel_thumbnail_view_description"
android:src="@drawable/placeholder_person" android:src="@drawable/placeholder_person"
app:shapeAppearance="@style/CircularImageView" /> app:shapeAppearance="@style/CircularImageView" />
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/detail_sub_channel_thumbnail_view" android:id="@+id/detail_uploader_thumbnail_view"
android:layout_width="@dimen/video_item_detail_sub_channel_image_size" android:layout_width="@dimen/video_item_detail_sub_channel_image_size"
android:layout_height="@dimen/video_item_detail_sub_channel_image_size" android:layout_height="@dimen/video_item_detail_sub_channel_image_size"
android:layout_gravity="bottom|right" android:layout_gravity="bottom|right"
android:contentDescription="@string/detail_sub_channel_thumbnail_view_description" android:contentDescription="@string/detail_uploader_thumbnail_view_description"
android:src="@drawable/placeholder_person" android:src="@drawable/placeholder_person"
android:visibility="gone"
app:shapeAppearance="@style/CircularImageView" app:shapeAppearance="@style/CircularImageView"
tools:ignore="RtlHardcoded" tools:ignore="RtlHardcoded" />
tools:visibility="visible" />
</FrameLayout> </FrameLayout>