Remove hardcoded strings from dialogs

This commit is contained in:
jarnedemeulemeester 2021-10-23 13:35:37 +02:00
parent aa1ef5ca5b
commit 69503f504d
No known key found for this signature in database
GPG key ID: 60884A0C1EBA43E5
9 changed files with 20 additions and 23 deletions

View file

@ -14,9 +14,9 @@ class ErrorDialogFragment(private val errorMessage: String) : DialogFragment() {
val builder = MaterialAlertDialogBuilder(it, R.style.ErrorDialogStyle) val builder = MaterialAlertDialogBuilder(it, R.style.ErrorDialogStyle)
builder builder
.setMessage(errorMessage) .setMessage(errorMessage)
.setPositiveButton("close") { _, _ -> .setPositiveButton(getString(R.string.close)) { _, _ ->
} }
.setNeutralButton("share") { _, _ -> .setNeutralButton(getString(R.string.share)) { _, _ ->
val sendIntent: Intent = Intent().apply { val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, errorMessage) putExtra(Intent.EXTRA_TEXT, errorMessage)

View file

@ -40,7 +40,7 @@ class SortDialogFragment(
val sortByOptions = resources.getStringArray(R.array.sort_by_options) val sortByOptions = resources.getStringArray(R.array.sort_by_options)
val sortByValues = SortBy.values() val sortByValues = SortBy.values()
builder builder
.setTitle(resources.getString(R.string.sort_by)) .setTitle(getString(R.string.sort_by))
.setSingleChoiceItems( .setSingleChoiceItems(
sortByOptions, currentSortBy.ordinal sortByOptions, currentSortBy.ordinal
) { dialog, which -> ) { dialog, which ->
@ -59,7 +59,7 @@ class SortDialogFragment(
val sortOrderValues = SortOrder.values() val sortOrderValues = SortOrder.values()
builder builder
.setTitle(resources.getString(R.string.sort_order)) .setTitle(getString(R.string.sort_order))
.setSingleChoiceItems( .setSingleChoiceItems(
sortByOptions, currentSortOrder.ordinal sortByOptions, currentSortOrder.ordinal
) { dialog, which -> ) { dialog, which ->

View file

@ -4,6 +4,7 @@ import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel
import java.lang.IllegalStateException import java.lang.IllegalStateException
@ -14,10 +15,9 @@ class SpeedSelectionDialogFragment(
val speedTexts = listOf("0.5x", "0.75x", "1x", "1.25x", "1.5x", "1.75x", "2x") val speedTexts = listOf("0.5x", "0.75x", "1x", "1.25x", "1.5x", "1.75x", "2x")
val speedNumbers = listOf(0.5f, 0.75f, 1f, 1.25f, 1.5f, 1.75f, 2f) val speedNumbers = listOf(0.5f, 0.75f, 1f, 1.25f, 1.5f, 1.75f, 2f)
return activity?.let { activity -> return activity?.let { activity ->
val builder = MaterialAlertDialogBuilder(activity) val builder = MaterialAlertDialogBuilder(activity)
builder.setTitle("Select playback speed") builder.setTitle(getString(R.string.select_playback_speed))
.setSingleChoiceItems( .setSingleChoiceItems(
speedTexts.toTypedArray(), speedTexts.toTypedArray(),
speedNumbers.indexOf(viewModel.playbackSpeed) speedNumbers.indexOf(viewModel.playbackSpeed)

View file

@ -4,6 +4,7 @@ import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.mpv.TrackType import dev.jdtech.jellyfin.mpv.TrackType
import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel
import java.lang.IllegalStateException import java.lang.IllegalStateException
@ -25,7 +26,7 @@ class TrackSelectionDialogFragment(
} }
return activity?.let { activity -> return activity?.let { activity ->
val builder = MaterialAlertDialogBuilder(activity) val builder = MaterialAlertDialogBuilder(activity)
builder.setTitle("Select audio track") builder.setTitle(getString(R.string.select_audio_track))
.setSingleChoiceItems( .setSingleChoiceItems(
trackNames.toTypedArray(), trackNames.toTypedArray(),
viewModel.currentAudioTracks.indexOfFirst { it.selected }) { dialog, which -> viewModel.currentAudioTracks.indexOfFirst { it.selected }) { dialog, which ->
@ -48,7 +49,7 @@ class TrackSelectionDialogFragment(
} }
return activity?.let { activity -> return activity?.let { activity ->
val builder = MaterialAlertDialogBuilder(activity) val builder = MaterialAlertDialogBuilder(activity)
builder.setTitle("Select subtitle track") builder.setTitle(getString(R.string.select_subtile_track))
.setSingleChoiceItems( .setSingleChoiceItems(
trackNames.toTypedArray(), trackNames.toTypedArray(),
viewModel.currentSubtitleTracks.indexOfFirst { it.selected }) { dialog, which -> viewModel.currentSubtitleTracks.indexOfFirst { it.selected }) { dialog, which ->
@ -62,13 +63,7 @@ class TrackSelectionDialogFragment(
} ?: throw IllegalStateException("Activity cannot be null") } ?: throw IllegalStateException("Activity cannot be null")
} }
else -> { else -> {
trackNames = listOf() throw IllegalStateException("TrackType must be AUDIO or SUBTITLE")
return activity?.let {
val builder = MaterialAlertDialogBuilder(it)
builder.setTitle("Select ? track")
.setMessage("Unknown track type")
builder.create()
} ?: throw IllegalStateException("Activity cannot be null")
} }
} }
} }

View file

@ -4,6 +4,7 @@ import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.viewmodels.MediaInfoViewModel import dev.jdtech.jellyfin.viewmodels.MediaInfoViewModel
import java.lang.IllegalStateException import java.lang.IllegalStateException
@ -14,7 +15,7 @@ class VideoVersionDialogFragment(
val items = viewModel.item.value?.mediaSources?.map { it.name } val items = viewModel.item.value?.mediaSources?.map { it.name }
return activity?.let { return activity?.let {
val builder = MaterialAlertDialogBuilder(it) val builder = MaterialAlertDialogBuilder(it)
builder.setTitle("Select a version") builder.setTitle(getString(R.string.select_a_version))
.setItems(items?.toTypedArray()) { _, which -> .setItems(items?.toTypedArray()) { _, which ->
viewModel.preparePlayerItems(which) viewModel.preparePlayerItems(which)
} }

View file

@ -1,5 +1,4 @@
<resources> <resources>
<string name="app_name">Findroid</string>
<string name="app_description">Aplicación nativa de terceros para Jellyfin</string> <string name="app_description">Aplicación nativa de terceros para Jellyfin</string>
<string name="jellyfin_banner">Emblema Jellyfin</string> <string name="jellyfin_banner">Emblema Jellyfin</string>
<string name="add_server">Agregar servidor</string> <string name="add_server">Agregar servidor</string>
@ -55,7 +54,7 @@
<string name="privacy_policy">Política de privacidad</string> <string name="privacy_policy">Política de privacidad</string>
<string name="app_info">Información de la App</string> <string name="app_info">Información de la App</string>
<string name="unknown_error">Error desconocido</string> <string name="unknown_error">Error desconocido</string>
<string name="search_hint">Buscar películas, series, episodios...</string> <string name="search_hint">Buscar películas, series, episodios</string>
<string name="latest_library">Reciente en %1$s</string> <string name="latest_library">Reciente en %1$s</string>
<string name="mpv_player">Reproductor MPV</string> <string name="mpv_player">Reproductor MPV</string>
<string name="mpv_player_summary">Usar el reproductor MPV parar reproducir contenidos. MPV soporta mas codecs de video, audio y subtitulos.</string> <string name="mpv_player_summary">Usar el reproductor MPV parar reproducir contenidos. MPV soporta mas codecs de video, audio y subtitulos.</string>

View file

@ -1,5 +1,4 @@
<resources> <resources>
<string name="app_name">Findroid</string>
<string name="app_description">Aplicación nativa de terceros para Jellyfin</string> <string name="app_description">Aplicación nativa de terceros para Jellyfin</string>
<string name="jellyfin_banner">Emblema Jellyfin</string> <string name="jellyfin_banner">Emblema Jellyfin</string>
<string name="add_server">Agregar servidor</string> <string name="add_server">Agregar servidor</string>
@ -56,7 +55,7 @@
<string name="privacy_policy">Política de privacidad</string> <string name="privacy_policy">Política de privacidad</string>
<string name="app_info">Información de la App</string> <string name="app_info">Información de la App</string>
<string name="unknown_error">Error desconocido</string> <string name="unknown_error">Error desconocido</string>
<string name="search_hint">Buscar películas, series, episodios...</string> <string name="search_hint">Buscar películas, series, episodios</string>
<string name="mpv_player">Reproductor MPV</string> <string name="mpv_player">Reproductor MPV</string>
<string name="mpv_player_summary">Usar el reproductor MPV parar reproducir contenidos. MPV soporta mas codecs de video, audio y subtitulos.</string> <string name="mpv_player_summary">Usar el reproductor MPV parar reproducir contenidos. MPV soporta mas codecs de video, audio y subtitulos.</string>
<string name="select_subtile_track">Elegir subtítulo</string> <string name="select_subtile_track">Elegir subtítulo</string>

View file

@ -1,5 +1,4 @@
<resources> <resources>
<string name="app_name">Findroid</string>
<string name="app_description">Aplicación nativa de terceros para Jellyfin</string> <string name="app_description">Aplicación nativa de terceros para Jellyfin</string>
<string name="jellyfin_banner">Emblema Jellyfin</string> <string name="jellyfin_banner">Emblema Jellyfin</string>
<string name="add_server">Agregar servidor</string> <string name="add_server">Agregar servidor</string>
@ -56,7 +55,7 @@
<string name="privacy_policy">Política de privacidad</string> <string name="privacy_policy">Política de privacidad</string>
<string name="app_info">Información de aplicación</string> <string name="app_info">Información de aplicación</string>
<string name="unknown_error">Error desconocido</string> <string name="unknown_error">Error desconocido</string>
<string name="search_hint">Buscar películas, series, episodios...</string> <string name="search_hint">Buscar películas, series, episodios</string>
<string name="mpv_player">Reproductor MPV</string> <string name="mpv_player">Reproductor MPV</string>
<string name="select_audio_track">Elegir pista de audio</string> <string name="select_audio_track">Elegir pista de audio</string>
<string name="select_subtile_track">Elegir pista de subtitulo</string> <string name="select_subtile_track">Elegir pista de subtitulo</string>

View file

@ -1,5 +1,5 @@
<resources> <resources>
<string name="app_name">Findroid</string> <string name="app_name" translatable="false">Findroid</string>
<string name="app_description">Third-party native Jellyfin app</string> <string name="app_description">Third-party native Jellyfin app</string>
<string name="jellyfin_banner">Jellyfin banner</string> <string name="jellyfin_banner">Jellyfin banner</string>
<string name="add_server">Add server</string> <string name="add_server">Add server</string>
@ -57,14 +57,18 @@
<string name="app_info">App info</string> <string name="app_info">App info</string>
<string name="unknown_error">Unknown error</string> <string name="unknown_error">Unknown error</string>
<string name="search_hint">Search movies, shows, episodes…</string> <string name="search_hint">Search movies, shows, episodes…</string>
<string name="select_a_version">"Select a version"</string>
<string name="select_audio_track">Select audio track</string> <string name="select_audio_track">Select audio track</string>
<string name="select_subtile_track">Select subtitle track</string> <string name="select_subtile_track">Select subtitle track</string>
<string name="select_playback_speed">Select playback speed</string>
<string name="mpv_player">MPV Player</string> <string name="mpv_player">MPV Player</string>
<string name="mpv_player_summary">Use the experimental MPV Player to play videos. MPV has support for more video, audio and subtitle codecs.</string> <string name="mpv_player_summary">Use the experimental MPV Player to play videos. MPV has support for more video, audio and subtitle codecs.</string>
<string name="force_software_decoding">Force software decoding</string> <string name="force_software_decoding">Force software decoding</string>
<string name="force_software_decoding_summary">Disable hardware decoding and use software decoding. Can be useful if hardware decoding gives weird artifacts.</string> <string name="force_software_decoding_summary">Disable hardware decoding and use software decoding. Can be useful if hardware decoding gives weird artifacts.</string>
<string name="sort_by">Sort by</string> <string name="sort_by">Sort by</string>
<string name="sort_order">Sort order</string> <string name="sort_order">Sort order</string>
<string name="close">Close</string>
<string name="share">Share</string>
<string-array name="sort_by_options"> <string-array name="sort_by_options">
<item>Name</item> <item>Name</item>
<item>IMDB Rating</item> <item>IMDB Rating</item>