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.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)) { _, _ ->
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue