完善绑定设备流程,有套餐设备绑定也发送蓝牙1a指令
This commit is contained in:
@@ -28,9 +28,9 @@ android {
|
|||||||
applicationId "com.abbidot.tracker"
|
applicationId "com.abbidot.tracker"
|
||||||
minSdkVersion 23
|
minSdkVersion 23
|
||||||
targetSdkVersion 35
|
targetSdkVersion 35
|
||||||
versionCode 2103
|
versionCode 2104
|
||||||
// versionName "2.1.3"
|
// versionName "2.1.4"
|
||||||
versionName "2.1.3-Beta2"
|
versionName "2.1.4-Beta1"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,11 @@ package com.abbidot.tracker.ui.activity.device
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
|
import android.view.Gravity
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
|
import com.abbidot.baselibrary.constant.ConState
|
||||||
import com.abbidot.baselibrary.constant.EventName
|
import com.abbidot.baselibrary.constant.EventName
|
||||||
import com.abbidot.baselibrary.constant.MMKVKey
|
import com.abbidot.baselibrary.constant.MMKVKey
|
||||||
import com.abbidot.baselibrary.eventbus.XEventBus
|
import com.abbidot.baselibrary.eventbus.XEventBus
|
||||||
@@ -12,7 +15,9 @@ import com.abbidot.baselibrary.util.MMKVUtil
|
|||||||
import com.abbidot.baselibrary.util.Utils
|
import com.abbidot.baselibrary.util.Utils
|
||||||
import com.abbidot.tracker.R
|
import com.abbidot.tracker.R
|
||||||
import com.abbidot.tracker.base.BaseActivity
|
import com.abbidot.tracker.base.BaseActivity
|
||||||
|
import com.abbidot.tracker.bean.BleTrackDeviceBean
|
||||||
import com.abbidot.tracker.bean.PetBean
|
import com.abbidot.tracker.bean.PetBean
|
||||||
|
import com.abbidot.tracker.bean.ReceiveDeviceData
|
||||||
import com.abbidot.tracker.bean.SubscriptionsOrderBean
|
import com.abbidot.tracker.bean.SubscriptionsOrderBean
|
||||||
import com.abbidot.tracker.constant.ConstantInt
|
import com.abbidot.tracker.constant.ConstantInt
|
||||||
import com.abbidot.tracker.constant.ConstantString
|
import com.abbidot.tracker.constant.ConstantString
|
||||||
@@ -22,9 +27,14 @@ import com.abbidot.tracker.deprecated.ui.activity.vm.AddTrackerDeviceViewModel
|
|||||||
import com.abbidot.tracker.ui.activity.device.wifi.AddWifiPowerZone1Activity
|
import com.abbidot.tracker.ui.activity.device.wifi.AddWifiPowerZone1Activity
|
||||||
import com.abbidot.tracker.ui.activity.subscribe.SubscriptionPlanActivity
|
import com.abbidot.tracker.ui.activity.subscribe.SubscriptionPlanActivity
|
||||||
import com.abbidot.tracker.util.Util
|
import com.abbidot.tracker.util.Util
|
||||||
|
import com.abbidot.tracker.util.ViewUtil
|
||||||
|
import com.abbidot.tracker.util.bluetooth.SRBleCmdUtil
|
||||||
|
import com.abbidot.tracker.util.bluetooth.SRBleUtil
|
||||||
|
import com.abbidot.tracker.vm.ConnectionDeviceViewModel
|
||||||
import com.abbidot.tracker.vm.PetInfoViewModel
|
import com.abbidot.tracker.vm.PetInfoViewModel
|
||||||
import com.abbidot.tracker.vm.PetRelationViewModel
|
import com.abbidot.tracker.vm.PetRelationViewModel
|
||||||
import com.abbidot.tracker.vm.UserProfileViewModel
|
import com.abbidot.tracker.vm.UserProfileViewModel
|
||||||
|
import com.clj.fastble.BleManager
|
||||||
|
|
||||||
class AddPairedSuccessActivity :
|
class AddPairedSuccessActivity :
|
||||||
BaseActivity<ActivityAddPairedSuccessBinding>(ActivityAddPairedSuccessBinding::inflate) {
|
BaseActivity<ActivityAddPairedSuccessBinding>(ActivityAddPairedSuccessBinding::inflate) {
|
||||||
@@ -33,6 +43,7 @@ class AddPairedSuccessActivity :
|
|||||||
private val mPetViewModel: PetInfoViewModel by viewModels()
|
private val mPetViewModel: PetInfoViewModel by viewModels()
|
||||||
private val mUserProfileViewModel: UserProfileViewModel by viewModels()
|
private val mUserProfileViewModel: UserProfileViewModel by viewModels()
|
||||||
private val mPetRelationViewModel: PetRelationViewModel by viewModels()
|
private val mPetRelationViewModel: PetRelationViewModel by viewModels()
|
||||||
|
private val mConnectionDeviceViewModel: ConnectionDeviceViewModel by viewModels()
|
||||||
|
|
||||||
private lateinit var mSubscriptionsOrderBean: SubscriptionsOrderBean
|
private lateinit var mSubscriptionsOrderBean: SubscriptionsOrderBean
|
||||||
|
|
||||||
@@ -42,6 +53,9 @@ class AddPairedSuccessActivity :
|
|||||||
private var mMac = ""
|
private var mMac = ""
|
||||||
private var mPetBean: PetBean? = null
|
private var mPetBean: PetBean? = null
|
||||||
|
|
||||||
|
//判断设备可用套餐状态
|
||||||
|
private var mAvailableOrder = 0
|
||||||
|
|
||||||
override fun getTopBar() = mViewBinding.ilAddPairedSuccessTopBar.titleTopBar
|
override fun getTopBar() = mViewBinding.ilAddPairedSuccessTopBar.titleTopBar
|
||||||
|
|
||||||
override fun initData() {
|
override fun initData() {
|
||||||
@@ -61,13 +75,14 @@ class AddPairedSuccessActivity :
|
|||||||
tvPairSuccessDeviceOutId.text = mDeviceOutId
|
tvPairSuccessDeviceOutId.text = mDeviceOutId
|
||||||
setOnClickListenerViews(btnPairSuccessActivate)
|
setOnClickListenerViews(btnPairSuccessActivate)
|
||||||
}
|
}
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||||
|
mAddTrackerViewModel.getDeviceOrderStatus(this@AddPairedSuccessActivity, mDeviceOutId)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun liveDataObserve() {
|
override fun liveDataObserve() {
|
||||||
mAddTrackerViewModel.apply {
|
mAddTrackerViewModel.apply {
|
||||||
//获取设备套餐可用状态
|
//获取设备套餐可用状态
|
||||||
mDeviceOrderStatusLiveData.observe(this@AddPairedSuccessActivity) {
|
mDeviceOrderStatusLiveData.observe(this@AddPairedSuccessActivity) {
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
|
||||||
dealRequestResult(it, object : GetResultCallback {
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
override fun onResult(any: Any) {
|
override fun onResult(any: Any) {
|
||||||
it.getOrNull()?.apply {
|
it.getOrNull()?.apply {
|
||||||
@@ -80,35 +95,41 @@ class AddPairedSuccessActivity :
|
|||||||
o.deviceId = mDeviceId
|
o.deviceId = mDeviceId
|
||||||
o.userId = MMKVUtil.getString(MMKVKey.UserId)
|
o.userId = MMKVUtil.getString(MMKVKey.UserId)
|
||||||
}
|
}
|
||||||
|
mNetworkRequestsFailRetryCount = 0
|
||||||
|
|
||||||
|
mAvailableOrder = availableOrder
|
||||||
//判断设备是否有可用套餐
|
//判断设备是否有可用套餐
|
||||||
if (availableOrder == ConstantInt.Type1) {
|
if (availableOrder == ConstantInt.Type1) {
|
||||||
setButtonEnabled(
|
bleNotify()
|
||||||
mViewBinding.btnPairSuccessActivate, ConstantInt.Type0
|
connectBle(mMac)
|
||||||
)
|
|
||||||
//刷新设备绑定
|
|
||||||
mAddTrackerViewModel.updatePayDeviceState(
|
|
||||||
this@AddPairedSuccessActivity, mDeviceId
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
mAddTrackerViewModel.getIccId(
|
setButtonEnabled(
|
||||||
this@AddPairedSuccessActivity, mDeviceOutId
|
mViewBinding.btnPairSuccessActivate, ConstantInt.Type1
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onRequestError(exceptionCode: String?) {
|
||||||
|
LogUtil.e("获取设备套餐可用状态---->请求错误onRequestError,再次请求")
|
||||||
|
if (exceptionCode == mNetworkRequestsFailLimit) {
|
||||||
|
finish()
|
||||||
|
} else {
|
||||||
|
mAddTrackerViewModel.getDeviceOrderStatus(
|
||||||
|
this@AddPairedSuccessActivity, mDeviceOutId
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取设备sim卡IccId
|
//获取设备sim卡IccId
|
||||||
mGetIccIdLiveData.observe(this@AddPairedSuccessActivity) {
|
mGetIccIdLiveData.observe(this@AddPairedSuccessActivity) {
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
|
||||||
dealRequestResult(it, object : GetResultCallback {
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
override fun onResult(any: Any) {
|
override fun onResult(any: Any) {
|
||||||
it.getOrNull()?.apply {
|
it.getOrNull()?.apply {
|
||||||
mSubscriptionsOrderBean.deviceOutId = mDeviceOutId
|
mSubscriptionsOrderBean.deviceOutId = mDeviceOutId
|
||||||
mSubscriptionsOrderBean.iccid = iccid
|
mSubscriptionsOrderBean.iccid = iccid
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
|
||||||
|
|
||||||
val intent = Intent(mContext, SubscriptionPlanActivity::class.java)
|
val intent = Intent(mContext, SubscriptionPlanActivity::class.java)
|
||||||
intent.putExtra(ConstantString.LkSetMeal, mSubscriptionsOrderBean)
|
intent.putExtra(ConstantString.LkSetMeal, mSubscriptionsOrderBean)
|
||||||
@@ -116,6 +137,11 @@ class AddPairedSuccessActivity :
|
|||||||
startActivityFinish(intent)
|
startActivityFinish(intent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onRequestError(exceptionCode: String?) {
|
||||||
|
super.onRequestError(exceptionCode)
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,20 +152,18 @@ class AddPairedSuccessActivity :
|
|||||||
MMKVUtil.putInt(MMKVKey.isBindDevice, ConstantInt.isBind)
|
MMKVUtil.putInt(MMKVKey.isBindDevice, ConstantInt.isBind)
|
||||||
XEventBus.post(EventName.RefreshDevice)
|
XEventBus.post(EventName.RefreshDevice)
|
||||||
|
|
||||||
mUserProfileViewModel.updateMeasureUnit(ConstantInt.Type1)
|
SRBleUtil.instance.getConnectMacDevice(mMac)?.let { ble ->
|
||||||
// if (isFirstBind) {
|
SRBleUtil.instance.writeData(
|
||||||
// mUserProfileViewModel.updateMeasureUnit(ConstantInt.Type1)
|
ble.bleDevice, SRBleCmdUtil.instance.setWorkingStatus()
|
||||||
//// val intent = Intent(mContext, FirstSetPetTypeActivity::class.java)
|
)
|
||||||
//// intent.putExtra(ConstantString.isFirstBind, isFirstBind)
|
}
|
||||||
//// startActivityFinish(intent)
|
|
||||||
// } else finish()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onRequestError(exceptionCode: String?) {
|
override fun onRequestError(exceptionCode: String?) {
|
||||||
LogUtil.e("支付成功后,更新绑定状态------->请求宠物数据错误onRequestError,再次请求")
|
LogUtil.e("有套餐,更新绑定状态--->请求数据错误onRequestError,再次请求")
|
||||||
if (exceptionCode == mNetworkRequestsFailLimit) {
|
if (exceptionCode == mNetworkRequestsFailLimit) {
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
} else {
|
} else {
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
|
||||||
mAddTrackerViewModel.updatePayDeviceState(
|
mAddTrackerViewModel.updatePayDeviceState(
|
||||||
this@AddPairedSuccessActivity, mSubscriptionsOrderBean.deviceId
|
this@AddPairedSuccessActivity, mSubscriptionsOrderBean.deviceId
|
||||||
)
|
)
|
||||||
@@ -197,7 +221,7 @@ class AddPairedSuccessActivity :
|
|||||||
}
|
}
|
||||||
//绑定默认宠物
|
//绑定默认宠物
|
||||||
mPetRelationViewModel.mBindPetLiveData.observe(this@AddPairedSuccessActivity) {
|
mPetRelationViewModel.mBindPetLiveData.observe(this@AddPairedSuccessActivity) {
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
// setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
dealRequestResult(it, object : GetResultCallback {
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
override fun onResult(any: Any) {
|
override fun onResult(any: Any) {
|
||||||
XEventBus.post(EventName.RefreshPet)
|
XEventBus.post(EventName.RefreshPet)
|
||||||
@@ -216,15 +240,96 @@ class AddPairedSuccessActivity :
|
|||||||
}, 1500)
|
}, 1500)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onRequestError(exceptionCode: String?) {
|
// override fun onRequestError(exceptionCode: String?) {
|
||||||
super.onRequestError(exceptionCode)
|
// super.onRequestError(exceptionCode)
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
// setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
}
|
// }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun bleNotify() {
|
||||||
|
//接收蓝牙连接状态
|
||||||
|
XEventBus.observe(this, EventName.ConnectDeviceState) { ble: BleTrackDeviceBean ->
|
||||||
|
if (TextUtils.isEmpty(mMac)) return@observe
|
||||||
|
mViewBinding.ilPairSuccessBluetoothTips.trbBleConnectState.let { view ->
|
||||||
|
val bgColor = if (ble.conState == ConState.CONNECTED) {
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
|
view.text = getString(R.string.tracker_manage_set_ble_connect)
|
||||||
|
ContextCompat.getColor(mContext, R.color.cyan_color1)
|
||||||
|
} else {
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||||
|
view.text = getString(R.string.tracker_manage_set_ble_unconnect)
|
||||||
|
ContextCompat.getColor(mContext, R.color.red_color4)
|
||||||
|
}
|
||||||
|
view.setBackgroundColor(bgColor)
|
||||||
|
ViewUtil.instance.bleConStateToast(this, ble.conState, Gravity.CENTER)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//搜索蓝牙的设备状态
|
||||||
|
XEventBus.observe(this, EventName.ActionConDeviceState) { conState: Int ->
|
||||||
|
if (TextUtils.isEmpty(mMac)) return@observe
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||||
|
if (conState == ConState.DEVICE_NOT_FOUND) {
|
||||||
|
// ViewUtil.instance.showDialog(
|
||||||
|
// mContext,
|
||||||
|
// R.string.txt_no_search_device,
|
||||||
|
// object : BaseDialog.OnDialogOkListener {
|
||||||
|
// override fun onOkClick(dialog: BaseDialog<*>) {
|
||||||
|
// dialog.dismiss()
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// okTextResId = R.string.txt_sure,
|
||||||
|
// cancelTextResId = R.string.txt_cancel
|
||||||
|
// )
|
||||||
|
}
|
||||||
|
mViewBinding.ilPairSuccessBluetoothTips.trbBleConnectState.let { view ->
|
||||||
|
ViewUtil.instance.bleConActionState(this, view, conState)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//接收蓝牙返回数据
|
||||||
|
XEventBus.observe(this, EventName.DeviceReceiveData) { receiveData: ReceiveDeviceData ->
|
||||||
|
if (TextUtils.isEmpty(mMac)) return@observe
|
||||||
|
if (mMac == receiveData.mac) {
|
||||||
|
val data = receiveData.data
|
||||||
|
parseData(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析数据
|
||||||
|
*/
|
||||||
|
private fun parseData(data: ByteArray?) {
|
||||||
|
if (null != data && data.isNotEmpty()) {
|
||||||
|
val data0 = SRBleCmdUtil.instance.byteToInt(data[0])
|
||||||
|
val data1 = SRBleCmdUtil.instance.byteToInt(data[1])
|
||||||
|
val data2 = SRBleCmdUtil.instance.byteToInt(data[2])
|
||||||
|
if (data0 == 0x1A && data1 == 1 && data2 == 0) {
|
||||||
|
mUserProfileViewModel.updateMeasureUnit(ConstantInt.Type1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun connectBle(mac: String) {
|
||||||
|
mViewBinding.ilPairSuccessBluetoothTips.root.visibility = View.VISIBLE
|
||||||
|
//是否连接了蓝牙
|
||||||
|
if (BleManager.getInstance().isConnected(mac)) {
|
||||||
|
mViewBinding.ilPairSuccessBluetoothTips.trbBleConnectState.let {
|
||||||
|
it.setBackgroundColor(
|
||||||
|
ContextCompat.getColor(mContext, R.color.cyan_color1)
|
||||||
|
)
|
||||||
|
it.text = getString(R.string.tracker_manage_set_ble_connect)
|
||||||
|
}
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
|
} else {
|
||||||
|
mConnectionDeviceViewModel.connectDeviceToMac(this@AddPairedSuccessActivity, mac)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun addBindActivateDevice() {
|
private fun addBindActivateDevice() {
|
||||||
if (TextUtils.isEmpty(mDeviceOutId)) {
|
if (TextUtils.isEmpty(mDeviceOutId)) {
|
||||||
@@ -232,9 +337,12 @@ class AddPairedSuccessActivity :
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||||
mAddTrackerViewModel.getDeviceOrderStatus(
|
if (mAvailableOrder == ConstantInt.Type1) {
|
||||||
this@AddPairedSuccessActivity, mDeviceOutId
|
//刷新设备绑定
|
||||||
)
|
mAddTrackerViewModel.updatePayDeviceState(this@AddPairedSuccessActivity, mDeviceId)
|
||||||
|
} else {
|
||||||
|
mAddTrackerViewModel.getIccId(this@AddPairedSuccessActivity, mDeviceOutId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onClick(v: View?) {
|
override fun onClick(v: View?) {
|
||||||
|
|||||||
@@ -62,12 +62,22 @@
|
|||||||
app:lineHeight="@dimen/textSize20"
|
app:lineHeight="@dimen/textSize20"
|
||||||
app:typeface="@string/roboto_regular_font" />
|
app:typeface="@string/roboto_regular_font" />
|
||||||
|
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/il_pair_success_bluetooth_tips"
|
||||||
|
layout="@layout/layout_ble_connect_state"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:visibility="invisible"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_above="@id/btn_payment_success_continue"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:layout_marginTop="@dimen/dp_38" />
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceButton
|
<com.abbidot.tracker.widget.TypefaceButton
|
||||||
android:id="@+id/btn_pair_success_activate"
|
android:id="@+id/btn_pair_success_activate"
|
||||||
style="@style/my_match_RoundRect_Button_style"
|
style="@style/my_match_RoundRect_Button_style"
|
||||||
android:layout_height="@dimen/dp_50"
|
android:layout_height="@dimen/dp_50"
|
||||||
android:layout_marginHorizontal="@dimen/dp_16"
|
android:layout_marginHorizontal="@dimen/dp_16"
|
||||||
android:layout_marginTop="@dimen/dp_60"
|
|
||||||
android:layout_marginBottom="@dimen/dp_49"
|
android:layout_marginBottom="@dimen/dp_49"
|
||||||
android:text="@string/txt_continue"
|
android:text="@string/txt_continue"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
|||||||
Reference in New Issue
Block a user