From 777445d352c7e6fb4647ab7a2899653001316ccd Mon Sep 17 00:00:00 2001
From: Natanel Shitrit <65548905+Natanel-Shitrit@users.noreply.github.com>
Date: Mon, 21 Aug 2023 22:41:51 +0300
Subject: [PATCH] feat: show episode size in extra info (#477)
* Show episode size if extra info is enabled
* Remove unnecessary stuff
---
.../fragments/EpisodeBottomSheetFragment.kt | 14 ++++++++++++++
.../src/main/res/layout/episode_bottom_sheet.xml | 8 ++++++++
2 files changed, 22 insertions(+)
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 1f049b6e..b230f2e9 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.format.Formatter
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
@@ -19,6 +20,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
+import dev.jdtech.jellyfin.AppPreferences
import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.bindCardItemImage
import dev.jdtech.jellyfin.databinding.EpisodeBottomSheetBinding
@@ -40,6 +42,7 @@ import java.text.DateFormat
import java.time.ZoneOffset
import java.util.Date
import java.util.UUID
+import javax.inject.Inject
import android.R as AndroidR
import com.google.android.material.R as MaterialR
import dev.jdtech.jellyfin.core.R as CoreR
@@ -54,6 +57,9 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
private lateinit var downloadPreparingDialog: AlertDialog
+ @Inject
+ lateinit var appPreferences: AppPreferences
+
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
@@ -230,6 +236,9 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
private fun bindUiStateNormal(uiState: EpisodeBottomSheetViewModel.UiState.Normal) {
uiState.apply {
+ val size = episode.sources.getOrNull(0)?.size?.let {
+ Formatter.formatFileSize(requireContext(), it)
+ }
val canDownload = episode.canDownload && episode.sources.any { it.type == FindroidSourceType.REMOTE }
val canDelete = episode.sources.any { it.type == FindroidSourceType.LOCAL }
@@ -284,6 +293,11 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
binding.communityRating.text = episode.communityRating.toString()
binding.missingIcon.isVisible = false
+ if (appPreferences.displayExtraInfo) {
+ size?.let { binding.size.text = it }
+ binding.size.isVisible = size != null
+ }
+
bindCardItemImage(binding.episodeImage, episode)
}
binding.loadingIndicator.isVisible = false
diff --git a/app/phone/src/main/res/layout/episode_bottom_sheet.xml b/app/phone/src/main/res/layout/episode_bottom_sheet.xml
index 7876d911..b3b2c99c 100644
--- a/app/phone/src/main/res/layout/episode_bottom_sheet.xml
+++ b/app/phone/src/main/res/layout/episode_bottom_sheet.xml
@@ -154,11 +154,19 @@
android:layout_height="wrap_content"
android:drawablePadding="4dp"
android:gravity="bottom"
+ android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:drawableStartCompat="@drawable/ic_star"
app:drawableTint="@color/yellow"
tools:text="8.8" />
+