LoginNavigation.kt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.fastest.pass.login.utils
  2. import androidx.lifecycle.lifecycleScope
  3. import androidx.navigation.fragment.findNavController
  4. import androidx.navigation.navOptions
  5. import com.fastest.pass.R
  6. import com.fastest.pass.login.presentation.ui.LoginFragment
  7. import kotlin.math.log
  8. class LoginNavigation {
  9. fun navigate(loginFragment: LoginFragment) {
  10. loginFragment.lifecycleScope.launchWhenStarted {
  11. loginFragment.viewmodel.router.collect { router ->
  12. when (router) {
  13. LoginRoute.OpenSignUp -> {
  14. loginFragment.findNavController().navigate(R.id.signupFragment)
  15. }
  16. LoginRoute.OpenForgotPassword -> {
  17. loginFragment.findNavController().navigate(R.id.forgotPasswordFragment)
  18. }
  19. LoginRoute.OpenNoneScreen -> {}
  20. LoginRoute.GoBack -> {
  21. loginFragment.findNavController().popBackStack()
  22. }
  23. LoginRoute.OpenMasterLoginScreen -> {
  24. loginFragment.findNavController().navigate(R.id.masterLoginFragment)
  25. }
  26. LoginRoute.OpenDashBoardScreen -> {
  27. loginFragment.findNavController().navigate(
  28. R.id.dashboardFragment,
  29. null,
  30. navOptions {
  31. popUpTo(loginFragment.findNavController().graph.id) {
  32. inclusive = true
  33. }
  34. launchSingleTop = true
  35. }
  36. )
  37. }
  38. }
  39. loginFragment.viewmodel.navigateTo(LoginRoute.OpenNoneScreen)
  40. }
  41. }
  42. }
  43. }