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

View file

@ -1,5 +1,6 @@
package dev.jdtech.jellyfin.viewmodels package dev.jdtech.jellyfin.viewmodels
import android.content.Context
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel 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) { viewModelScope.launch(Dispatchers.IO) {
val serverAddress = ServerAddress(UUID.randomUUID(), currentServerId, address) try {
database.insertServerAddress(serverAddress) val jellyfinApi = JellyfinApi(context)
loadAddresses(currentServerId) 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) { }
} }
} }
} }