@@ -2,21 +2,20 @@ package com.monstarlab.features.login
2
2
3
3
import android.os.Bundle
4
4
import android.view.View
5
+ import androidx.core.view.isVisible
5
6
import androidx.lifecycle.lifecycleScope
6
- import androidx.lifecycle.viewModelScope
7
7
import androidx.navigation.fragment.findNavController
8
8
import androidx.transition.TransitionManager
9
9
import com.google.android.material.snackbar.Snackbar
10
10
import com.monstarlab.R
11
11
import com.monstarlab.arch.base.BaseFragment
12
12
import com.monstarlab.arch.extensions.clicks
13
13
import com.monstarlab.arch.extensions.collectFlow
14
- import com.monstarlab.arch.extensions.combineFlows
15
14
import com.monstarlab.arch.extensions.viewBinding
15
+ import com.monstarlab.arch.extensions.visibilityFlow
16
16
import com.monstarlab.databinding.FragmentLoginBinding
17
17
import kotlinx.coroutines.flow.launchIn
18
18
import kotlinx.coroutines.flow.onEach
19
- import kotlinx.coroutines.launch
20
19
21
20
class LoginFragment : BaseFragment (R .layout.fragment_login) {
22
21
@@ -28,8 +27,8 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
28
27
29
28
binding.loginButton.clicks().onEach {
30
29
viewModel.login(
31
- binding.loginEmailEditText.text.toString(),
32
- binding.loginPasswordEditText.text.toString()
30
+ binding.loginEmailEditText.text.toString(),
31
+ binding.loginPasswordEditText.text.toString()
33
32
)
34
33
}.launchIn(lifecycleScope)
35
34
@@ -41,12 +40,13 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
41
40
Snackbar .make(view, viewError.message, Snackbar .LENGTH_SHORT ).show()
42
41
}
43
42
43
+ visibilityFlow(viewModel.loadingFlow, binding.loginProgressBar)
44
+
44
45
collectFlow(viewModel.loadingFlow) { loading ->
45
46
TransitionManager .beginDelayedTransition(binding.root)
46
47
binding.loginEmailEditText.isEnabled = ! loading
47
48
binding.loginPasswordEditText.isEnabled = ! loading
48
- binding.loginButton.visibility = if (loading) View .GONE else View .VISIBLE
49
- binding.loginProgressBar.visibility = if (loading) View .VISIBLE else View .GONE
49
+ binding.loginButton.isVisible = ! loading
50
50
}
51
51
}
52
52
}
0 commit comments