Disable the connect and login buttons when the app is connecting / logging in

This commit is contained in:
Jarne Demeulemeester 2022-07-03 14:29:23 +02:00
parent 78458d661a
commit 2b2041c569
No known key found for this signature in database
GPG key ID: 65C6006F2032DD14
8 changed files with 14 additions and 11 deletions

View file

@ -67,15 +67,18 @@ class AddServerFragment : Fragment() {
}
private fun bindUiStateNormal() {
binding.buttonConnect.isEnabled = true
binding.progressCircular.isVisible = false
}
private fun bindUiStateError(uiState: AddServerViewModel.UiState.Error) {
binding.buttonConnect.isEnabled = true
binding.progressCircular.isVisible = false
binding.editTextServerAddressLayout.error = uiState.message
}
private fun bindUiStateLoading() {
binding.buttonConnect.isEnabled = false
binding.progressCircular.isVisible = true
binding.editTextServerAddressLayout.error = null
}
@ -86,6 +89,6 @@ class AddServerFragment : Fragment() {
}
private fun navigateToLoginFragment() {
findNavController().navigate(AddServerFragmentDirections.actionAddServerFragment3ToLoginFragment2())
findNavController().navigate(AddServerFragmentDirections.actionAddServerFragmentToLoginFragment())
}
}

View file

@ -67,15 +67,18 @@ class LoginFragment : Fragment() {
}
private fun bindUiStateNormal() {
binding.buttonLogin.isEnabled = true
binding.progressCircular.isVisible = false
}
private fun bindUiStateError(uiState: LoginViewModel.UiState.Error) {
binding.buttonLogin.isEnabled = true
binding.progressCircular.isVisible = false
binding.editTextUsernameLayout.error = uiState.message
}
private fun bindUiStateLoading() {
binding.buttonLogin.isEnabled = false
binding.progressCircular.isVisible = true
binding.editTextUsernameLayout.error = null
}
@ -88,6 +91,6 @@ class LoginFragment : Fragment() {
}
private fun navigateToMainActivity() {
findNavController().navigate(LoginFragmentDirections.actionLoginFragment2ToNavigationHome())
findNavController().navigate(LoginFragmentDirections.actionLoginFragmentToNavigationHome())
}
}

View file

@ -63,7 +63,7 @@ class ServerSelectFragment : Fragment() {
private fun navigateToAddServerFragment() {
findNavController().navigate(
ServerSelectFragmentDirections.actionServerSelectFragment2ToAddServerFragment3()
ServerSelectFragmentDirections.actionServerSelectFragmentToAddServerFragment()
)
}

View file

@ -32,7 +32,6 @@ constructor(
private val resources: Resources = application.resources
private val uiState = MutableStateFlow<UiState>(UiState.Normal)
private val navigateToLogin = MutableSharedFlow<Boolean>()
sealed class UiState {
@ -58,7 +57,6 @@ constructor(
* @param inputValue Can be an ip address or hostname
*/
fun checkServer(inputValue: String) {
viewModelScope.launch {
uiState.emit(UiState.Loading)

View file

@ -31,7 +31,6 @@ constructor(
private val resources: Resources = application.resources
private val uiState = MutableStateFlow<UiState>(UiState.Normal)
private val navigateToMain = MutableSharedFlow<Boolean>()
sealed class UiState {

View file

@ -80,7 +80,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:elevation="8dp"
android:indeterminateTint="?attr/colorOnPrimary"
android:indeterminateTint="?attr/colorPrimary"
android:padding="8dp"
android:visibility="invisible" />

View file

@ -97,7 +97,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:elevation="8dp"
android:indeterminateTint="?attr/colorOnPrimary"
android:indeterminateTint="?attr/colorPrimary"
android:padding="8dp"
android:visibility="invisible" />
</RelativeLayout>

View file

@ -249,7 +249,7 @@
android:label="@string/add_server"
tools:layout="@layout/fragment_add_server">
<action
android:id="@+id/action_addServerFragment3_to_loginFragment2"
android:id="@+id/action_addServerFragment_to_loginFragment"
app:destination="@id/loginFragment" />
</fragment>
<fragment
@ -258,7 +258,7 @@
android:label="@string/select_server"
tools:layout="@layout/fragment_server_select">
<action
android:id="@+id/action_serverSelectFragment2_to_addServerFragment3"
android:id="@+id/action_serverSelectFragment_to_addServerFragment"
app:destination="@id/addServerFragment" />
<action
android:id="@+id/action_serverSelectFragment_to_homeFragment"
@ -272,7 +272,7 @@
android:label="@string/login"
tools:layout="@layout/fragment_login">
<action
android:id="@+id/action_loginFragment2_to_navigation_home"
android:id="@+id/action_loginFragment_to_navigation_home"
app:destination="@id/homeFragment"
app:popUpTo="@id/homeFragment"
app:popUpToInclusive="true" />