diff --git a/core/src/main/java/dev/jdtech/jellyfin/dialogs/AddServerAddressDialog.kt b/core/src/main/java/dev/jdtech/jellyfin/dialogs/AddServerAddressDialog.kt index fc10227b..d6f6183c 100644 --- a/core/src/main/java/dev/jdtech/jellyfin/dialogs/AddServerAddressDialog.kt +++ b/core/src/main/java/dev/jdtech/jellyfin/dialogs/AddServerAddressDialog.kt @@ -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://: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)) { _, _ -> } diff --git a/core/src/main/java/dev/jdtech/jellyfin/viewmodels/ServerAddressesViewModel.kt b/core/src/main/java/dev/jdtech/jellyfin/viewmodels/ServerAddressesViewModel.kt index 4d2bc18c..b61682dc 100644 --- a/core/src/main/java/dev/jdtech/jellyfin/viewmodels/ServerAddressesViewModel.kt +++ b/core/src/main/java/dev/jdtech/jellyfin/viewmodels/ServerAddressesViewModel.kt @@ -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) { } } } }