From 6ae141d6f1b988572c1ff0cee6647edacce8a088 Mon Sep 17 00:00:00 2001 From: yezhiqiu <123456@qq.com> Date: Mon, 3 Aug 2026 14:38:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E5=86=85=E5=BE=AE=E4=BF=A1=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=92=8C=E6=89=8B=E6=9C=BA=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetSelector.xml | 8 ++ .../compile-file-map.properties | 2 +- .../previous-compilation-data.bin | Bin 4197 -> 4197 bytes app/build.gradle | 6 +- app/src/main/AndroidManifest.xml | 3 + .../tracker/adapter/MySubscriptionAdapter.kt | 3 +- .../com/abbidot/tracker/base/BaseActivity.kt | 22 ++--- .../com/abbidot/tracker/base/BaseFragment.kt | 2 - .../tracker/bean/SubscriptionsOrderBean.kt | 7 +- .../java/com/abbidot/tracker/bean/UserBean.kt | 3 +- .../ui/fragment/login/BindPhoneCNFragment.kt | 4 +- .../fragment/login/LoginCNAccountFragment.kt | 4 +- .../ui/fragment/login/LoginCNCodeFragment.kt | 2 +- .../ui/fragment/login/LoginCNFirstFragment.kt | 2 +- .../tracker/retrofit2/INetworkService.kt | 9 ++- .../abbidot/tracker/retrofit2/NetworkApi.kt | 4 +- .../tracker/ui/activity/HomeV2Activity.kt | 7 +- .../tracker/ui/activity/SayHelloActivity.kt | 55 ++++++++++++- .../ui/activity/account/LoginV2Activity.kt | 37 ++++----- .../account/cn/ForgotPasswordCNActivity.kt | 2 +- .../activity/account/cn/LoginV2CNActivity.kt | 21 ++--- .../activity/account/cn/RegisterCNActivity.kt | 2 +- .../account/cn/VerifyCodeLoginCNActivity.kt | 13 ++- .../ui/activity/account/cn/WXLoginActivity.kt | 32 ++++++++ .../account/CreateAccountV2ThreeFragment.kt | 13 ++- .../ui/fragment/account/EmailValidFragment.kt | 76 ++++++++++++++++-- .../account/cn/AccountCnPhoneFragment.kt | 30 ++++++- .../ui/fragment/device/HomeTrackFragment.kt | 6 +- .../googlemap/HistoryDataGoogleMapFragment.kt | 4 +- .../java/com/abbidot/tracker/util/Util.kt | 22 +++++ .../tracker/vm/UserProfileViewModel.kt | 6 +- .../abbidot/tracker/vm/cn/LoginCNViewModel.kt | 48 ----------- .../tracker/vm/cn/RegisterCNViewModel.kt | 3 +- .../abbidot/tracker/wxapi/WXEntryActivity.kt | 6 +- app/src/main/res/values-zh-rCN/strings.xml | 3 +- app/src/main/res/values/strings.xml | 1 + .../abbidot/baselibrary/constant/EventName.kt | 2 + 37 files changed, 324 insertions(+), 146 deletions(-) create mode 100644 app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/WXLoginActivity.kt diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index b268ef3..899a7d2 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,6 +4,14 @@ diff --git a/FastBleLib/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/FastBleLib/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties index e8a9215..313ae4d 100644 --- a/FastBleLib/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +++ b/FastBleLib/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties @@ -1 +1 @@ -#Mon Jul 20 16:50:50 CST 2026 +#Fri Jul 31 17:44:57 CST 2026 diff --git a/FastBleLib/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/FastBleLib/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin index 285831ebf084db68e863c14f9306c5a64ed39dfb..1edf5ae52611f8b5dac6b1bec5f04e9a20acc06a 100644 GIT binary patch delta 109 zcmV-z0FwXZAmt#iP7Giz9#bwHK*Erbqa379$w<(XM!-&!7cElD!2u;sjM-v% PVC7QkAt8set_-&WK7}ug delta 109 zcmV-z0FwXZAmt#iP7GiiK*EqM9#bxnqa379$w<)Nk~uA&rJIeniUVJhM!-%Q1Pj}1 zwtT=3UXk8<26S + diff --git a/app/src/main/java/com/abbidot/tracker/adapter/MySubscriptionAdapter.kt b/app/src/main/java/com/abbidot/tracker/adapter/MySubscriptionAdapter.kt index a22a058..af097f3 100644 --- a/app/src/main/java/com/abbidot/tracker/adapter/MySubscriptionAdapter.kt +++ b/app/src/main/java/com/abbidot/tracker/adapter/MySubscriptionAdapter.kt @@ -128,7 +128,8 @@ class MySubscriptionAdapter( } else if (item.subscriptionStatus == ConstantInt.Close) { setText(R.string.txt_enable_auto_renew) expiresTitle.setText(R.string.txt_expires_on1) - View.VISIBLE + //createUserId不一样就是绑定了其他用户有套餐的设备 + if (item.createUserId == userId) visibility else View.GONE } else { expiresTitle.setText(R.string.txt_expires_on1) View.GONE diff --git a/app/src/main/java/com/abbidot/tracker/base/BaseActivity.kt b/app/src/main/java/com/abbidot/tracker/base/BaseActivity.kt index 9b67070..dbbcc86 100644 --- a/app/src/main/java/com/abbidot/tracker/base/BaseActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/base/BaseActivity.kt @@ -556,7 +556,7 @@ abstract class BaseActivity(val inflater: (inflater: LayoutInfl private fun Activity.overrideTransitionOpen(enter: Int, exit: Int) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { - overrideActivityTransition(Activity.OVERRIDE_TRANSITION_OPEN, enter, exit) + overrideActivityTransition(OVERRIDE_TRANSITION_OPEN, enter, exit) } else { @Suppress("DEPRECATION") overridePendingTransition(enter, exit) @@ -565,7 +565,7 @@ abstract class BaseActivity(val inflater: (inflater: LayoutInfl private fun Activity.overrideTransitionClose(enter: Int, exit: Int) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { - overrideActivityTransition(Activity.OVERRIDE_TRANSITION_CLOSE, enter, exit) + overrideActivityTransition(OVERRIDE_TRANSITION_CLOSE, enter, exit) } else { @Suppress("DEPRECATION") overridePendingTransition(enter, exit) @@ -590,15 +590,19 @@ abstract class BaseActivity(val inflater: (inflater: LayoutInfl //服务器返回错误信息 val exceptionMessage = it.exceptionOrNull()?.message //服务器返回错误code - val exceptionCode: String? = it.exceptionOrNull()?.toString() + val exceptionCode= it.exceptionOrNull()?.toString() LogUtil.d("Throwable异常", "code=${exceptionCode},${exceptionMessage}") if (null != exceptionCode) { - //处理注册用户已存在的情况 - if (exceptionCode == ErrorCode.USER_HAS_EXIST.toString()) { + //处理验证码登录,用户未注册的情况 + if (!isShowCodeError && exceptionCode == ErrorCode.USER_NO_EXIST.toString()) { getResultCallback.onRequestError(exceptionCode) + return } - - if (exceptionCode == ErrorCode.DEVICE_HAS_BIND.toString()) { + //处理注册用户已存在的情况 + else if (exceptionCode == ErrorCode.USER_HAS_EXIST.toString()) { + getResultCallback.onRequestError(exceptionCode) + return + } else if (exceptionCode == ErrorCode.DEVICE_HAS_BIND.toString()) { val str = String.format(getString(R.string.txt_device_has_bind), exceptionMessage) showToast(str) @@ -808,9 +812,9 @@ abstract class BaseActivity(val inflater: (inflater: LayoutInfl /** * 隐藏软键盘 */ - fun hideInputMethod(view: View): Boolean { + fun hideInputMethod(rootView: View): Boolean { getInputMethodManager()?.apply { - return hideSoftInputFromWindow(view.windowToken, 0) + return hideSoftInputFromWindow(rootView.windowToken, 0) } return false } diff --git a/app/src/main/java/com/abbidot/tracker/base/BaseFragment.kt b/app/src/main/java/com/abbidot/tracker/base/BaseFragment.kt index b18f2d9..e4aba2e 100644 --- a/app/src/main/java/com/abbidot/tracker/base/BaseFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/base/BaseFragment.kt @@ -20,7 +20,6 @@ import com.abbidot.tracker.constant.GetResultCallback import com.abbidot.tracker.util.Util import com.qmuiteam.qmui.alpha.QMUIAlphaButton import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog /** *Created by .yzq on 2021/11/2/002. @@ -35,7 +34,6 @@ abstract class BaseFragment( protected lateinit var mViewBinding: T var mActivity: Activity? = null var mContext: Context? = null - var mLoadingDialog: QMUITipDialog? = null //防止某个时间执行多次 private var mLimitExecutionTime = 0L diff --git a/app/src/main/java/com/abbidot/tracker/bean/SubscriptionsOrderBean.kt b/app/src/main/java/com/abbidot/tracker/bean/SubscriptionsOrderBean.kt index b5de260..0a8fa0d 100644 --- a/app/src/main/java/com/abbidot/tracker/bean/SubscriptionsOrderBean.kt +++ b/app/src/main/java/com/abbidot/tracker/bean/SubscriptionsOrderBean.kt @@ -58,7 +58,8 @@ data class SubscriptionsOrderBean( var isRefundable: Int,//是否显示退款按钮 1:是 0:否 var isAutoRenewal: Int,//是否是自动续订 1:是 0:否 @MultipleEntity var menuType: Int, - var renewNum:String, + var renewNum: String, + var createUserId: String,//这个订单是由哪个用户创建的 var isUpdateOrder: Int = 0//是否是升级订单 1:是 0:否 ) : Parcelable, MultiItemEntity { constructor(@MultipleEntity menuType: Int) : this( @@ -106,7 +107,7 @@ data class SubscriptionsOrderBean( 0, 0, 0, - menuType,"", + menuType, "", "", 0 ) @@ -155,7 +156,7 @@ data class SubscriptionsOrderBean( 0, 0, 0, - MultipleEntity.TEXT,"", + MultipleEntity.TEXT, "", "", 0 ) diff --git a/app/src/main/java/com/abbidot/tracker/bean/UserBean.kt b/app/src/main/java/com/abbidot/tracker/bean/UserBean.kt index ac66ab8..f477e77 100644 --- a/app/src/main/java/com/abbidot/tracker/bean/UserBean.kt +++ b/app/src/main/java/com/abbidot/tracker/bean/UserBean.kt @@ -14,6 +14,7 @@ data class UserBean( var token: String, var userName: String, var wxId: String, + var wxCode: String, //0没有绑定手机号 1绑定了 var status: Int, var isBindDevice: Int, //是否绑定了设备 0未绑定 1绑定 @@ -23,5 +24,5 @@ data class UserBean( ) { //设置空的构造方法 - constructor() : this("", "", "", "", "", "", 0, 0, 0, 0, ConstantInt.Type1) + constructor() : this("", "", "", "", "", "", "", 0, 0, 0, 0, ConstantInt.Type1) } diff --git a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/BindPhoneCNFragment.kt b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/BindPhoneCNFragment.kt index 3622549..9da97e7 100644 --- a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/BindPhoneCNFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/BindPhoneCNFragment.kt @@ -9,9 +9,9 @@ import com.abbidot.tracker.base.BaseFragment import com.abbidot.tracker.constant.GetResultCallback import com.abbidot.tracker.databinding.FragmentBindPhoneCnBinding import com.abbidot.tracker.deprecated.ui.activity.LoginRegisterCNActivity +import com.abbidot.tracker.vm.CountDownTimerViewModel import com.abbidot.tracker.vm.cn.LoginCNViewModel import com.abbidot.tracker.vm.cn.RegisterCNViewModel -import com.abbidot.tracker.vm.CountDownTimerViewModel /** @@ -71,7 +71,7 @@ class BindPhoneCNFragment : val data = it.getOrNull() data?.apply { val activity = activity as LoginRegisterCNActivity - mLoginCNViewModel.loginSuccess(activity, this, R.string.txt_bind_success) +// mLoginCNViewModel.loginSuccess(activity, this, R.string.txt_bind_success) } } }) diff --git a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNAccountFragment.kt b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNAccountFragment.kt index e9a8761..c66512b 100644 --- a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNAccountFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNAccountFragment.kt @@ -66,7 +66,7 @@ class LoginCNAccountFragment : val data = it.getOrNull() data?.apply { val activity = activity as LoginRegisterCNActivity - mLoginCNViewModel.loginSuccess(activity, this) +// mLoginCNViewModel.loginSuccess(activity, this) } } }) @@ -78,7 +78,7 @@ class LoginCNAccountFragment : val data = it.getOrNull() data?.apply { val activity = activity as LoginRegisterCNActivity - mLoginCNViewModel.loginSuccess(activity, this) +// mLoginCNViewModel.loginSuccess(activity, this) } } }) diff --git a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNCodeFragment.kt b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNCodeFragment.kt index 8cacd0e..ae7e583 100644 --- a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNCodeFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNCodeFragment.kt @@ -79,7 +79,7 @@ class LoginCNCodeFragment : val data = it.getOrNull() data?.apply { val activity = activity as LoginRegisterCNActivity - mLoginCNViewModel.loginSuccess(activity, this) +// mLoginCNViewModel.loginSuccess(activity, this) } } }) diff --git a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNFirstFragment.kt b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNFirstFragment.kt index 4df59cb..1accace 100644 --- a/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNFirstFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/deprecated/ui/fragment/login/LoginCNFirstFragment.kt @@ -51,7 +51,7 @@ class LoginCNFirstFragment : val data = it.getOrNull() data?.apply { val activity = activity as LoginRegisterCNActivity - mLoginCNViewModel.loginSuccess(activity, this) +// mLoginCNViewModel.loginSuccess(activity, this) } } }) diff --git a/app/src/main/java/com/abbidot/tracker/retrofit2/INetworkService.kt b/app/src/main/java/com/abbidot/tracker/retrofit2/INetworkService.kt index 8d8bbb8..e1f4fa4 100644 --- a/app/src/main/java/com/abbidot/tracker/retrofit2/INetworkService.kt +++ b/app/src/main/java/com/abbidot/tracker/retrofit2/INetworkService.kt @@ -53,7 +53,7 @@ import retrofit2.http.Url interface INetworkService { companion object { - private const val IP_SERVER = "https://aws.abbidot.com" +// private const val IP_SERVER = "https://aws.abbidot.com" // private const val IP_SERVER = "https://192.168.0.22" // const val BASE_URL = "http://ec2-50-18-65-40.us-west-1.compute.amazonaws.com:8090/abbidot/" // const val BASE_URL = "http://ec2-3-101-8-36.us-west-1.compute.amazonaws.com:8090/abbidot/" @@ -63,7 +63,7 @@ interface INetworkService { const val BASE_URL_ABROAD = "https://aws.abbidot.com/abbidot/" //设备透传 - const val BASE_URL_BLE = "https://ab-server.abbidot.cn/" + const val BASE_URL_BLE = "https://ab-server.abbidot.com/" //测试服务器 const val BASE_URL_TEST = "https://aws.abbidot.com:8443/abbidot/" @@ -141,7 +141,8 @@ interface INetworkService { @Field("phone") phone: String, @Field("password") password: String, @Field("userName") userName: String, - @Field("countryCode") countryCode: String + @Field("countryCode") countryCode: String, + @Field("openidIdentifier") openidIdentifier: String ): BaseResponse @@ -1435,7 +1436,7 @@ interface INetworkService { @Field("phone") phone: String, @Field("code") code: String, //验证码类型 1是注册 2是忘记密码 @Field("type") type: Int - ): BaseResponse + ): BaseResponse /** * 账号密码登录 diff --git a/app/src/main/java/com/abbidot/tracker/retrofit2/NetworkApi.kt b/app/src/main/java/com/abbidot/tracker/retrofit2/NetworkApi.kt index 4362a3f..a068272 100644 --- a/app/src/main/java/com/abbidot/tracker/retrofit2/NetworkApi.kt +++ b/app/src/main/java/com/abbidot/tracker/retrofit2/NetworkApi.kt @@ -42,9 +42,9 @@ object NetworkApi : BaseNetworkApi(INetworkService.BASE_URL) { * 注册/创建用户 */ suspend fun registerV2( - email: String, phone: String, password: String, userName: String, countryCode: String + email: String, phone: String, password: String, userName: String, countryCode: String, wxOpenidId: String ) = getResult { - service.registerV2(email, phone, password, userName, countryCode) + service.registerV2(email, phone, password, userName, countryCode, wxOpenidId) } /** diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/HomeV2Activity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/HomeV2Activity.kt index 22cf34b..22dcce2 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/HomeV2Activity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/HomeV2Activity.kt @@ -785,9 +785,10 @@ class HomeV2Activity : BaseActivity(ActivityHomeV2Binding if (SRBleUtil.instance.isBleEnable(mContext)) { if (BleManager.getInstance().isConnected(macID)) { LogUtil.e("已连接设备,不用再次自动连接设备") -// SRBleUtil.instance.cancelBleScan("已连接设备,取消其他连接扫描") -// val bleTrack = SRBleUtil.instance.getConnectMacDevice(macID) -// XEventBus.post(EventName.ConnectDeviceState, bleTrack) + //通知其他页面取消其他连接扫描 + SRBleUtil.instance.cancelBleScan("已连接设备,取消其他连接扫描") + val bleTrack = SRBleUtil.instance.getConnectMacDevice(macID) + XEventBus.post(EventName.ConnectDeviceState, bleTrack) } else { mAutomaticConnectionDeviceViewModel.connectDeviceToMac( this@HomeV2Activity, macID, false diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/SayHelloActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/SayHelloActivity.kt index 641762b..37fbfa5 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/SayHelloActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/SayHelloActivity.kt @@ -1,23 +1,32 @@ package com.abbidot.tracker.ui.activity import android.content.Intent +import android.view.Gravity import android.view.View import com.abbidot.baselibrary.constant.EventName import com.abbidot.baselibrary.constant.MMKVKey import com.abbidot.baselibrary.eventbus.XEventBus +import com.abbidot.baselibrary.network.exception.ErrorCode import com.abbidot.baselibrary.util.AppUtils import com.abbidot.baselibrary.util.MMKVUtil import com.abbidot.tracker.R import com.abbidot.tracker.base.BaseActivity +import com.abbidot.tracker.bean.UserBean +import com.abbidot.tracker.constant.ConstantInt +import com.abbidot.tracker.constant.GetResultCallback import com.abbidot.tracker.databinding.ActivitySayHelloBinding import com.abbidot.tracker.ui.activity.account.CreateAccountV2Activity import com.abbidot.tracker.ui.activity.account.LoginV2Activity import com.abbidot.tracker.ui.activity.account.cn.LoginV2CNActivity import com.abbidot.tracker.ui.activity.account.cn.RegisterCNActivity +import com.abbidot.tracker.ui.activity.account.cn.WXLoginActivity import com.abbidot.tracker.util.ThirdPartyUtil +import com.abbidot.tracker.util.Util class SayHelloActivity : BaseActivity(ActivitySayHelloBinding::inflate) { + private var mWXCode = "" + override fun getTopBar() = null override fun initData() { @@ -36,6 +45,43 @@ class SayHelloActivity : BaseActivity(ActivitySayHelloB XEventBus.observe(this, EventName.FinishActivity) { finish() } + + XEventBus.observe(this, EventName.PostValue) { s: String -> + mWXCode = s + } + + //微信登录成功返回 + XEventBus.observe(this, EventName.WXLoginResult) { it: Result -> + dealRequestResult(it, object : GetResultCallback { + override fun onResult(any: Any) { + it.getOrNull()?.let { userBean -> + Util.dealLoginSuccessData(mContext, userBean) + showToast(R.string.txt_login_successful, gravity = Gravity.CENTER) + Util.loginSuccessGo(this@SayHelloActivity, mViewBinding.root) + } + } + + override fun onInterceptCode() { + setButtonEnabled( + mViewBinding.btnSayHelloLoginWechat, ConstantInt.Type1 + ) + } + + override fun onRequestError(exceptionCode: String?) { + setButtonEnabled( + mViewBinding.btnSayHelloLoginWechat, ConstantInt.Type1 + ) + exceptionCode?.let { code -> + if (code == ErrorCode.USER_NO_EXIST.toString()) { + Intent(mContext, WXLoginActivity::class.java).let { i -> + i.putExtra(MMKVKey.CountryCode, mWXCode) + startActivity(i) + } + } + } + } + }, isShowCodeError = false) + } } override fun onClick(v: View?) { @@ -44,6 +90,8 @@ class SayHelloActivity : BaseActivity(ActivitySayHelloB btnSayHelloLogin -> { if (AppUtils.isChina()) { val intent = Intent(mContext, LoginV2CNActivity::class.java) + val phone = MMKVUtil.getString(MMKVKey.Phone) + intent.putExtra(MMKVKey.Phone, phone) startActivity(intent) } else { val intent = Intent(mContext, LoginV2Activity::class.java) @@ -61,7 +109,12 @@ class SayHelloActivity : BaseActivity(ActivitySayHelloB } } - btnSayHelloLoginWechat -> ThirdPartyUtil.instance.startWXLogin(this@SayHelloActivity) + btnSayHelloLoginWechat -> { + setButtonEnabled( + mViewBinding.btnSayHelloLoginWechat, ConstantInt.Type0 + ) + ThirdPartyUtil.instance.startWXLogin(this@SayHelloActivity) + } } } } diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/account/LoginV2Activity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/account/LoginV2Activity.kt index 2656492..b1a4cf2 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/account/LoginV2Activity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/account/LoginV2Activity.kt @@ -21,7 +21,6 @@ import com.abbidot.tracker.base.BaseActivity import com.abbidot.tracker.constant.ConstantInt import com.abbidot.tracker.constant.GetResultCallback import com.abbidot.tracker.databinding.ActivityLoginV2Binding -import com.abbidot.tracker.ui.activity.set.FirstPermissionsActivity import com.abbidot.tracker.util.Util import com.abbidot.tracker.util.ViewUtil import com.abbidot.tracker.vm.LoginViewModel @@ -54,8 +53,8 @@ class LoginV2Activity : BaseActivity(ActivityLoginV2Bind it.etInputContent.setText(userEmail) it.etInputContent.inputType = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS ViewUtil.instance.setInputViewErrorHideClick( - mContext, it.rlEtInputLayout, tvEmailErrorTipLogin, it.etInputContent - ,true ) + mContext, it.rlEtInputLayout, tvEmailErrorTipLogin, it.etInputContent, true + ) } ilLoginV2Password.let { it.tvInputNameTitle.setText(R.string.login_txt_password) @@ -106,15 +105,24 @@ class LoginV2Activity : BaseActivity(ActivityLoginV2Bind Util.dealLoginSuccessData(mContext, this) showToast(R.string.txt_login_successful, gravity = Gravity.CENTER) - loginSuccessGo() + Util.loginSuccessGo(this@LoginV2Activity, mViewBinding.btnLoginV2Login) //登录成功,把保存的设备存本地 // mTrackerViewModel.getDeviceList(this@LoginV2Activity, 1) } } + + override fun onInterceptCode() { + setButtonEnabled( + mViewBinding.btnLoginV2Login, ConstantInt.Type1 + ) + } + + override fun onRequestError(exceptionCode: String?) { + setButtonEnabled( + mViewBinding.btnLoginV2Login, ConstantInt.Type1 + ) + } }) - setButtonEnabled( - mViewBinding.btnLoginV2Login, ConstantInt.Type1 - ) } //获取设备列表 @@ -126,7 +134,7 @@ class LoginV2Activity : BaseActivity(ActivityLoginV2Bind val isBindDevice = MMKVUtil.getInt(MMKVKey.isBindDevice) val isBindPet = MMKVUtil.getInt(MMKVKey.isBindPet) if (isBindDevice == ConstantInt.isBind && isBindPet == ConstantInt.NoBind) { - if (list.size > 0) { + if (list.isNotEmpty()) { MMKVUtil.putString(MMKVKey.FirstDeviceId, list[0].deviceId) MMKVUtil.putString( MMKVKey.FirstDeviceOutId, list[0].deviceOutId @@ -144,7 +152,7 @@ class LoginV2Activity : BaseActivity(ActivityLoginV2Bind showToast(R.string.txt_login_successful, gravity = Gravity.CENTER) - loginSuccessGo() + Util.loginSuccessGo(this@LoginV2Activity, mViewBinding.btnLoginV2Login) } } } @@ -152,17 +160,6 @@ class LoginV2Activity : BaseActivity(ActivityLoginV2Bind } } - private fun loginSuccessGo() { - val hasPermissions = Util.checkNeedPermissionsEnabled(mContext) - mViewBinding.btnLoginV2Login.postDelayed({ - if (hasPermissions) { - startActivityFinish(Util.checkBindDeviceAndPetGoActivity(mContext)) - } else { - startActivityFinish(Intent(mContext, FirstPermissionsActivity::class.java)) - } - }, 1000) - } - private fun loginClick(isMd5: Boolean = true) { mViewBinding.apply { var email = ilLoginV2EmailAddress.etInputContent.text.toString() diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/ForgotPasswordCNActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/ForgotPasswordCNActivity.kt index 4d9e8eb..fdb35b0 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/ForgotPasswordCNActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/ForgotPasswordCNActivity.kt @@ -22,7 +22,7 @@ class ForgotPasswordCNActivity : AddEmailValidActivity() { switchFragment(2) }.apply { mContext = this@ForgotPasswordCNActivity - mFragmentList.add(AccountCnPhoneFragment.newInstance(mContext!!)) + mFragmentList.add(AccountCnPhoneFragment.newInstance(mContext!!,2)) mFragmentList.add(this) mFragmentList.add(ForgotPasswordV2ThereFragment.newInstance(mContext!!)) } diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/LoginV2CNActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/LoginV2CNActivity.kt index d6bf918..c2e4590 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/LoginV2CNActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/LoginV2CNActivity.kt @@ -9,6 +9,7 @@ import android.view.Gravity import android.view.View import androidx.activity.viewModels import com.abbidot.baselibrary.constant.EventName +import com.abbidot.baselibrary.constant.MMKVKey import com.abbidot.baselibrary.eventbus.XEventBus import com.abbidot.baselibrary.util.AppUtils import com.abbidot.baselibrary.util.Utils @@ -17,7 +18,6 @@ import com.abbidot.tracker.base.BaseActivity import com.abbidot.tracker.constant.ConstantInt import com.abbidot.tracker.constant.GetResultCallback import com.abbidot.tracker.databinding.ActivityLoginV2CnBinding -import com.abbidot.tracker.ui.activity.set.FirstPermissionsActivity import com.abbidot.tracker.util.Util import com.abbidot.tracker.util.ViewUtil import com.abbidot.tracker.vm.cn.LoginCNViewModel @@ -38,9 +38,15 @@ class LoginV2CNActivity : mViewBinding.apply { root.setBackgroundResource(R.drawable.icon_login_v2_bg) + var userPhone = "" + intent.extras?.apply { + userPhone = getString(MMKVKey.Phone, "") + } + ilLoginV2CnPhone.let { it.tvInputNameTitle.setText(R.string.login_txt_phone) it.etInputContent.setHint(R.string.login_txt_phone) + it.etInputContent.setText(userPhone) it.etInputContent.inputType = InputType.TYPE_CLASS_NUMBER val filters = arrayOf(InputFilter.LengthFilter(11)) it.etInputContent.filters = filters @@ -83,7 +89,7 @@ class LoginV2CNActivity : Util.dealLoginSuccessData(mContext, this) showToast(R.string.txt_login_successful, gravity = Gravity.CENTER) - loginSuccessGo() + Util.loginSuccessGo(this@LoginV2CNActivity, mViewBinding.btnLoginV2CnLogin) } } @@ -98,17 +104,6 @@ class LoginV2CNActivity : } } - private fun loginSuccessGo() { - val hasPermissions = Util.checkNeedPermissionsEnabled(mContext) - mViewBinding.btnLoginV2CnLogin.postDelayed({ - if (hasPermissions) { - startActivityFinish(Util.checkBindDeviceAndPetGoActivity(mContext)) - } else { - startActivityFinish(Intent(mContext, FirstPermissionsActivity::class.java)) - } - }, 1000) - } - private fun goForgotPassword() { Intent(mContext, ForgotPasswordCNActivity::class.java).apply { // val email = mViewBinding.ilLoginV2EmailAddress.etInputContent.text.toString() diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/RegisterCNActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/RegisterCNActivity.kt index 491aedd..f60f0fb 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/RegisterCNActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/RegisterCNActivity.kt @@ -10,7 +10,7 @@ class RegisterCNActivity : AddEmailValidActivity() { mEmailValidFragment = EmailValidFragment.newInstance(this, 1) { switchFragment(2) }.apply { - mFragmentList.add(AccountCnPhoneFragment.newInstance(this@RegisterCNActivity)) + mFragmentList.add(AccountCnPhoneFragment.newInstance(this@RegisterCNActivity, 1)) mFragmentList.add(this) mFragmentList.add(CreateAccountV2ThreeFragment.newInstance(this@RegisterCNActivity)) } diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/VerifyCodeLoginCNActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/VerifyCodeLoginCNActivity.kt index 6a12ef9..ff9075b 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/VerifyCodeLoginCNActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/VerifyCodeLoginCNActivity.kt @@ -1,16 +1,23 @@ package com.abbidot.tracker.ui.activity.account.cn +import com.abbidot.tracker.constant.ConstantInt import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity +import com.abbidot.tracker.ui.fragment.account.CreateAccountV2ThreeFragment import com.abbidot.tracker.ui.fragment.account.EmailValidFragment import com.abbidot.tracker.ui.fragment.account.cn.AccountCnPhoneFragment class VerifyCodeLoginCNActivity : AddEmailValidActivity() { override fun initData() { - mEmailValidFragment = EmailValidFragment.newInstance(this, 1) { -// switchFragment(2) + mEmailValidFragment = EmailValidFragment.newInstance(this, ConstantInt.Type3) { + switchFragment(2) }.apply { - mFragmentList.add(AccountCnPhoneFragment.newInstance(this@VerifyCodeLoginCNActivity)) + mFragmentList.add( + AccountCnPhoneFragment.newInstance( + this@VerifyCodeLoginCNActivity, ConstantInt.Type3 + ) + ) mFragmentList.add(this) + mFragmentList.add(CreateAccountV2ThreeFragment.newInstance(this@VerifyCodeLoginCNActivity)) } super.initData() } diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/WXLoginActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/WXLoginActivity.kt new file mode 100644 index 0000000..3fb3742 --- /dev/null +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/account/cn/WXLoginActivity.kt @@ -0,0 +1,32 @@ +package com.abbidot.tracker.ui.activity.account.cn + +import com.abbidot.baselibrary.constant.MMKVKey +import com.abbidot.tracker.constant.ConstantInt +import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity +import com.abbidot.tracker.ui.fragment.account.CreateAccountV2ThreeFragment +import com.abbidot.tracker.ui.fragment.account.EmailValidFragment +import com.abbidot.tracker.ui.fragment.account.cn.AccountCnPhoneFragment + +class WXLoginActivity : AddEmailValidActivity() { + private var mWXCode = "" + override fun initData() { + mWXCode = intent.getStringExtra(MMKVKey.CountryCode) ?: "" + mEmailValidFragment = EmailValidFragment.newInstance(this, ConstantInt.Type4) { + switchFragment(2) + }.apply { + mFragmentList.add( + AccountCnPhoneFragment.newInstance( + this@WXLoginActivity, ConstantInt.Type4 + ) + ) + mFragmentList.add(this) + mFragmentList.add( + CreateAccountV2ThreeFragment.newInstance( + this@WXLoginActivity, mWXCode + ) + ) + } + super.initData() + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/account/CreateAccountV2ThreeFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/account/CreateAccountV2ThreeFragment.kt index 86ed8de..a387113 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/account/CreateAccountV2ThreeFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/account/CreateAccountV2ThreeFragment.kt @@ -39,12 +39,15 @@ class CreateAccountV2ThreeFragment : BaseFragment( private val mCountDownTimerViewModel: CountDownTimerViewModel by viewModels() private val mRegisterViewModel: UserProfileViewModel by viewModels() + private val mLoginCNViewModel: LoginCNViewModel by viewModels() private val mRegisterCNViewModel: RegisterCNViewModel by viewModels() private val mResendCodeTime = 5 * 60 @@ -47,13 +51,13 @@ open class EmailValidFragment : BaseFragment( @JvmStatic fun newInstance( context: Context, - emailCodeType: Int, + verifyCodeType: Int, btnString: String = "", okClickListener: OnClickListener ) = EmailValidFragment().apply { mContext = context mBtnString = btnString - mVerifyCodeType = emailCodeType + mVerifyCodeType = verifyCodeType mOnOkClickListener = okClickListener } } @@ -77,6 +81,8 @@ open class EmailValidFragment : BaseFragment( mViewBinding.apply { + getHostActivity(BaseActivity::class.java)?.hideInputMethod(root) + if (!TextUtils.isEmpty(mBtnString)) { btnForgotPasswordV2TwoContinue.text = mBtnString } @@ -132,6 +138,36 @@ open class EmailValidFragment : BaseFragment( } if (AppUtils.isChina()) { + mLoginCNViewModel.mPhoneLoginResultLiveData.observe(viewLifecycleOwner) { + dealRequestResult(it, object : GetResultCallback { + override fun onResult(any: Any) { + it.getOrNull()?.let { userBean -> + Util.dealLoginSuccessData(mContext!!, userBean) + showToast(R.string.txt_login_successful, gravity = Gravity.CENTER) + getHostActivity(BaseActivity::class.java)?.let { activity -> + Util.loginSuccessGo(activity, mViewBinding.root) + } + } + } + + override fun onInterceptCode() { + setButtonEnabled( + mViewBinding.btnForgotPasswordV2TwoContinue, ConstantInt.Type1 + ) + } + + override fun onRequestError(exceptionCode: String?) { + setButtonEnabled( + mViewBinding.btnForgotPasswordV2TwoContinue, ConstantInt.Type1 + ) + exceptionCode?.let { code -> + if (code == ErrorCode.USER_NO_EXIST.toString()) { + mOnOkClickListener?.onClick(view) + } + } + } + }, isShowCodeError = false) + } mRegisterCNViewModel.apply { mSendCodeResultLiveData.observe(viewLifecycleOwner) { dealRequestResult(it, object : GetResultCallback { @@ -148,8 +184,16 @@ open class EmailValidFragment : BaseFragment( mValidateCodeResultLiveData.observe(viewLifecycleOwner) { dealRequestResult(it, object : GetResultCallback { override fun onResult(any: Any) { - it.getOrNull()?.apply { - mOnOkClickListener?.onClick(view) + it.getOrNull()?.let { data -> + if (mVerifyCodeType == ConstantInt.Type4) { + Util.dealLoginSuccessData(mContext!!, data) + showToast( + R.string.txt_login_successful, gravity = Gravity.CENTER + ) + getHostActivity(BaseActivity::class.java)?.let { activity -> + Util.loginSuccessGo(activity, mViewBinding.root) + } + } else mOnOkClickListener?.onClick(view) } } @@ -163,6 +207,17 @@ open class EmailValidFragment : BaseFragment( setButtonEnabled( mViewBinding.btnForgotPasswordV2TwoContinue, ConstantInt.Type1 ) + if (mVerifyCodeType == ConstantInt.Type4) { + exceptionCode?.let { code -> + if (code == "519") { + mOnOkClickListener?.onClick(view) + } else if (code == "520") { + showToast( + R.string.txt_phone_has_bound, gravity = Gravity.CENTER + ) + } + } + } } }) } @@ -246,9 +301,15 @@ open class EmailValidFragment : BaseFragment( setButtonEnabled(mViewBinding.btnForgotPasswordV2TwoContinue, ConstantInt.Type0) if (AppUtils.isChina()) { - mRegisterCNViewModel.validatePhoneCode( - this@EmailValidFragment, mEmail, content, mVerifyCodeType - ) + if (mVerifyCodeType == ConstantInt.Type3) { + mLoginCNViewModel.phoneLogin( + this@EmailValidFragment, mEmail, content + ) + } else { + mRegisterCNViewModel.validatePhoneCode( + this@EmailValidFragment, mEmail, content, mVerifyCodeType + ) + } } else { mRegisterViewModel.validateCode( this@EmailValidFragment, mEmail, content, mVerifyCodeType @@ -259,6 +320,7 @@ open class EmailValidFragment : BaseFragment( override fun onClick(v: View?) { mViewBinding.apply { + getHostActivity(BaseActivity::class.java)?.hideInputMethod(mViewBinding.root) when (v!!) { btnForgotPasswordV2TwoContinue -> continueVerifyCode() diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/account/cn/AccountCnPhoneFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/account/cn/AccountCnPhoneFragment.kt index d2f24a0..c16aedc 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/account/cn/AccountCnPhoneFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/account/cn/AccountCnPhoneFragment.kt @@ -1,18 +1,23 @@ package com.abbidot.tracker.ui.fragment.account.cn import android.content.Context +import android.content.Intent import android.text.InputFilter import android.text.InputType import android.text.TextUtils import android.view.View import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import com.abbidot.baselibrary.constant.MMKVKey +import com.abbidot.baselibrary.network.exception.ErrorCode import com.abbidot.tracker.R +import com.abbidot.tracker.base.BaseDialog import com.abbidot.tracker.base.BaseFragment import com.abbidot.tracker.constant.ConstantInt import com.abbidot.tracker.constant.GetResultCallback import com.abbidot.tracker.databinding.FragmentAccountCnPhoneBinding import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity +import com.abbidot.tracker.ui.activity.account.cn.LoginV2CNActivity import com.abbidot.tracker.util.ViewUtil import com.abbidot.tracker.vm.cn.RegisterCNViewModel @@ -25,12 +30,14 @@ class AccountCnPhoneFragment : BaseFragment(FragmentAccountCnPhoneBinding::inflate) { private val mRegisterCNViewModel: RegisterCNViewModel by viewModels() + private var mVerifyCodeType = 0 companion object { @JvmStatic - fun newInstance(context: Context) = + fun newInstance(context: Context, verifyCodeType: Int) = AccountCnPhoneFragment().apply { mContext = context + mVerifyCodeType = verifyCodeType } } @@ -62,6 +69,25 @@ class AccountCnPhoneFragment : override fun onRequestError(exceptionCode: String?) { setButtonEnabled(mViewBinding.btnAccountCnPhoneContinue, ConstantInt.Type1) + exceptionCode?.let { code -> + if (code == ErrorCode.USER_HAS_EXIST.toString()) { + ViewUtil.instance.showDialog( + mContext!!, + R.string.txt_account_exists_log_in, + object : BaseDialog.OnDialogOkListener { + override fun onOkClick(dialog: BaseDialog<*>) { + dialog.dismiss() + val intent = Intent(mContext, LoginV2CNActivity::class.java) + val phone = + mViewBinding.ilAccountCnPhoneEditLayout.etInputContent.text.toString() + intent.putExtra(MMKVKey.Phone, phone) + startActivityFinish(mActivity!!, intent) + } + }, + okTextResId = R.string.txt_sure + ) + } + } } }) } @@ -87,7 +113,7 @@ class AccountCnPhoneFragment : } getHostActivity(AddEmailValidActivity::class.java)?.setToEmail(phone) setButtonEnabled(btnAccountCnPhoneContinue, ConstantInt.Type0) - mRegisterCNViewModel.sendCode(this@AccountCnPhoneFragment, phone, 1) + mRegisterCNViewModel.sendCode(this@AccountCnPhoneFragment, phone, mVerifyCodeType) } } diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/device/HomeTrackFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/device/HomeTrackFragment.kt index 1b53aa0..0e2ab3f 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/device/HomeTrackFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/device/HomeTrackFragment.kt @@ -557,7 +557,7 @@ class HomeTrackFragment : private fun addMenuListData(petBean: PetBean) { petBean.apply { - if (mTrackMenuList.size == 0) { + if (mTrackMenuList.isEmpty()) { if (deviceType == ConstantInt.Type1) { ViewUtil.instance.addMenuBean( mTrackMenuList, getString(R.string.tracker_manage_led) @@ -825,7 +825,7 @@ class HomeTrackFragment : mFencesAdapter.setData(null) mZoneAdapter.setData(null) mapDeviceBean.fences?.apply { - if (size > 0) { + if (isNotEmpty()) { if (size > 3) mFencesList.addAll(subList(0, 3).toList()) else mFencesList.addAll(this.toList()) mFencesAdapter.setData(mFencesList, true) @@ -835,7 +835,7 @@ class HomeTrackFragment : } } mapDeviceBean.wifiZones?.apply { - if (size > 0) { + if (isNotEmpty()) { mZoneList.addAll(this) mZoneAdapter.setData(mZoneList, true) mViewBinding.btnHomePetTrackWifiZoneManage.visibility = View.VISIBLE diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HistoryDataGoogleMapFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HistoryDataGoogleMapFragment.kt index 0ebd040..2347851 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HistoryDataGoogleMapFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HistoryDataGoogleMapFragment.kt @@ -164,7 +164,7 @@ class HistoryDataGoogleMapFragment : BaseGoogleMapFragment() { fun setLatLngData(data: MutableList) { mGoogleMap?.clear() - if (data.size == 0) return + if (data.isEmpty()) return mLatLngList.clear() var maxLat = data[0].latitude var maxLon = data[0].longitude @@ -214,7 +214,7 @@ class HistoryDataGoogleMapFragment : BaseGoogleMapFragment() { * 停止滑动 */ fun slideStopChanged(progress: Int) { - if (mLatLngList.size > 0) { + if (mLatLngList.isNotEmpty()) { moveCameraLocation( mLatLngList[progress].latitude, mLatLngList[progress].longitude, true ) diff --git a/app/src/main/java/com/abbidot/tracker/util/Util.kt b/app/src/main/java/com/abbidot/tracker/util/Util.kt index e50528a..595432b 100644 --- a/app/src/main/java/com/abbidot/tracker/util/Util.kt +++ b/app/src/main/java/com/abbidot/tracker/util/Util.kt @@ -10,6 +10,7 @@ import android.location.LocationManager import android.os.Build import android.os.Parcelable import android.provider.Settings +import android.view.View import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.ViewModelProvider import cn.jpush.android.api.JPushInterface @@ -37,6 +38,7 @@ import com.abbidot.tracker.ui.activity.SayHelloActivity import com.abbidot.tracker.ui.activity.device.AddNewTracker1Activity import com.abbidot.tracker.ui.activity.pet.ShowInviteDeviceActivity import com.abbidot.tracker.ui.activity.pet.first.FirstSetPetTypeActivity +import com.abbidot.tracker.ui.activity.set.FirstPermissionsActivity import com.abbidot.tracker.ui.activity.subscribe.SubscriptionPlanActivity import com.abbidot.tracker.util.bluetooth.SRBleUtil import com.abbidot.tracker.vm.SubscriptionManageViewModel @@ -570,6 +572,24 @@ class Util { } } + /** + * 登录成功后的跳转 + */ + fun loginSuccessGo(activity: BaseActivity<*>, view: View) { + val hasPermissions = checkNeedPermissionsEnabled(activity) + view.postDelayed({ + if (hasPermissions) { + activity.startActivityFinish(checkBindDeviceAndPetGoActivity(activity)) + } else { + activity.startActivityFinish( + Intent( + activity, FirstPermissionsActivity::class.java + ) + ) + } + }, 1000) + } + /** * 退出登录 */ @@ -584,9 +604,11 @@ class Util { BleManager.getInstance().disconnectAllDevice() lifecycleScope.launch { val email = MMKVUtil.getString(MMKVKey.Email) + val phone = MMKVUtil.getString(MMKVKey.Phone) MMKVUtil.clearAll() //保存最后一次登录的邮箱 MMKVUtil.putString(MMKVKey.Email, email) + MMKVUtil.putString(MMKVKey.Phone, phone) withContext(Dispatchers.IO) { MyDatabase.deviceDao().deleteAll(MyDatabase.DEVICE_TABLE) MyDatabase.creditCardDao().deleteAll(MyDatabase.CREDIT_CARD_TABLE) diff --git a/app/src/main/java/com/abbidot/tracker/vm/UserProfileViewModel.kt b/app/src/main/java/com/abbidot/tracker/vm/UserProfileViewModel.kt index 66976a6..2f5ce7f 100644 --- a/app/src/main/java/com/abbidot/tracker/vm/UserProfileViewModel.kt +++ b/app/src/main/java/com/abbidot/tracker/vm/UserProfileViewModel.kt @@ -74,11 +74,13 @@ class UserProfileViewModel : ViewModel() { phone: String, password: String, userName: String, - countryCode: String + countryCode: String, + wxOpenidId: String="" ) { activity.showLoading(true) viewModelScope.launch { - val result = NetworkApi.registerV2(email,phone, password, userName, countryCode) + val result = + NetworkApi.registerV2(email, phone, password, userName, countryCode, wxOpenidId) mRegisterV2LiveData.value = result } } diff --git a/app/src/main/java/com/abbidot/tracker/vm/cn/LoginCNViewModel.kt b/app/src/main/java/com/abbidot/tracker/vm/cn/LoginCNViewModel.kt index e3236e0..b25aa3a 100644 --- a/app/src/main/java/com/abbidot/tracker/vm/cn/LoginCNViewModel.kt +++ b/app/src/main/java/com/abbidot/tracker/vm/cn/LoginCNViewModel.kt @@ -1,24 +1,13 @@ package com.abbidot.tracker.vm.cn -import android.content.Intent import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import cn.jpush.android.api.JPushInterface -import com.abbidot.baselibrary.constant.EventName -import com.abbidot.baselibrary.constant.MMKVKey -import com.abbidot.baselibrary.eventbus.XEventBus -import com.abbidot.baselibrary.util.MMKVUtil -import com.abbidot.tracker.R -import com.abbidot.tracker.base.BaseActivity import com.abbidot.tracker.base.BaseFragment import com.abbidot.tracker.bean.UserBean -import com.abbidot.tracker.constant.ConstantInt import com.abbidot.tracker.retrofit2.NetworkApi -import com.abbidot.tracker.ui.activity.HomeV2Activity import dagger.hilt.android.scopes.ActivityRetainedScoped import kotlinx.coroutines.launch -import java.util.Random import javax.inject.Inject /** @@ -44,43 +33,6 @@ class LoginCNViewModel @Inject constructor() : ViewModel() { } } - /** - * 处理微信、登录成功返回 - */ - fun loginSuccess( - activity: BaseActivity<*>, - userBean: UserBean, - tipRes: Int = R.string.txt_login_successful - ) { - //判断有没有绑定手机号 - if (userBean.status == ConstantInt.Close) { -// activity.apply { -// mWXId = userBean.wxId -// switchFragment(LoginRegisterCNActivity.Fragment_Bind_Phone) -// } - } else { - //通知欢迎页面关闭 - XEventBus.post(EventName.FinishActivity) - activity.showToast(tipRes) - MMKVUtil.putString(MMKVKey.UserId, userBean.userId) - MMKVUtil.putInt(MMKVKey.isBindDevice, userBean.isBindDevice) - MMKVUtil.putString(MMKVKey.Token, userBean.token) - val rand = Random() - //极光推送设置别名 - JPushInterface.setAlias(activity, rand.nextInt(1000), userBean.userId) - - val intent = Intent() - //判断有没有绑定设备 -// if (userBean.isBindDevice == ConstantInt.Close) { -// intent.setClass(activity, AddTrackerDeviceActivity::class.java) -// } else { -// intent.setClass(activity, HomeActivity::class.java) -// } - intent.setClass(activity, HomeV2Activity::class.java) - activity.startActivityFinish(intent) - } - } - /** * 微信绑定手机号 */ diff --git a/app/src/main/java/com/abbidot/tracker/vm/cn/RegisterCNViewModel.kt b/app/src/main/java/com/abbidot/tracker/vm/cn/RegisterCNViewModel.kt index 30d3c3a..7f55457 100644 --- a/app/src/main/java/com/abbidot/tracker/vm/cn/RegisterCNViewModel.kt +++ b/app/src/main/java/com/abbidot/tracker/vm/cn/RegisterCNViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.abbidot.baselibrary.util.Utils import com.abbidot.tracker.base.BaseFragment +import com.abbidot.tracker.bean.UserBean import com.abbidot.tracker.retrofit2.NetworkApi import kotlinx.coroutines.launch @@ -15,7 +16,7 @@ import kotlinx.coroutines.launch */ class RegisterCNViewModel : ViewModel() { val mSendCodeResultLiveData = MutableLiveData>() - val mValidateCodeResultLiveData = MutableLiveData>() + val mValidateCodeResultLiveData = MutableLiveData>() // val mPhoneRegisterResultLiveData = MutableLiveData>() val mSetNewPasswordResultLiveData = MutableLiveData>() diff --git a/app/src/main/java/com/abbidot/tracker/wxapi/WXEntryActivity.kt b/app/src/main/java/com/abbidot/tracker/wxapi/WXEntryActivity.kt index 960ac41..2aede7f 100644 --- a/app/src/main/java/com/abbidot/tracker/wxapi/WXEntryActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/wxapi/WXEntryActivity.kt @@ -23,7 +23,7 @@ class WXEntryActivity : WXBaseActivity() { override fun initData() { mLoginCNViewModel.mWXLoginResultLiveData.observe(this) { - LogUtil.e(it.toString()) + LogUtil.e("mWXLoginResultLiveData:$it") XEventBus.post(EventName.WXLoginResult, it) finish() } @@ -37,21 +37,25 @@ class WXEntryActivity : WXBaseActivity() { BaseResp.ErrCode.ERR_OK -> { result = "登录成功" val code = r.code + XEventBus.post(EventName.PostValue, code) LogUtil.e("${result}TAG_WECHAT_CODE", code) mLoginCNViewModel.wxLogin(code) } + BaseResp.ErrCode.ERR_AUTH_DENIED -> { result = "用户拒绝微信授权登录" LogUtil.e("ERROR", result) Toaster.show(result) finish() } + BaseResp.ErrCode.ERR_USER_CANCEL -> { result = "用户取消微信授权登录" LogUtil.e("ERROR", result) Toaster.show(result) finish() } + else -> { result = "微信授权登录失败,${baseResp.errStr},code=${r.code}" LogUtil.e("ERROR", result) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ce43e7e..ed37363 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -193,7 +193,6 @@ 验证码登录 - 验证码已发送 没有账号? @@ -213,7 +212,6 @@ 提交 - 地图 我的 @@ -918,5 +916,6 @@ terms_zh.html privacy_zh.html subscription_terms_conditions_zh.html + 该手机号码已被绑定 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 77e48b5..28af08f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1087,5 +1087,6 @@ terms_en.html privacy_en.html subscription_terms_conditions_en.html + 该手机号码已被绑定 \ No newline at end of file diff --git a/baselibrary/src/main/java/com/abbidot/baselibrary/constant/EventName.kt b/baselibrary/src/main/java/com/abbidot/baselibrary/constant/EventName.kt index 2dce1c3..d1f60ee 100644 --- a/baselibrary/src/main/java/com/abbidot/baselibrary/constant/EventName.kt +++ b/baselibrary/src/main/java/com/abbidot/baselibrary/constant/EventName.kt @@ -37,6 +37,7 @@ import androidx.annotation.StringDef EventName.SetGoal, EventName.RefreshMessage, EventName.BluetoothSwitch, + EventName.PostValue, EventName.BleReport, EventName.BleFirmwareVersion, EventName.BleReportData, @@ -112,5 +113,6 @@ annotation class EventName { //蓝牙透传 const val BlePassThrough = "blePassThrough" + const val PostValue = "value" } }