fix: check if address is the same jellyfin server

This commit is contained in:
Jarne Demeulemeester 2024-03-04 20:46:06 +01:00
parent c067979aff
commit c75a048cf2
No known key found for this signature in database
GPG key ID: 1E5C6AFBD622E9F5
2 changed files with 16 additions and 5 deletions

View file

@ -2,6 +2,7 @@ package dev.jdtech.jellyfin.dialogs
import android.app.Dialog
import android.os.Bundle
import android.text.InputType
import android.widget.EditText
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@ -15,13 +16,14 @@ class AddServerAddressDialog(
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val editText = EditText(this.context)
editText.hint = "http://<server_ip>:8096"
editText.inputType = InputType.TYPE_TEXT_VARIATION_URI
return activity?.let { activity ->
val builder = MaterialAlertDialogBuilder(activity)
builder
.setTitle(getString(R.string.add_server_address))
.setView(editText)
.setPositiveButton(getString(R.string.add)) { _, _ ->
viewModel.addAddress(editText.text.toString())
viewModel.addAddress(requireContext(), editText.text.toString())
}
.setNegativeButton(getString(R.string.cancel)) { _, _ ->
}

View file

@ -1,5 +1,6 @@
package dev.jdtech.jellyfin.viewmodels
import android.content.Context
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
@ -79,11 +80,19 @@ constructor(
}
}
fun addAddress(address: String) {
fun addAddress(context: Context, address: String) {
viewModelScope.launch(Dispatchers.IO) {
val serverAddress = ServerAddress(UUID.randomUUID(), currentServerId, address)
database.insertServerAddress(serverAddress)
loadAddresses(currentServerId)
try {
val jellyfinApi = JellyfinApi(context)
jellyfinApi.api.baseUrl = address
val systemInfo by jellyfinApi.systemApi.getPublicSystemInfo()
if (systemInfo.id != currentServerId) {
return@launch
}
val serverAddress = ServerAddress(UUID.randomUUID(), currentServerId, address)
database.insertServerAddress(serverAddress)
loadAddresses(currentServerId)
} catch (_: Exception) { }
}
}
}