fix: check if address is the same jellyfin server
This commit is contained in:
parent
c067979aff
commit
c75a048cf2
2 changed files with 16 additions and 5 deletions
|
@ -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)) { _, _ ->
|
||||
}
|
||||
|
|
|
@ -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) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue