Disable the connect and login buttons when the app is connecting / logging in
This commit is contained in:
parent
78458d661a
commit
2b2041c569
8 changed files with 14 additions and 11 deletions
|
@ -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())
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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())
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -63,7 +63,7 @@ class ServerSelectFragment : Fragment() {
|
||||||
|
|
||||||
private fun navigateToAddServerFragment() {
|
private fun navigateToAddServerFragment() {
|
||||||
findNavController().navigate(
|
findNavController().navigate(
|
||||||
ServerSelectFragmentDirections.actionServerSelectFragment2ToAddServerFragment3()
|
ServerSelectFragmentDirections.actionServerSelectFragmentToAddServerFragment()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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" />
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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" />
|
||||||
|
|
Loading…
Reference in a new issue