LoginFragment.kt 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package com.vpn.fastestvpnservice.fragments
  2. import android.content.Intent
  3. import android.os.Bundle
  4. import android.text.InputType
  5. import android.util.Log
  6. import android.view.LayoutInflater
  7. import android.view.View
  8. import android.view.ViewGroup
  9. import android.webkit.WebViewFragment
  10. import android.widget.Toast
  11. import androidx.lifecycle.Observer
  12. import com.google.firebase.BuildConfig
  13. import com.vpn.fastestvpnservice.R
  14. import com.vpn.fastestvpnservice.beans.DataResponse
  15. import com.vpn.fastestvpnservice.beans.UserResponse
  16. import com.vpn.fastestvpnservice.constants.AppConstant
  17. import com.vpn.fastestvpnservice.databinding.FragmentLoginBinding
  18. import com.vpn.fastestvpnservice.utils.SnackBarUtils
  19. import com.vpn.fastestvpnservice.utils.StaticMethods
  20. import com.vpn.fastestvpnservice.viewmodels.LoginViewModel
  21. import com.vpn.fastestvpnservice.widgets.SimpleAppWidget
  22. import de.blinkt.openvpn.core.App
  23. class LoginFragment : BaseFragment() {
  24. lateinit var loginViewModel: LoginViewModel
  25. // lateinit var upgradePriceViewModel: UpgradePriceViewModel
  26. var isPasswordVisible = false
  27. var isTv = false
  28. lateinit var loginBinding: FragmentLoginBinding
  29. override fun onCreateView(
  30. inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
  31. ): View? {
  32. loginBinding = FragmentLoginBinding.inflate(inflater)
  33. return loginBinding.root
  34. // return inflater.inflate(R.layout.fragment_login, container, false)
  35. }
  36. override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
  37. super.onViewCreated(view, savedInstanceState)
  38. // etEmail.setText("mohammad.asif@abtach.org")
  39. // etPassword.setText("Mohammad@3")
  40. // etEmail.setText("sagartestaccount@gmail.com")
  41. // etPassword.setText("test112233")
  42. // etEmail.setText("testontv@yopmail.com")
  43. // etPassword.setText("test")
  44. if (StaticMethods.isTV(requireActivity())) {
  45. isTv = true
  46. loginBinding.etEmail.background = resources.getDrawable(R.drawable.edittext_selector_state)
  47. loginBinding.etPassword.background = resources.getDrawable(R.drawable.edittext_selector_state)
  48. loginBinding.tvLogin.background = resources.getDrawable(R.drawable.button_selector_state)
  49. }
  50. loginViewModel = LoginViewModel()
  51. // upgradePriceViewModel = UpgradePriceViewModel(requireActivity())
  52. // viewModelObserver()
  53. // clickListeners()
  54. }
  55. fun clickListeners() {
  56. // loginBinding.tvSignup.setOnClickListener {
  57. // fragmentNavigator.replaceFragmentWithBackStack(SignUpFragment.newInstance())
  58. // }
  59. loginBinding.tvLogin.setOnClickListener {
  60. if (customValidation.isValidText(loginBinding.etEmail, "Email") && customValidation.isValidText(
  61. loginBinding.etPassword, "Password"
  62. ) && customValidation.isValidPassword(loginBinding.etPassword)
  63. ) {
  64. // if (isVisible) mainActivity.showLoading()
  65. if (isTv)
  66. {
  67. loginViewModel.loginRequest(
  68. loginBinding.etEmail.text.toString(),
  69. loginBinding.etPassword.text.toString(),
  70. "tv",
  71. android.os.Build.VERSION.RELEASE,
  72. BuildConfig.VERSION_NAME
  73. )
  74. }
  75. else {
  76. loginViewModel.loginRequest(
  77. loginBinding.etEmail.text.toString(),
  78. loginBinding.etPassword.text.toString(),
  79. "android",
  80. android.os.Build.VERSION.RELEASE,
  81. BuildConfig.VERSION_NAME
  82. )
  83. }
  84. }
  85. }
  86. // loginBinding.tvForgotPassword.setOnClickListener {
  87. // fragmentNavigator.replaceFragmentWithBackStack(
  88. // .newInstance(
  89. // AppConstant.CHANGE_PASSWORD_URL, getString(R.string.forgot_password)
  90. // )
  91. // )
  92. // }
  93. loginBinding.ivEye.setOnClickListener(View.OnClickListener {
  94. if (isPasswordVisible) {
  95. loginBinding.ivEye.setImageResource(R.drawable.ic_hide_password)
  96. loginBinding.etPassword.inputType =
  97. InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD
  98. loginBinding.etPassword.setSelection(loginBinding.etPassword.text.toString().length)
  99. } else {
  100. loginBinding.ivEye.setImageResource(R.drawable.ic_show_password)
  101. loginBinding.etPassword.inputType = InputType.TYPE_CLASS_TEXT
  102. loginBinding.etPassword.setSelection(loginBinding.etPassword.text.toString().length)
  103. }
  104. isPasswordVisible = !isPasswordVisible
  105. })
  106. }
  107. fun viewModelObserver() {
  108. loginViewModel.mutableLiveDataUserResponse.observe(
  109. mainActivity,
  110. Observer<DataResponse<UserResponse>> {
  111. // if (isVisible) mainActivity.hideLoading()
  112. it?.let {
  113. if (it.status) {
  114. it.data?.let {
  115. prefHelper.savePassword(loginBinding.etPassword?.text.toString())
  116. prefHelper.saveUser(it)
  117. it.wireguard?.let { it1 -> prefHelper.saveWireGuard(it1) }
  118. it.product?.let { it1 -> prefHelper.saveProduct(it1) }
  119. prefHelper.saveEnabledProtocols(it.enabled_protocols)
  120. prefHelper.saveAvailableProtocols(it.available_protocols)
  121. prefHelper.saveXPlatformToken(it.userinfo?.email + "_" + System.currentTimeMillis())
  122. prefHelper.saveAdBlockState(false)
  123. it.servers?.let {
  124. prefHelper.saveServerData(it)
  125. }
  126. Log.d("bearer token", it.token.toString())
  127. // upgradePriceViewModel.getProducts()
  128. prefHelper.getFcmToken().let {
  129. loginViewModel.sendFcmToken(it)
  130. Log.d("fcm token get", prefHelper.getFcmToken())
  131. }
  132. // prefHelper.saveRadioBtnSplitPos(0)
  133. val widgetIntent = Intent(context, SimpleAppWidget::class.java)
  134. widgetIntent.action = SimpleAppWidget.ACTION_LOGIN
  135. context?.sendBroadcast(widgetIntent)
  136. fragmentNavigator.clearAllFragments()
  137. if (App.isAndroidTvBox)
  138. {
  139. /* Android-TV,Box APK */
  140. fragmentNavigator.replaceFragmentWithBackStackTv(TvHomeFragment.newInstance(), "tv_home")
  141. }
  142. else {
  143. /* Normal APK */
  144. if (isTv) {
  145. fragmentNavigator.replaceFragmentWithBackStackTv(
  146. TvHomeFragment.newInstance(), "tv_home")
  147. }
  148. else {
  149. fragmentNavigator.replaceFragmentWithBackStack(
  150. TvHomeFragment.newInstance()
  151. )
  152. }
  153. }
  154. }
  155. } else {
  156. SnackBarUtils.showSnackBar(view, it.message, Toast.LENGTH_SHORT)
  157. // UIHelper.showToast(it.message)
  158. }
  159. }
  160. })
  161. loginViewModel.mutableLiveDataUserResponseErrorStatus.observe(mainActivity, Observer{
  162. if (it) {
  163. // if (isVisible) mainActivity.hideLoading()
  164. SnackBarUtils.showSnackBar(view, getString(R.string.something_went_wrong), Toast.LENGTH_SHORT)
  165. }
  166. })
  167. loginViewModel.mutableLiveDataFcm.observe(
  168. mainActivity,
  169. Observer {
  170. it.message?.let { it1 -> Log.d(tag, "message of fcm" + it1) }
  171. }
  172. )
  173. }
  174. override fun setTitleBar() {
  175. // setupUI((mainActivity).titleBar, (mainActivity).bottomBar)
  176. }
  177. // private fun setupUI(titleBar: TitleBar, bottomBar: BottomBar) {
  178. // titleBar.hideTitleBar()
  179. // bottomBar.hideBottomBar()
  180. // }
  181. companion object {
  182. fun newInstance(): LoginFragment {
  183. return LoginFragment()
  184. }
  185. }
  186. }