MemberAuthActivity.kt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.develop.auth.ui
  2. import android.os.Bundle
  3. import android.view.LayoutInflater
  4. import android.view.View
  5. import androidx.fragment.app.Fragment
  6. import com.alibaba.android.arouter.facade.annotation.Autowired
  7. import com.alibaba.android.arouter.facade.annotation.Route
  8. import com.alibaba.android.arouter.launcher.ARouter
  9. import com.develop.auth.R
  10. import com.develop.auth.databinding.ActivityMemberAuthBinding
  11. import com.develop.auth.viewmodel.FragmentTag
  12. import com.develop.auth.viewmodel.MemberViewModel
  13. import com.develop.base.ext.getSN
  14. import com.develop.base.ext.isBrand011A
  15. import com.develop.base.ext.isBrand036I
  16. import com.develop.base.ext.isBrand054A
  17. import com.develop.base.ext.isNightTheme
  18. import com.develop.base.ext.navigateTo
  19. import com.develop.base.ext.setVisible
  20. import com.develop.base.util.MMkvUtils
  21. import com.develop.common.router.Screens
  22. import com.develop.common.tag.LOGIN_TAG
  23. import com.develop.common.ui.CommonBVMActivity
  24. @Route(path = Screens.Auth.MEMBER)
  25. class MemberAuthActivity : CommonBVMActivity<ActivityMemberAuthBinding, MemberViewModel>() {
  26. @JvmField
  27. @Autowired(name = "enter_from_home")
  28. var enterFromHome: Boolean = false
  29. @JvmField
  30. @Autowired(name = "isTokenOut")
  31. var isTokenOut: Boolean = false
  32. private val memberForgotFragment = MemberForgotFragment()
  33. private val memberLaunchFragment = MemberLaunchFragment()
  34. private val memberLoginBinding = MemberLoginFragment()
  35. private val memberProfileFragment = MemberProfileFragment()
  36. private val memberRegisterFragment = MemberRegisterFragment()
  37. private val fragmentMap = HashMap<FragmentTag, Fragment>()
  38. override fun createViewModel(): MemberViewModel {
  39. return getViewModel(MemberViewModel::class.java)
  40. }
  41. override fun createViewBinding(inflater: LayoutInflater): ActivityMemberAuthBinding {
  42. return ActivityMemberAuthBinding.inflate(inflater)
  43. }
  44. override fun onCreate(savedInstanceState: Bundle?) {
  45. super.onCreate(savedInstanceState)
  46. ARouter.getInstance().inject(this)
  47. if (isNightTheme()) {
  48. binding.tvSkip.setBackgroundResource(0)
  49. } else {
  50. binding.tvSkip.setBackgroundResource(com.develop.common.R.drawable.bg_skip_text)
  51. }
  52. if (isBrand036I()) {
  53. //binding.ivLogo.setVisible()
  54. binding.ivBanner.setImageResource(com.develop.common.R.drawable.guide_bg_036i)
  55. } else if (getSN().startsWith("002D")){
  56. binding.ivBanner.setImageResource(com.develop.common.R.drawable.account_background_002d)
  57. }else if (isBrand011A()){
  58. binding.ivBanner.setImageResource(com.develop.common.R.drawable.account_background_011a)
  59. }else if (isBrand054A()){
  60. binding.ivBanner.setImageResource(com.develop.common.R.drawable.account_background_054a)
  61. }else if (getSN().startsWith("045")){
  62. binding.ivBanner.setImageResource(com.develop.common.R.drawable.account_background_045a)
  63. }
  64. initFragmentList()
  65. viewModel.enterFromHome = enterFromHome
  66. binding.tvSkip.setOnClickListener {
  67. if (enterFromHome) {
  68. finish()
  69. } else {
  70. navigateTo(Screens.Main.ENTRANCE_CHOSEN)
  71. finish()
  72. }
  73. }
  74. viewModel.fragmentChangeLiveData.observe(this) {
  75. fragmentMap[it]?.apply {
  76. replaceFragment(R.id.fl_container, this)
  77. }
  78. }
  79. if (isTokenOut) {
  80. ensureFragmentAdd(
  81. R.id.fl_container,
  82. MemberLoginFragment()
  83. )
  84. } else {
  85. if (MMkvUtils.getBool(LOGIN_TAG)) {
  86. addFragment(
  87. R.id.fl_container,
  88. memberProfileFragment
  89. )
  90. } else {
  91. addFragment(
  92. R.id.fl_container,
  93. memberLaunchFragment
  94. )
  95. }
  96. }
  97. }
  98. private fun initFragmentList() {
  99. fragmentMap[FragmentTag.MEMBER_FORGER] = memberForgotFragment
  100. fragmentMap[FragmentTag.MEMBER_LAUNCH] = memberLaunchFragment
  101. fragmentMap[FragmentTag.MEMBER_LOGIN] = memberLoginBinding
  102. fragmentMap[FragmentTag.MEMBER_PROFILE] = memberProfileFragment
  103. fragmentMap[FragmentTag.MEMBER_REGISTER] = memberRegisterFragment
  104. }
  105. fun getRootView(): View {
  106. return binding.flRoot
  107. }
  108. override fun onDestroy() {
  109. super.onDestroy()
  110. fragmentMap.clear()
  111. }
  112. }