diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/AddServerFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/AddServerFragment.kt index 200bedab..a9bb9cd5 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/AddServerFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/AddServerFragment.kt @@ -97,15 +97,26 @@ class AddServerFragment : Fragment() { private fun bindUiStateNormal() { binding.buttonConnect.isEnabled = true binding.progressCircular.isVisible = false + if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) { + (binding.editTextServerAddress as AppCompatEditText).isEnabled = true + } else { + binding.editTextServerAddressLayout!!.isEnabled = true + } } private fun bindUiStateError(uiState: AddServerViewModel.UiState.Error) { binding.buttonConnect.isEnabled = true binding.progressCircular.isVisible = false if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) { - (binding.editTextServerAddress as AppCompatEditText).error = uiState.message + (binding.editTextServerAddress as AppCompatEditText).apply { + error = uiState.message + isEnabled = true + } } else { - binding.editTextServerAddressLayout!!.error = uiState.message + binding.editTextServerAddressLayout!!.apply { + error = uiState.message + isEnabled = true + } } } @@ -113,9 +124,15 @@ class AddServerFragment : Fragment() { binding.buttonConnect.isEnabled = false binding.progressCircular.isVisible = true if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) { - (binding.editTextServerAddress as AppCompatEditText).error = null + (binding.editTextServerAddress as AppCompatEditText).apply { + error = null + isEnabled = false + } } else { - binding.editTextServerAddressLayout!!.error = null + binding.editTextServerAddressLayout!!.apply { + error = null + isEnabled = false + } } } diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/LoginFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/LoginFragment.kt index 23bc82a5..b8393412 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/LoginFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/LoginFragment.kt @@ -97,15 +97,30 @@ class LoginFragment : Fragment() { private fun bindUiStateNormal() { binding.buttonLogin.isEnabled = true binding.progressCircular.isVisible = false + if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) { + (binding.editTextUsername as AppCompatEditText).isEnabled = true + (binding.editTextPassword as AppCompatEditText).isEnabled = true + } else { + binding.editTextUsernameLayout!!.isEnabled = true + binding.editTextPasswordLayout!!.isEnabled = true + } } private fun bindUiStateError(uiState: LoginViewModel.UiState.Error) { binding.buttonLogin.isEnabled = true binding.progressCircular.isVisible = false if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) { - (binding.editTextUsername as AppCompatEditText).error = uiState.message + (binding.editTextUsername as AppCompatEditText).apply { + error = uiState.message + isEnabled = true + } + (binding.editTextPassword as AppCompatEditText).isEnabled = true } else { - binding.editTextUsernameLayout!!.error = uiState.message + binding.editTextUsernameLayout!!.apply { + error = uiState.message + isEnabled = true + } + binding.editTextPasswordLayout!!.isEnabled = true } } @@ -113,9 +128,17 @@ class LoginFragment : Fragment() { binding.buttonLogin.isEnabled = false binding.progressCircular.isVisible = true if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) { - (binding.editTextUsername as AppCompatEditText).error = null + (binding.editTextUsername as AppCompatEditText).apply { + error = null + isEnabled = false + } + (binding.editTextPassword as AppCompatEditText).isEnabled = false } else { - binding.editTextUsernameLayout!!.error = null + binding.editTextUsernameLayout!!.apply { + error = null + isEnabled = false + } + binding.editTextPasswordLayout!!.isEnabled = false } } diff --git a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt index 2e25a85b..88550553 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt @@ -95,7 +95,10 @@ constructor( recommended .onCompletion { - if (serverFound) return@onCompletion + if (serverFound) { + serverFound = false + return@onCompletion + } when { goodServers.isNotEmpty() -> { val issuesString = createIssuesString(goodServers.first()) diff --git a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/LoginViewModel.kt b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/LoginViewModel.kt index 3d26eb93..b6ae5377 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/LoginViewModel.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/LoginViewModel.kt @@ -18,7 +18,6 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.jellyfin.sdk.model.api.AuthenticateUserByName -import timber.log.Timber import javax.inject.Inject import kotlin.Exception @@ -111,9 +110,8 @@ constructor( _uiState.emit(UiState.Normal) _navigateToMain.emit(true) } catch (e: Exception) { - Timber.e(e) val message = - if (e.cause?.message?.contains("401") == true) resources.getString(R.string.login_error_wrong_username_password) else resources.getString( + if (e.message?.contains("401") == true) resources.getString(R.string.login_error_wrong_username_password) else resources.getString( R.string.unknown_error ) _uiState.emit(UiState.Error(message))