Fix add server strings (#62)

* Add strings for errors when adding server

* Use add_server_error_version string instead of version

Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
This commit is contained in:
lsrom 2021-10-31 16:09:39 +01:00 committed by GitHub
parent 8c90031165
commit f711d21f6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 16 deletions

View file

@ -30,10 +30,11 @@ class AddServerFragment : Fragment() {
binding.buttonConnect.setOnClickListener { binding.buttonConnect.setOnClickListener {
val serverAddress = binding.editTextServerAddress.text.toString() val serverAddress = binding.editTextServerAddress.text.toString()
if (serverAddress.isNotBlank()) { if (serverAddress.isNotBlank()) {
viewModel.checkServer(serverAddress) viewModel.checkServer(serverAddress, resources)
binding.progressCircular.visibility = View.VISIBLE binding.progressCircular.visibility = View.VISIBLE
binding.editTextServerAddressLayout.error = ""
} else { } else {
binding.editTextServerAddressLayout.error = resources.getString(R.string.add_server_empty_error) binding.editTextServerAddressLayout.error = resources.getString(R.string.add_server_error_empty_address)
} }
} }

View file

@ -1,5 +1,6 @@
package dev.jdtech.jellyfin.viewmodels package dev.jdtech.jellyfin.viewmodels
import android.content.res.Resources
import android.widget.Toast import android.widget.Toast
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
@ -7,6 +8,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import dev.jdtech.jellyfin.BaseApplication import dev.jdtech.jellyfin.BaseApplication
import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.api.JellyfinApi import dev.jdtech.jellyfin.api.JellyfinApi
import dev.jdtech.jellyfin.database.Server import dev.jdtech.jellyfin.database.Server
import dev.jdtech.jellyfin.database.ServerDatabaseDao import dev.jdtech.jellyfin.database.ServerDatabaseDao
@ -43,7 +45,7 @@ constructor(
* - Connect to server and check if it is a Jellyfin server * - Connect to server and check if it is a Jellyfin server
* - Check if server is not already in Database * - Check if server is not already in Database
*/ */
fun checkServer(inputValue: String) { fun checkServer(inputValue: String, resources: Resources) {
_error.value = null _error.value = null
viewModelScope.launch { viewModelScope.launch {
@ -56,7 +58,7 @@ constructor(
// Check if any servers have been found // Check if any servers have been found
if (recommended.toList().isNullOrEmpty()) { if (recommended.toList().isNullOrEmpty()) {
throw Exception("Server not found") throw Exception(resources.getString(R.string.add_server_error_not_found))
} }
// Create separate flow of great, good and ok servers. // Create separate flow of great, good and ok servers.
@ -69,7 +71,7 @@ constructor(
val recommendedServer = if (greatServers.toList().isNotEmpty()) { val recommendedServer = if (greatServers.toList().isNotEmpty()) {
greatServers.first() greatServers.first()
} else if (goodServers.toList().isNotEmpty()) { } else if (goodServers.toList().isNotEmpty()) {
val issuesString = createIssuesString(goodServers.first()) val issuesString = createIssuesString(goodServers.first(), resources)
Toast.makeText( Toast.makeText(
application, application,
issuesString, issuesString,
@ -78,7 +80,7 @@ constructor(
goodServers.first() goodServers.first()
} else { } else {
val okServer = okServers.first() val okServer = okServers.first()
val issuesString = createIssuesString(okServer) val issuesString = createIssuesString(okServer, resources)
throw Exception(issuesString) throw Exception(issuesString)
} }
@ -90,7 +92,7 @@ constructor(
Timber.d("Remote server: ${recommendedServer.systemInfo.getOrNull()?.id}") Timber.d("Remote server: ${recommendedServer.systemInfo.getOrNull()?.id}")
if (serverAlreadyInDatabase(recommendedServer.systemInfo.getOrNull()?.id)) { if (serverAlreadyInDatabase(recommendedServer.systemInfo.getOrNull()?.id)) {
_error.value = "Server already added" _error.value = resources.getString(R.string.add_server_error_already_added)
_navigateToLogin.value = false _navigateToLogin.value = false
} else { } else {
_error.value = null _error.value = null
@ -110,28 +112,26 @@ constructor(
* @param server The server with issues * @param server The server with issues
* @return A presentable string of issues separated with \n * @return A presentable string of issues separated with \n
*/ */
private fun createIssuesString(server: RecommendedServerInfo): String { private fun createIssuesString(server: RecommendedServerInfo, resources: Resources): String {
val issues = mutableListOf<String>() return server.issues.joinToString("\n") {
server.issues.forEach {
when (it) { when (it) {
is RecommendedServerIssue.OutdatedServerVersion -> { is RecommendedServerIssue.OutdatedServerVersion -> {
issues.add("Server version outdated: ${it.version} \nPlease update your server") String.format(resources.getString(R.string.add_server_error_outdated), it.version)
} }
is RecommendedServerIssue.InvalidProductName -> { is RecommendedServerIssue.InvalidProductName -> {
issues.add("Not a Jellyfin server: ${it.productName}") String.format(resources.getString(R.string.add_server_error_not_jellyfin), it.productName)
} }
is RecommendedServerIssue.UnsupportedServerVersion -> { is RecommendedServerIssue.UnsupportedServerVersion -> {
issues.add("Unsupported server version: ${it.version} \nPlease update your server") String.format(resources.getString(R.string.add_server_error_version), it.version)
} }
is RecommendedServerIssue.SlowResponse -> { is RecommendedServerIssue.SlowResponse -> {
issues.add("Server is too slow to respond: ${it.responseTime}") String.format(resources.getString(R.string.add_server_error_slow), it.responseTime)
} }
else -> { else -> {
issues.add("Unknown error") resources.getString(R.string.unknown_error)
} }
} }
} }
return issues.joinToString("\n")
} }
/** /**

View file

@ -3,6 +3,13 @@
<string name="app_description">Neoficiální nativní Jellyfin aplikace</string> <string name="app_description">Neoficiální nativní Jellyfin aplikace</string>
<string name="jellyfin_banner">Jellyfin baner</string> <string name="jellyfin_banner">Jellyfin baner</string>
<string name="add_server">Přidat server</string> <string name="add_server">Přidat server</string>
<string name="add_server_error_outdated">Zastaralá verze serveru: %1$s. Prosím aktualizujte Váš server</string>
<string name="add_server_error_not_jellyfin">Nejedná se o Jellyfin server: %1$s</string>
<string name="add_server_error_version">Nepodporovaná verze serveru: %1$s. Prosím aktualizujte Váš server</string>
<string name="add_server_error_slow">Serveru trvalo příliš dlouho odpovědět: %1$s</string>
<string name="add_server_error_already_added">Tento server už je přidán</string>
<string name="add_server_error_empty_address">Prázdná adresa serveru</string>
<string name="add_server_error_not_found">Server not found</string>
<string name="login">Přihlásit</string> <string name="login">Přihlásit</string>
<string name="select_server">Vybrat server</string> <string name="select_server">Vybrat server</string>
<string name="edit_text_server_address_hint">Adresa serveru</string> <string name="edit_text_server_address_hint">Adresa serveru</string>

View file

@ -3,6 +3,13 @@
<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>
<string name="add_server_error_outdated">Server version outdated: %1$s. Please update your server</string>
<string name="add_server_error_not_jellyfin">Not a Jellyfin server: %1$s</string>
<string name="add_server_error_version">Unsupported server version: %1$s. Please update your server</string>
<string name="add_server_error_slow">Server is too slow to respond: %1$s</string>
<string name="add_server_error_already_added">Server already added</string>
<string name="add_server_error_empty_address">Empty server address</string>
<string name="add_server_error_not_found">Server not found</string>
<string name="login">Login</string> <string name="login">Login</string>
<string name="select_server">Select server</string> <string name="select_server">Select server</string>
<string name="edit_text_server_address_hint">Server address</string> <string name="edit_text_server_address_hint">Server address</string>