package com.vpn.fastestvpnservice.fragments import android.content.Intent import android.os.Bundle import android.text.InputType import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.webkit.WebViewFragment import android.widget.Toast import androidx.lifecycle.Observer import com.google.firebase.BuildConfig import com.vpn.fastestvpnservice.R import com.vpn.fastestvpnservice.beans.DataResponse import com.vpn.fastestvpnservice.beans.UserResponse import com.vpn.fastestvpnservice.constants.AppConstant import com.vpn.fastestvpnservice.databinding.FragmentLoginBinding import com.vpn.fastestvpnservice.utils.SnackBarUtils import com.vpn.fastestvpnservice.utils.StaticMethods import com.vpn.fastestvpnservice.viewmodels.LoginViewModel import com.vpn.fastestvpnservice.widgets.SimpleAppWidget import de.blinkt.openvpn.core.App class LoginFragment : BaseFragment() { lateinit var loginViewModel: LoginViewModel // lateinit var upgradePriceViewModel: UpgradePriceViewModel var isPasswordVisible = false var isTv = false lateinit var loginBinding: FragmentLoginBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { loginBinding = FragmentLoginBinding.inflate(inflater) return loginBinding.root // return inflater.inflate(R.layout.fragment_login, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // etEmail.setText("mohammad.asif@abtach.org") // etPassword.setText("Mohammad@3") // etEmail.setText("sagartestaccount@gmail.com") // etPassword.setText("test112233") // etEmail.setText("testontv@yopmail.com") // etPassword.setText("test") if (StaticMethods.isTV(requireActivity())) { isTv = true loginBinding.etEmail.background = resources.getDrawable(R.drawable.edittext_selector_state) loginBinding.etPassword.background = resources.getDrawable(R.drawable.edittext_selector_state) loginBinding.tvLogin.background = resources.getDrawable(R.drawable.button_selector_state) } loginViewModel = LoginViewModel() // upgradePriceViewModel = UpgradePriceViewModel(requireActivity()) // viewModelObserver() // clickListeners() } fun clickListeners() { // loginBinding.tvSignup.setOnClickListener { // fragmentNavigator.replaceFragmentWithBackStack(SignUpFragment.newInstance()) // } loginBinding.tvLogin.setOnClickListener { if (customValidation.isValidText(loginBinding.etEmail, "Email") && customValidation.isValidText( loginBinding.etPassword, "Password" ) && customValidation.isValidPassword(loginBinding.etPassword) ) { // if (isVisible) mainActivity.showLoading() if (isTv) { loginViewModel.loginRequest( loginBinding.etEmail.text.toString(), loginBinding.etPassword.text.toString(), "tv", android.os.Build.VERSION.RELEASE, BuildConfig.VERSION_NAME ) } else { loginViewModel.loginRequest( loginBinding.etEmail.text.toString(), loginBinding.etPassword.text.toString(), "android", android.os.Build.VERSION.RELEASE, BuildConfig.VERSION_NAME ) } } } // loginBinding.tvForgotPassword.setOnClickListener { // fragmentNavigator.replaceFragmentWithBackStack( // .newInstance( // AppConstant.CHANGE_PASSWORD_URL, getString(R.string.forgot_password) // ) // ) // } loginBinding.ivEye.setOnClickListener(View.OnClickListener { if (isPasswordVisible) { loginBinding.ivEye.setImageResource(R.drawable.ic_hide_password) loginBinding.etPassword.inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD loginBinding.etPassword.setSelection(loginBinding.etPassword.text.toString().length) } else { loginBinding.ivEye.setImageResource(R.drawable.ic_show_password) loginBinding.etPassword.inputType = InputType.TYPE_CLASS_TEXT loginBinding.etPassword.setSelection(loginBinding.etPassword.text.toString().length) } isPasswordVisible = !isPasswordVisible }) } fun viewModelObserver() { loginViewModel.mutableLiveDataUserResponse.observe( mainActivity, Observer> { // if (isVisible) mainActivity.hideLoading() it?.let { if (it.status) { it.data?.let { prefHelper.savePassword(loginBinding.etPassword?.text.toString()) prefHelper.saveUser(it) it.wireguard?.let { it1 -> prefHelper.saveWireGuard(it1) } it.product?.let { it1 -> prefHelper.saveProduct(it1) } prefHelper.saveEnabledProtocols(it.enabled_protocols) prefHelper.saveAvailableProtocols(it.available_protocols) prefHelper.saveXPlatformToken(it.userinfo?.email + "_" + System.currentTimeMillis()) prefHelper.saveAdBlockState(false) it.servers?.let { prefHelper.saveServerData(it) } Log.d("bearer token", it.token.toString()) // upgradePriceViewModel.getProducts() prefHelper.getFcmToken().let { loginViewModel.sendFcmToken(it) Log.d("fcm token get", prefHelper.getFcmToken()) } // prefHelper.saveRadioBtnSplitPos(0) val widgetIntent = Intent(context, SimpleAppWidget::class.java) widgetIntent.action = SimpleAppWidget.ACTION_LOGIN context?.sendBroadcast(widgetIntent) fragmentNavigator.clearAllFragments() if (App.isAndroidTvBox) { /* Android-TV,Box APK */ fragmentNavigator.replaceFragmentWithBackStackTv(TvHomeFragment.newInstance(), "tv_home") } else { /* Normal APK */ if (isTv) { fragmentNavigator.replaceFragmentWithBackStackTv( TvHomeFragment.newInstance(), "tv_home") } else { fragmentNavigator.replaceFragmentWithBackStack( TvHomeFragment.newInstance() ) } } } } else { SnackBarUtils.showSnackBar(view, it.message, Toast.LENGTH_SHORT) // UIHelper.showToast(it.message) } } }) loginViewModel.mutableLiveDataUserResponseErrorStatus.observe(mainActivity, Observer{ if (it) { // if (isVisible) mainActivity.hideLoading() SnackBarUtils.showSnackBar(view, getString(R.string.something_went_wrong), Toast.LENGTH_SHORT) } }) loginViewModel.mutableLiveDataFcm.observe( mainActivity, Observer { it.message?.let { it1 -> Log.d(tag, "message of fcm" + it1) } } ) } override fun setTitleBar() { // setupUI((mainActivity).titleBar, (mainActivity).bottomBar) } // private fun setupUI(titleBar: TitleBar, bottomBar: BottomBar) { // titleBar.hideTitleBar() // bottomBar.hideBottomBar() // } companion object { fun newInstance(): LoginFragment { return LoginFragment() } } }