From 45320da830fd84dd8a18655b3e0027efe91963fe Mon Sep 17 00:00:00 2001 From: TobiGr Date: Fri, 12 May 2023 11:29:09 +0200 Subject: [PATCH] Add playlist description to PlaylistFragment --- app/build.gradle | 2 +- .../list/playlist/PlaylistFragment.java | 17 +++++++++++++++++ app/src/main/res/layout/playlist_header.xml | 11 ++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8b9659c1fa5..00c638c821e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -201,7 +201,7 @@ dependencies { // name and the commit hash with the commit hash of the (pushed) commit you want to test // This works thanks to JitPack: https://jitpack.io/ implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' - implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.22.6' + implementation 'com.github.ChunkyProgrammer:NewPipeExtractor:b218bf69bd9172481f2ae06ef834e5916e83780a' implementation 'com.github.TeamNewPipe:NoNonsense-FilePicker:5.0.0' /** Checkstyle **/ diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java index 8dd77bed65a..d7f07164004 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java @@ -1,7 +1,9 @@ package org.schabi.newpipe.fragments.list.playlist; +import static org.schabi.newpipe.extractor.utils.Utils.isBlank; import static org.schabi.newpipe.ktx.ViewUtils.animate; import static org.schabi.newpipe.ktx.ViewUtils.animateHideRecyclerViewAllowingScrolling; +import static org.schabi.newpipe.util.text.TextLinkifier.SET_LINK_MOVEMENT_METHOD; import android.content.Context; import android.os.Bundle; @@ -17,6 +19,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.content.res.AppCompatResources; +import androidx.core.text.HtmlCompat; import com.google.android.material.shape.CornerFamily; import com.google.android.material.shape.ShapeAppearanceModel; @@ -37,6 +40,7 @@ import org.schabi.newpipe.extractor.ServiceList; import org.schabi.newpipe.extractor.playlist.PlaylistInfo; import org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper; +import org.schabi.newpipe.extractor.stream.Description; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.fragments.list.BaseListInfoFragment; import org.schabi.newpipe.info_list.dialog.InfoItemDialog; @@ -51,6 +55,7 @@ import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.PicassoHelper; import org.schabi.newpipe.util.external_communication.ShareUtils; +import org.schabi.newpipe.util.text.TextLinkifier; import java.util.ArrayList; import java.util.List; @@ -321,6 +326,18 @@ public void handleResult(@NonNull final PlaylistInfo result) { headerBinding.playlistStreamCount.setText(Localization .localizeStreamCount(getContext(), result.getStreamCount())); + final Description description = result.getDescription(); + if (description != null && description != Description.EMPTY_DESCRIPTION + && !isBlank(description.getContent())) { + TextLinkifier.fromDescription(headerBinding.playlistDescription, + description, HtmlCompat.FROM_HTML_MODE_LEGACY, + result.getService(), result.getUrl(), + disposables, SET_LINK_MOVEMENT_METHOD); + headerBinding.playlistDescription.setVisibility(View.VISIBLE); + } else { + headerBinding.playlistDescription.setVisibility(View.GONE); + } + if (!result.getErrors().isEmpty()) { showSnackBarError(new ErrorInfo(result.getErrors(), UserAction.REQUESTED_PLAYLIST, result.getUrl(), result)); diff --git a/app/src/main/res/layout/playlist_header.xml b/app/src/main/res/layout/playlist_header.xml index 9c038db3a66..2d6f3067684 100644 --- a/app/src/main/res/layout/playlist_header.xml +++ b/app/src/main/res/layout/playlist_header.xml @@ -80,10 +80,19 @@ tools:text="234 videos" /> + + + android:layout_below="@id/playlist_description">