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:
parent
8c90031165
commit
f711d21f6a
4 changed files with 31 additions and 16 deletions
|
@ -30,10 +30,11 @@ class AddServerFragment : Fragment() {
|
|||
binding.buttonConnect.setOnClickListener {
|
||||
val serverAddress = binding.editTextServerAddress.text.toString()
|
||||
if (serverAddress.isNotBlank()) {
|
||||
viewModel.checkServer(serverAddress)
|
||||
viewModel.checkServer(serverAddress, resources)
|
||||
binding.progressCircular.visibility = View.VISIBLE
|
||||
binding.editTextServerAddressLayout.error = ""
|
||||
} else {
|
||||
binding.editTextServerAddressLayout.error = resources.getString(R.string.add_server_empty_error)
|
||||
binding.editTextServerAddressLayout.error = resources.getString(R.string.add_server_error_empty_address)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.jdtech.jellyfin.viewmodels
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.widget.Toast
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
|
@ -7,6 +8,7 @@ import androidx.lifecycle.ViewModel
|
|||
import androidx.lifecycle.viewModelScope
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dev.jdtech.jellyfin.BaseApplication
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.api.JellyfinApi
|
||||
import dev.jdtech.jellyfin.database.Server
|
||||
import dev.jdtech.jellyfin.database.ServerDatabaseDao
|
||||
|
@ -43,7 +45,7 @@ constructor(
|
|||
* - Connect to server and check if it is a Jellyfin server
|
||||
* - Check if server is not already in Database
|
||||
*/
|
||||
fun checkServer(inputValue: String) {
|
||||
fun checkServer(inputValue: String, resources: Resources) {
|
||||
_error.value = null
|
||||
|
||||
viewModelScope.launch {
|
||||
|
@ -56,7 +58,7 @@ constructor(
|
|||
|
||||
// Check if any servers have been found
|
||||
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.
|
||||
|
@ -69,7 +71,7 @@ constructor(
|
|||
val recommendedServer = if (greatServers.toList().isNotEmpty()) {
|
||||
greatServers.first()
|
||||
} else if (goodServers.toList().isNotEmpty()) {
|
||||
val issuesString = createIssuesString(goodServers.first())
|
||||
val issuesString = createIssuesString(goodServers.first(), resources)
|
||||
Toast.makeText(
|
||||
application,
|
||||
issuesString,
|
||||
|
@ -78,7 +80,7 @@ constructor(
|
|||
goodServers.first()
|
||||
} else {
|
||||
val okServer = okServers.first()
|
||||
val issuesString = createIssuesString(okServer)
|
||||
val issuesString = createIssuesString(okServer, resources)
|
||||
throw Exception(issuesString)
|
||||
}
|
||||
|
||||
|
@ -90,7 +92,7 @@ constructor(
|
|||
Timber.d("Remote server: ${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
|
||||
} else {
|
||||
_error.value = null
|
||||
|
@ -110,28 +112,26 @@ constructor(
|
|||
* @param server The server with issues
|
||||
* @return A presentable string of issues separated with \n
|
||||
*/
|
||||
private fun createIssuesString(server: RecommendedServerInfo): String {
|
||||
val issues = mutableListOf<String>()
|
||||
server.issues.forEach {
|
||||
private fun createIssuesString(server: RecommendedServerInfo, resources: Resources): String {
|
||||
return server.issues.joinToString("\n") {
|
||||
when (it) {
|
||||
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 -> {
|
||||
issues.add("Not a Jellyfin server: ${it.productName}")
|
||||
String.format(resources.getString(R.string.add_server_error_not_jellyfin), it.productName)
|
||||
}
|
||||
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 -> {
|
||||
issues.add("Server is too slow to respond: ${it.responseTime}")
|
||||
String.format(resources.getString(R.string.add_server_error_slow), it.responseTime)
|
||||
}
|
||||
else -> {
|
||||
issues.add("Unknown error")
|
||||
resources.getString(R.string.unknown_error)
|
||||
}
|
||||
}
|
||||
}
|
||||
return issues.joinToString("\n")
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,6 +3,13 @@
|
|||
<string name="app_description">Neoficiální nativní Jellyfin aplikace</string>
|
||||
<string name="jellyfin_banner">Jellyfin baner</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="select_server">Vybrat server</string>
|
||||
<string name="edit_text_server_address_hint">Adresa serveru</string>
|
||||
|
|
|
@ -3,6 +3,13 @@
|
|||
<string name="app_description">Third-party native Jellyfin app</string>
|
||||
<string name="jellyfin_banner">Jellyfin banner</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="select_server">Select server</string>
|
||||
<string name="edit_text_server_address_hint">Server address</string>
|
||||
|
|
Loading…
Reference in a new issue