feat: show episode size in extra info (#477)

* Show episode size if extra info is enabled

* Remove unnecessary stuff
This commit is contained in:
Natanel Shitrit 2023-08-21 22:41:51 +03:00 committed by GitHub
parent fc3b8f3c5a
commit 777445d352
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View file

@ -2,6 +2,7 @@ package dev.jdtech.jellyfin.fragments
import android.app.DownloadManager import android.app.DownloadManager
import android.os.Bundle import android.os.Bundle
import android.text.format.Formatter
import android.util.TypedValue import android.util.TypedValue
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View 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.bottomsheet.BottomSheetDialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import dev.jdtech.jellyfin.AppPreferences
import dev.jdtech.jellyfin.R import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.bindCardItemImage import dev.jdtech.jellyfin.bindCardItemImage
import dev.jdtech.jellyfin.databinding.EpisodeBottomSheetBinding import dev.jdtech.jellyfin.databinding.EpisodeBottomSheetBinding
@ -40,6 +42,7 @@ import java.text.DateFormat
import java.time.ZoneOffset import java.time.ZoneOffset
import java.util.Date import java.util.Date
import java.util.UUID import java.util.UUID
import javax.inject.Inject
import android.R as AndroidR import android.R as AndroidR
import com.google.android.material.R as MaterialR import com.google.android.material.R as MaterialR
import dev.jdtech.jellyfin.core.R as CoreR import dev.jdtech.jellyfin.core.R as CoreR
@ -54,6 +57,9 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
private lateinit var downloadPreparingDialog: AlertDialog private lateinit var downloadPreparingDialog: AlertDialog
@Inject
lateinit var appPreferences: AppPreferences
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
@ -230,6 +236,9 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
private fun bindUiStateNormal(uiState: EpisodeBottomSheetViewModel.UiState.Normal) { private fun bindUiStateNormal(uiState: EpisodeBottomSheetViewModel.UiState.Normal) {
uiState.apply { 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 canDownload = episode.canDownload && episode.sources.any { it.type == FindroidSourceType.REMOTE }
val canDelete = episode.sources.any { it.type == FindroidSourceType.LOCAL } val canDelete = episode.sources.any { it.type == FindroidSourceType.LOCAL }
@ -284,6 +293,11 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
binding.communityRating.text = episode.communityRating.toString() binding.communityRating.text = episode.communityRating.toString()
binding.missingIcon.isVisible = false binding.missingIcon.isVisible = false
if (appPreferences.displayExtraInfo) {
size?.let { binding.size.text = it }
binding.size.isVisible = size != null
}
bindCardItemImage(binding.episodeImage, episode) bindCardItemImage(binding.episodeImage, episode)
} }
binding.loadingIndicator.isVisible = false binding.loadingIndicator.isVisible = false

View file

@ -154,11 +154,19 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:drawablePadding="4dp" android:drawablePadding="4dp"
android:gravity="bottom" android:gravity="bottom"
android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium" android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:drawableStartCompat="@drawable/ic_star" app:drawableStartCompat="@drawable/ic_star"
app:drawableTint="@color/yellow" app:drawableTint="@color/yellow"
tools:text="8.8" /> tools:text="8.8" />
<TextView
android:id="@+id/size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
android:visibility="gone"
tools:text="42.42 TB" />
</LinearLayout> </LinearLayout>
<include <include