From a70552019e7915771ff68d9b12e5c3fcbb52171c Mon Sep 17 00:00:00 2001 From: TwistedUmbrellaX Date: Wed, 20 Mar 2024 10:31:04 -0400 Subject: [PATCH] chore: resolve media.anime SetTextI18n --- .../dantotsu/media/anime/AnimeWatchAdapter.kt | 36 ++++++++++--------- .../dantotsu/media/anime/EpisodeAdapters.kt | 1 - .../ani/dantotsu/media/anime/ExoplayerView.kt | 10 +++--- .../media/anime/SelectorDialogFragment.kt | 11 +++--- .../dantotsu/media/comments/CommentItem.kt | 1 + app/src/main/res/values/strings.xml | 16 +++++++-- 6 files changed, 44 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt index 4b53fe42..b3ffdaa0 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt @@ -54,7 +54,6 @@ class AnimeWatchAdapter( private var nestedDialog: AlertDialog? = null - @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: ViewHolder, position: Int) { val binding = holder.binding _binding = binding @@ -223,9 +222,9 @@ class AnimeWatchAdapter( else -> dialogBinding.animeSourceList } when (style) { - 0 -> dialogBinding.layoutText.text = "List" - 1 -> dialogBinding.layoutText.text = "Grid" - 2 -> dialogBinding.layoutText.text = "Compact" + 0 -> dialogBinding.layoutText.setText(R.string.list) + 1 -> dialogBinding.layoutText.setText(R.string.grid) + 2 -> dialogBinding.layoutText.setText(R.string.compact) else -> dialogBinding.animeSourceList } selected.alpha = 1f @@ -237,19 +236,19 @@ class AnimeWatchAdapter( dialogBinding.animeSourceList.setOnClickListener { selected(it as ImageButton) style = 0 - dialogBinding.layoutText.text = "List" + dialogBinding.layoutText.setText(R.string.list) run = true } dialogBinding.animeSourceGrid.setOnClickListener { selected(it as ImageButton) style = 1 - dialogBinding.layoutText.text = "Grid" + dialogBinding.layoutText.setText(R.string.grid) run = true } dialogBinding.animeSourceCompact.setOnClickListener { selected(it as ImageButton) style = 2 - dialogBinding.layoutText.text = "Compact" + dialogBinding.layoutText.setText(R.string.compact) run = true } dialogBinding.animeWebviewContainer.setOnClickListener { @@ -307,7 +306,6 @@ class AnimeWatchAdapter( } //Chips - @SuppressLint("SetTextI18n") fun updateChips(limit: Int, names: Array, arr: Array, selected: Int = 0) { val binding = _binding if (binding != null) { @@ -329,7 +327,8 @@ class AnimeWatchAdapter( 0 ) } - chip.text = "${names[limit * (position)]} - ${names[last - 1]}" + val chipText = "${names[limit * (position)]} - ${names[last - 1]}" + chip.text = chipText chip.setTextColor( ContextCompat.getColorStateList( fragment.requireContext(), @@ -363,7 +362,6 @@ class AnimeWatchAdapter( _binding?.animeSourceChipGroup?.removeAllViews() } - @SuppressLint("SetTextI18n") fun handleEpisodes() { val binding = _binding if (binding != null) { @@ -371,9 +369,9 @@ class AnimeWatchAdapter( val episodes = media.anime.episodes!!.keys.toTypedArray() val anilistEp = (media.userProgress ?: 0).plus(1) - val appEp = - PrefManager.getCustomVal("${media.id}_current_ep", "")?.toIntOrNull() - ?: 1 + val appEp = PrefManager.getCustomVal( + "${media.id}_current_ep", "" + )?.toIntOrNull() ?: 1 var continueEp = (if (anilistEp > appEp) anilistEp else appEp).toString() if (episodes.contains(continueEp)) { @@ -409,15 +407,19 @@ class AnimeWatchAdapter( ep.thumb ?: FileUrl[media.banner ?: media.cover], 0 ) if (ep.filler) binding.itemEpisodeFillerView.visibility = View.VISIBLE + binding.animeSourceContinueText.text = - currActivity()!!.getString(R.string.continue_episode) + "${ep.number}${if (ep.filler) " - Filler" else ""}${"\n$cleanedTitle"}" + currActivity()!!.getString(R.string.continue_episode, ep.number, if (ep.filler) + currActivity()!!.getString(R.string.filler_tag) + else + "", cleanedTitle) binding.animeSourceContinue.setOnClickListener { fragment.onEpisodeClick(continueEp) } if (fragment.continueEp) { - if ((binding.itemEpisodeProgress.layoutParams as LinearLayout.LayoutParams).weight < PrefManager.getVal( - PrefName.WatchPercentage - ) + if ( + (binding.itemEpisodeProgress.layoutParams as LinearLayout.LayoutParams) + .weight < PrefManager.getVal(PrefName.WatchPercentage) ) { binding.animeSourceContinue.performClick() fragment.continueEp = false diff --git a/app/src/main/java/ani/dantotsu/media/anime/EpisodeAdapters.kt b/app/src/main/java/ani/dantotsu/media/anime/EpisodeAdapters.kt index 7a3d8aec..6617d71a 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/EpisodeAdapters.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/EpisodeAdapters.kt @@ -97,7 +97,6 @@ class EpisodeAdapter( return type } - @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val ep = arr[position] val title = if (!ep.title.isNullOrEmpty() && ep.title != "null") { diff --git a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt index 7ae06a1a..ff49e57a 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt @@ -110,7 +110,7 @@ import kotlin.math.min import kotlin.math.roundToInt @UnstableApi -@SuppressLint("SetTextI18n", "ClickableViewAccessibility") +@SuppressLint("ClickableViewAccessibility") class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityListener { private val resumeWindow = "resumeWindow" @@ -703,11 +703,13 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL fun seek(forward: Boolean, event: MotionEvent? = null) { val seekTime = PrefManager.getVal(PrefName.SeekTime) val (card, text) = if (forward) { - forwardText.text = "+${seekTime * ++seekTimesF}" + val text = "+${seekTime * ++seekTimesF}" + forwardText.text = text handler.post { exoPlayer.seekTo(exoPlayer.currentPosition + seekTime * 1000) } fastForwardCard to forwardText } else { - rewindText.text = "-${seekTime * ++seekTimesR}" + val text = "-${seekTime * ++seekTimesR}" + rewindText.text = text handler.post { exoPlayer.seekTo(exoPlayer.currentPosition - seekTime * 1000) } fastRewindCard to rewindText } @@ -1659,7 +1661,7 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL aspectRatio = Rational(width, height) - videoInfo.text = "Quality: ${height}p" + videoInfo.text = getString(R.string.video_quality, height) if (exoPlayer.duration < playbackPosition) exoPlayer.seekTo(0) diff --git a/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt b/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt index f83b22ad..05f3c357 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt @@ -302,7 +302,6 @@ class SelectorDialogFragment : BottomSheetDialogFragment() { ) } - @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: UrlViewHolder, position: Int) { val binding = holder.binding val video = extractor.videos[position] @@ -402,11 +401,11 @@ class SelectorDialogFragment : BottomSheetDialogFragment() { } if (video.format == VideoType.CONTAINER) { binding.urlSize.visibility = if (video.size != null) View.VISIBLE else View.GONE - binding.urlSize.text = - // if video size is null or 0, show "Unknown Size" else show the size in MB - (if (video.extraNote != null) " : " else "") + (if (video.size == 0.0) "Unknown Size" else (DecimalFormat( - "#.##" - ).format(video.size ?: 0).toString() + " MB")) + // if video size is null or 0, show "Unknown Size" else show the size in MB + val sizeText = getString(R.string.mb_size, "${if (video.extraNote != null) " : " else ""}${ + if (video.size == 0.0) getString(R.string.size_unknown) else DecimalFormat("#.##").format(video.size ?: 0) + }") + binding.urlSize.text = sizeText } binding.urlNote.visibility = View.VISIBLE binding.urlNote.text = video.format.name diff --git a/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt b/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt index c50af90b..2b4e42b6 100644 --- a/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt +++ b/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt @@ -308,6 +308,7 @@ class CommentItem(val comment: Comment, } companion object { + @SuppressLint("SimpleDateFormat") fun timestampToMillis(timestamp: String): Long { val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") dateFormat.timeZone = TimeZone.getTimeZone("UTC") diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 78e00c2b..3f6971cf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -393,7 +393,6 @@ Amount of time for Dantotsu to periodically check for new Episodes/Chapters\n(Less time will cause more battery consumption) Don\'t Update Loading Next Chapter - Grid Sort by Release Date Crop Borders NOTE @@ -491,8 +490,9 @@ Read on Dantotsu Watch on Dantotsu View Profile in Dantotsu - "Continue : Episode " - "Continue : " + Continue : Episode %1$s%2$s\n%3$s + - Filler + Continue : "Episode " "Episode %1$s" "Chapter " @@ -729,4 +729,14 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc Report Comment Only report comments that violate the rules. Are you sure you want to report this comment? Comment Reported + + List + Grid + Compact + + WebView not installed + + Quality: %1$dp + Unknown Size + %1$s MB