Skip to content

Instantly share code, notes, and snippets.

@Ahmedgadein
Created March 21, 2022 11:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Ahmedgadein/4167e0301429cc76d5f75381b9cf62a2 to your computer and use it in GitHub Desktop.
Save Ahmedgadein/4167e0301429cc76d5f75381b9cf62a2 to your computer and use it in GitHub Desktop.
class LoginFragment : Fragment(){
private val viewModel: LoginViewModel by viewModels()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val binding = LoginFragmentBinding.inflate(inflater, container, false)
// ...
binding.loginButton.setOnClickListener {
val user: User = ...
viewModel.onLoginAttempt(user)
}
lifecycleScope.launchWhenCreated {
viewModel.loginUiState.collect {
// Show snackbar when an error occurs
it.errorMessages.firstOrNull()?.let { message ->
showSnackbar(message)
viewModel.userMessageShown()
}
if(it.navigateToHome){
// Navigate using navigation components
navigateToHomeFragment()
}
if(it.navigateToRegistration){
// Navigate using navigation components
navigateToRegistrationFragment()
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment