Disable input elements in LoginFragment and AddServerFragment when loading
Fix a bug when adding a server keeps loading Fix "Invalid username or password" error message
This commit is contained in:
parent
7b85df6e69
commit
8f117ccacb
4 changed files with 53 additions and 12 deletions
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in a new issue