From a743363a8765e9fa159359a06df0f4b03e91f22a Mon Sep 17 00:00:00 2001 From: leekleak <142348248+leekleak@users.noreply.github.com> Date: Wed, 10 Apr 2024 12:25:22 +0300 Subject: [PATCH] feat: support html in media description (#713) * support HTML in media description * parse html in episode overview * do the same in season view --- .../java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt | 3 ++- .../jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt | 3 ++- .../main/java/dev/jdtech/jellyfin/fragments/MovieFragment.kt | 3 ++- .../main/java/dev/jdtech/jellyfin/fragments/ShowFragment.kt | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt index 4df73fbb..bddb8781 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt @@ -1,5 +1,6 @@ package dev.jdtech.jellyfin.adapters +import android.text.Html.fromHtml import android.util.TypedValue import android.view.LayoutInflater import android.view.View @@ -45,7 +46,7 @@ class EpisodeListAdapter( binding.root.context.getString(CoreR.string.episode_name_with_end, episode.indexNumber, episode.indexNumberEnd, episode.name) } - binding.episodeOverview.text = episode.overview + binding.episodeOverview.text = fromHtml(episode.overview, 0) if (episode.playbackPositionTicks > 0) { binding.progressBar.layoutParams.width = TypedValue.applyDimension( diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt index 9050a003..17c61caf 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt @@ -2,6 +2,7 @@ package dev.jdtech.jellyfin.fragments import android.app.DownloadManager import android.os.Bundle +import android.text.Html.fromHtml import android.text.format.Formatter import android.util.TypedValue import android.view.LayoutInflater @@ -285,7 +286,7 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() { } binding.seriesName.text = episode.seriesName - binding.overview.text = episode.overview + binding.overview.text = fromHtml(episode.overview, 0) binding.year.text = formatDateTime(episode.premiereDate) binding.playtime.text = getString(CoreR.string.runtime_minutes, episode.runtimeTicks.div(600000000)) episode.communityRating?.also { diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/MovieFragment.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/MovieFragment.kt index 672191a0..b383842f 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/MovieFragment.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/MovieFragment.kt @@ -4,6 +4,7 @@ import android.app.DownloadManager import android.content.Intent import android.net.Uri import android.os.Bundle +import android.text.Html.fromHtml import android.text.format.Formatter import android.view.LayoutInflater import android.view.View @@ -381,7 +382,7 @@ class MovieFragment : Fragment() { binding.info.sizeGroup.isVisible = size != null } - binding.info.description.text = item.overview + binding.info.description.text = fromHtml(item.overview, 0) binding.info.genres.text = genresString binding.info.genresGroup.isVisible = item.genres.isNotEmpty() binding.info.director.text = director?.name diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/ShowFragment.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/ShowFragment.kt index a2cfce8d..242f4c60 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/ShowFragment.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/ShowFragment.kt @@ -3,6 +3,7 @@ package dev.jdtech.jellyfin.fragments import android.content.Intent import android.net.Uri import android.os.Bundle +import android.text.Html.fromHtml import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -216,7 +217,7 @@ class ShowFragment : Fragment() { binding.communityRating.isVisible = true } - binding.info.description.text = item.overview + binding.info.description.text = fromHtml(item.overview, 0) binding.info.genres.text = genresString binding.info.genresGroup.isVisible = item.genres.isNotEmpty() binding.info.director.text = director?.name