完善绑定设备流程,有套餐设备绑定也发送蓝牙1a指令
This commit is contained in:
@@ -28,9 +28,9 @@ android {
|
||||
applicationId "com.abbidot.tracker"
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 35
|
||||
versionCode 2103
|
||||
// versionName "2.1.3"
|
||||
versionName "2.1.3-Beta2"
|
||||
versionCode 2104
|
||||
// versionName "2.1.4"
|
||||
versionName "2.1.4-Beta1"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
||||
@@ -2,8 +2,11 @@ package com.abbidot.tracker.ui.activity.device
|
||||
|
||||
import android.content.Intent
|
||||
import android.text.TextUtils
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
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.MMKVKey
|
||||
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.tracker.R
|
||||
import com.abbidot.tracker.base.BaseActivity
|
||||
import com.abbidot.tracker.bean.BleTrackDeviceBean
|
||||
import com.abbidot.tracker.bean.PetBean
|
||||
import com.abbidot.tracker.bean.ReceiveDeviceData
|
||||
import com.abbidot.tracker.bean.SubscriptionsOrderBean
|
||||
import com.abbidot.tracker.constant.ConstantInt
|
||||
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.subscribe.SubscriptionPlanActivity
|
||||
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.PetRelationViewModel
|
||||
import com.abbidot.tracker.vm.UserProfileViewModel
|
||||
import com.clj.fastble.BleManager
|
||||
|
||||
class AddPairedSuccessActivity :
|
||||
BaseActivity<ActivityAddPairedSuccessBinding>(ActivityAddPairedSuccessBinding::inflate) {
|
||||
@@ -33,6 +43,7 @@ class AddPairedSuccessActivity :
|
||||
private val mPetViewModel: PetInfoViewModel by viewModels()
|
||||
private val mUserProfileViewModel: UserProfileViewModel by viewModels()
|
||||
private val mPetRelationViewModel: PetRelationViewModel by viewModels()
|
||||
private val mConnectionDeviceViewModel: ConnectionDeviceViewModel by viewModels()
|
||||
|
||||
private lateinit var mSubscriptionsOrderBean: SubscriptionsOrderBean
|
||||
|
||||
@@ -42,6 +53,9 @@ class AddPairedSuccessActivity :
|
||||
private var mMac = ""
|
||||
private var mPetBean: PetBean? = null
|
||||
|
||||
//判断设备可用套餐状态
|
||||
private var mAvailableOrder = 0
|
||||
|
||||
override fun getTopBar() = mViewBinding.ilAddPairedSuccessTopBar.titleTopBar
|
||||
|
||||
override fun initData() {
|
||||
@@ -61,13 +75,14 @@ class AddPairedSuccessActivity :
|
||||
tvPairSuccessDeviceOutId.text = mDeviceOutId
|
||||
setOnClickListenerViews(btnPairSuccessActivate)
|
||||
}
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||
mAddTrackerViewModel.getDeviceOrderStatus(this@AddPairedSuccessActivity, mDeviceOutId)
|
||||
}
|
||||
|
||||
override fun liveDataObserve() {
|
||||
mAddTrackerViewModel.apply {
|
||||
//获取设备套餐可用状态
|
||||
mDeviceOrderStatusLiveData.observe(this@AddPairedSuccessActivity) {
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||
dealRequestResult(it, object : GetResultCallback {
|
||||
override fun onResult(any: Any) {
|
||||
it.getOrNull()?.apply {
|
||||
@@ -80,35 +95,41 @@ class AddPairedSuccessActivity :
|
||||
o.deviceId = mDeviceId
|
||||
o.userId = MMKVUtil.getString(MMKVKey.UserId)
|
||||
}
|
||||
mNetworkRequestsFailRetryCount = 0
|
||||
|
||||
mAvailableOrder = availableOrder
|
||||
//判断设备是否有可用套餐
|
||||
if (availableOrder == ConstantInt.Type1) {
|
||||
setButtonEnabled(
|
||||
mViewBinding.btnPairSuccessActivate, ConstantInt.Type0
|
||||
)
|
||||
//刷新设备绑定
|
||||
mAddTrackerViewModel.updatePayDeviceState(
|
||||
this@AddPairedSuccessActivity, mDeviceId
|
||||
)
|
||||
bleNotify()
|
||||
connectBle(mMac)
|
||||
} else {
|
||||
mAddTrackerViewModel.getIccId(
|
||||
this@AddPairedSuccessActivity, mDeviceOutId
|
||||
setButtonEnabled(
|
||||
mViewBinding.btnPairSuccessActivate, ConstantInt.Type1
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onRequestError(exceptionCode: String?) {
|
||||
LogUtil.e("获取设备套餐可用状态---->请求错误onRequestError,再次请求")
|
||||
if (exceptionCode == mNetworkRequestsFailLimit) {
|
||||
finish()
|
||||
} else {
|
||||
mAddTrackerViewModel.getDeviceOrderStatus(
|
||||
this@AddPairedSuccessActivity, mDeviceOutId
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//获取设备sim卡IccId
|
||||
mGetIccIdLiveData.observe(this@AddPairedSuccessActivity) {
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||
dealRequestResult(it, object : GetResultCallback {
|
||||
override fun onResult(any: Any) {
|
||||
it.getOrNull()?.apply {
|
||||
mSubscriptionsOrderBean.deviceOutId = mDeviceOutId
|
||||
mSubscriptionsOrderBean.iccid = iccid
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||
|
||||
val intent = Intent(mContext, SubscriptionPlanActivity::class.java)
|
||||
intent.putExtra(ConstantString.LkSetMeal, mSubscriptionsOrderBean)
|
||||
@@ -116,6 +137,11 @@ class AddPairedSuccessActivity :
|
||||
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)
|
||||
XEventBus.post(EventName.RefreshDevice)
|
||||
|
||||
mUserProfileViewModel.updateMeasureUnit(ConstantInt.Type1)
|
||||
// if (isFirstBind) {
|
||||
// mUserProfileViewModel.updateMeasureUnit(ConstantInt.Type1)
|
||||
//// val intent = Intent(mContext, FirstSetPetTypeActivity::class.java)
|
||||
//// intent.putExtra(ConstantString.isFirstBind, isFirstBind)
|
||||
//// startActivityFinish(intent)
|
||||
// } else finish()
|
||||
SRBleUtil.instance.getConnectMacDevice(mMac)?.let { ble ->
|
||||
SRBleUtil.instance.writeData(
|
||||
ble.bleDevice, SRBleCmdUtil.instance.setWorkingStatus()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onRequestError(exceptionCode: String?) {
|
||||
LogUtil.e("支付成功后,更新绑定状态------->请求宠物数据错误onRequestError,再次请求")
|
||||
LogUtil.e("有套餐,更新绑定状态--->请求数据错误onRequestError,再次请求")
|
||||
if (exceptionCode == mNetworkRequestsFailLimit) {
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||
} else {
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||
mAddTrackerViewModel.updatePayDeviceState(
|
||||
this@AddPairedSuccessActivity, mSubscriptionsOrderBean.deviceId
|
||||
)
|
||||
@@ -197,7 +221,7 @@ class AddPairedSuccessActivity :
|
||||
}
|
||||
//绑定默认宠物
|
||||
mPetRelationViewModel.mBindPetLiveData.observe(this@AddPairedSuccessActivity) {
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||
// setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||
dealRequestResult(it, object : GetResultCallback {
|
||||
override fun onResult(any: Any) {
|
||||
XEventBus.post(EventName.RefreshPet)
|
||||
@@ -216,15 +240,96 @@ class AddPairedSuccessActivity :
|
||||
}, 1500)
|
||||
}
|
||||
|
||||
override fun onRequestError(exceptionCode: String?) {
|
||||
super.onRequestError(exceptionCode)
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||
}
|
||||
// override fun onRequestError(exceptionCode: String?) {
|
||||
// super.onRequestError(exceptionCode)
|
||||
// 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() {
|
||||
if (TextUtils.isEmpty(mDeviceOutId)) {
|
||||
@@ -232,9 +337,12 @@ class AddPairedSuccessActivity :
|
||||
return
|
||||
}
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||
mAddTrackerViewModel.getDeviceOrderStatus(
|
||||
this@AddPairedSuccessActivity, mDeviceOutId
|
||||
)
|
||||
if (mAvailableOrder == ConstantInt.Type1) {
|
||||
//刷新设备绑定
|
||||
mAddTrackerViewModel.updatePayDeviceState(this@AddPairedSuccessActivity, mDeviceId)
|
||||
} else {
|
||||
mAddTrackerViewModel.getIccId(this@AddPairedSuccessActivity, mDeviceOutId)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onClick(v: View?) {
|
||||
|
||||
@@ -62,12 +62,22 @@
|
||||
app:lineHeight="@dimen/textSize20"
|
||||
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
|
||||
android:id="@+id/btn_pair_success_activate"
|
||||
style="@style/my_match_RoundRect_Button_style"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
android:layout_marginHorizontal="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_60"
|
||||
android:layout_marginBottom="@dimen/dp_49"
|
||||
android:text="@string/txt_continue"
|
||||
android:textStyle="bold"
|
||||
|
||||
Reference in New Issue
Block a user