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 {
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue