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<26S7cElD!2u-{Y!1M@Q-NV~!;r;UP?LTaEH@=ypI3$8b8A<4VC7Qk
PAt8rOjM-wdt_-&WA;~X{
diff --git a/app/build.gradle b/app/build.gradle
index a0960c3..4fb3570 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,9 +28,9 @@ android {
applicationId "com.abbidot.tracker"
minSdkVersion 24
targetSdkVersion 35
- versionCode 2300
-// versionName "2.3.0"
- versionName "2.3.0-Beta2"
+ versionCode 2400
+// versionName "2.4.0"
+ versionName "2.4.0-Beta1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6c31c49..78073e3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -117,6 +117,9 @@
+
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"
}
}