fix: show indexNumberEnd

This commit is contained in:
jarnedemeulemeester 2023-05-08 23:51:31 +02:00
parent f074bb6e3c
commit 8a96588a88
No known key found for this signature in database
GPG key ID: 1E5C6AFBD622E9F5
9 changed files with 56 additions and 15 deletions

View file

@ -8,6 +8,7 @@ import androidx.core.view.isVisible
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import dev.jdtech.jellyfin.core.R as CoreR
import dev.jdtech.jellyfin.databinding.EpisodeItemBinding
import dev.jdtech.jellyfin.databinding.SeasonHeaderBinding
import dev.jdtech.jellyfin.models.EpisodeItem
@ -37,6 +38,13 @@ class EpisodeListAdapter(
RecyclerView.ViewHolder(binding.root) {
fun bind(episode: FindroidEpisode) {
binding.episode = episode
binding.episodeTitle.text = if (episode.indexNumberEnd == null) {
binding.root.context.getString(CoreR.string.episode_name, episode.indexNumber, episode.name)
} else {
binding.root.context.getString(CoreR.string.episode_name_with_end, episode.indexNumber, episode.indexNumberEnd, episode.name)
}
if (episode.playbackPositionTicks > 0) {
binding.progressBar.layoutParams.width = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,

View file

@ -40,7 +40,11 @@ class HomeEpisodeListAdapter(private val onClickListener: OnClickListener) : Lis
}
is FindroidEpisode -> {
binding.primaryName.text = item.seriesName
binding.secondaryName.text = parent.resources.getString(CoreR.string.episode_name_extended, item.parentIndexNumber, item.indexNumber, item.name)
binding.secondaryName.text = if (item.indexNumberEnd == null) {
parent.resources.getString(CoreR.string.episode_name_extended, item.parentIndexNumber, item.indexNumber, item.name)
} else {
parent.resources.getString(CoreR.string.episode_name_extended_with_end, item.parentIndexNumber, item.indexNumber, item.indexNumberEnd, item.name)
}
}
}

View file

@ -259,12 +259,23 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
false -> binding.itemActions.downloadButton.isVisible = false
}
binding.episodeName.text = getString(
CoreR.string.episode_name_extended,
episode.parentIndexNumber,
episode.indexNumber,
episode.name
)
binding.episodeName.text = if (episode.indexNumberEnd == null) {
getString(
CoreR.string.episode_name_extended,
episode.parentIndexNumber,
episode.indexNumber,
episode.name
)
} else {
getString(
CoreR.string.episode_name_extended_with_end,
episode.parentIndexNumber,
episode.indexNumber,
episode.indexNumberEnd,
episode.name
)
}
binding.seriesName.text = episode.seriesName
binding.overview.text = episode.overview
binding.year.text = formatDateTime(episode.premiereDate)

View file

@ -226,12 +226,23 @@ class ShowFragment : Fragment() {
binding.writers.text = writersString
binding.description.text = item.overview
binding.nextUpLayout.isVisible = nextUp != null
binding.nextUpName.text = getString(
CoreR.string.episode_name_extended,
nextUp?.parentIndexNumber,
nextUp?.indexNumber,
nextUp?.name
)
if (nextUp?.indexNumberEnd == null) {
binding.nextUpName.text = getString(
CoreR.string.episode_name_extended,
nextUp?.parentIndexNumber,
nextUp?.indexNumber,
nextUp?.name
)
} else {
binding.nextUpName.text = getString(
CoreR.string.episode_name_extended_with_end,
nextUp?.parentIndexNumber,
nextUp?.indexNumber,
nextUp?.indexNumberEnd,
nextUp?.name
)
}
binding.seasonsLayout.isVisible = seasons.isNotEmpty()
val seasonsAdapter = binding.seasonsRecyclerView.adapter as ViewItemListAdapter
seasonsAdapter.submitList(seasons)

View file

@ -112,7 +112,6 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@{String.format(@string/episode_name, episode.indexNumber, episode.name)}"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintBottom_toTopOf="@id/episode_desc"
app:layout_constraintEnd_toEndOf="parent"

View file

@ -45,7 +45,9 @@
<string name="episode_watched_indicator">Episode watched indicator</string>
<string name="downloaded_indicator">Downloaded indicator</string>
<string name="episode_name">%1$d. %2$s</string>
<string name="episode_name_with_end">%1$d-%2$d. %3$s</string>
<string name="episode_name_extended">S%1$d:E%2$d - %3$s</string>
<string name="episode_name_extended_with_end">S%1$d:E%2$d-%3$d - %4$s</string>
<string name="next_up">Next Up</string>
<string name="continue_watching">Continue Watching</string>
<string name="latest_library">Latest %1$s</string>

View file

@ -13,5 +13,6 @@ data class PlayerItem(
val mediaSourceUri: String = "",
val parentIndexNumber: Int? = null,
val indexNumber: Int? = null,
val indexNumberEnd: Int? = null,
val externalSubtitles: List<ExternalSubtitle> = emptyList()
) : Parcelable

View file

@ -245,8 +245,12 @@ constructor(
.let { item ->
if (appPreferences.displayExtendedTitle && item.parentIndexNumber != null && item.indexNumber != null && item.name != null
)
_currentItemTitle.value =
_currentItemTitle.value = if (item.indexNumberEnd == null) {
"S${item.parentIndexNumber}:E${item.indexNumber} - ${item.name}"
} else {
"S${item.parentIndexNumber}:E${item.indexNumber}-${item.indexNumberEnd} - ${item.name}"
}
else
_currentItemTitle.value = item.name.orEmpty()

View file

@ -173,6 +173,7 @@ class PlayerViewModel @Inject internal constructor(
playbackPosition = playbackPosition,
parentIndexNumber = if (this is FindroidEpisode) parentIndexNumber else null,
indexNumber = if (this is FindroidEpisode) indexNumber else null,
indexNumberEnd = if (this is FindroidEpisode) indexNumberEnd else null,
externalSubtitles = externalSubtitles
)
}