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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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