1.修改没连接蓝牙,删除wifi,提示蓝牙没连接

2.删除led灯的色盘
3.优化蓝牙找设备声音播放问题
4.map页切换宠物,先清除上一个宠物的地图上信息
This commit is contained in:
yezhiqiu
2025-11-19 18:28:03 +08:00
parent 27f954a8c8
commit b4b8f22741
11 changed files with 58 additions and 27 deletions

View File

@@ -178,7 +178,7 @@ class LedLightActivity : BaseActivity<ActivityLedLightBinding>(ActivityLedLightB
mPetBean?.apply {
//查找是否连接了蓝牙
SRBleUtil.instance.getConnectMacDevice(macID)?.let {
updateConState(it)
updateConState(it, false)
}
mTrackerManageSetViewModel.getPetTrackerInfo(this@LedLightActivity, deviceId)
}
@@ -235,7 +235,7 @@ class LedLightActivity : BaseActivity<ActivityLedLightBinding>(ActivityLedLightB
/**
* 更新设备连接状态
*/
private fun updateConState(trackBleDevice: BleTrackDeviceBean) {
private fun updateConState(trackBleDevice: BleTrackDeviceBean, isShowToast: Boolean = true) {
mBleTrackDeviceBean = trackBleDevice
mViewBinding.ledLightBluetoothTips.trbBleConnectState.let { view ->
val bgColor = if (trackBleDevice.conState == ConState.CONNECTED) {
@@ -248,7 +248,9 @@ class LedLightActivity : BaseActivity<ActivityLedLightBinding>(ActivityLedLightB
}
view.setBackgroundColor(bgColor)
}
ViewUtil.instance.bleConStateToast(this, trackBleDevice.conState, Gravity.CENTER)
if (isShowToast) {
ViewUtil.instance.bleConStateToast(this, trackBleDevice.conState, Gravity.CENTER)
}
}
private fun setBleLedMode(mode: Int) {

View File

@@ -321,6 +321,10 @@ class EditWifiPowerZoneActivity :
}
private fun deleteWifiZone() {
if (null == mBleTrackDeviceBean) {
showToast(R.string.tracker_manage_set_ble_unconnect, gravity = Gravity.CENTER)
return
}
ViewUtil.instance.showDialog(
mContext, R.string.txt_delete_tips, object : BaseDialog.OnDialogOkListener {
override fun onOkClick(dialog: BaseDialog<*>) {
@@ -355,10 +359,10 @@ class EditWifiPowerZoneActivity :
}
} else if (data1 == 0x01 && data2 == 0x01) {
showLoading(false)
setButtonEnabled(mViewBinding.btnSaveWifiZone,ConstantInt.Type1)
setButtonEnabled(mViewBinding.btnSaveWifiZone, ConstantInt.Type1)
showToast(R.string.txt_duplicate_wifi_not, gravity = Gravity.CENTER)
} else {
setButtonEnabled(mViewBinding.btnSaveWifiZone,ConstantInt.Type1)
setButtonEnabled(mViewBinding.btnSaveWifiZone, ConstantInt.Type1)
showLoading(false)
showToast("Fail", gravity = Gravity.CENTER)
LogUtil.e("设备wifi指令失败")
@@ -382,12 +386,16 @@ class EditWifiPowerZoneActivity :
}
private fun senCmd(cmd: ByteArray) {
if (null == mBleTrackDeviceBean) {
showToast(R.string.tracker_manage_set_ble_unconnect, gravity = Gravity.CENTER)
return
}
mBleTrackDeviceBean?.apply {
//判断是否有蓝牙连接
if (BleManager.getInstance().isConnected(bleDevice)) {
showLoading(true, R.string.txt_please_wait)
mRightImageButton?.isEnabled = false
setButtonEnabled(mViewBinding.btnSaveWifiZone,ConstantInt.Type0)
setButtonEnabled(mViewBinding.btnSaveWifiZone, ConstantInt.Type0)
SRBleUtil.instance.writeData(bleDevice, cmd)
} else {
showToast(R.string.tracker_manage_set_ble_unconnect, gravity = Gravity.CENTER)

View File

@@ -342,12 +342,10 @@ class LiveActivityV2 : BaseActivity<ActivityLiveV2Binding>(ActivityLiveV2Binding
}
//接收蓝牙连接状态
XEventBus.observe(
this, EventName.ConnectDeviceState
) { trackBleDevice: BleTrackDeviceBean ->
XEventBus.observe(this, EventName.ConnectDeviceState) { trackBle: BleTrackDeviceBean ->
mMapDeviceBean?.apply {
if (trackBleDevice.mac == deviceMacId) {
updateConState(trackBleDevice)
if (trackBle.mac == deviceMacId) {
updateConState(trackBle)
}
}
}
@@ -586,7 +584,7 @@ class LiveActivityV2 : BaseActivity<ActivityLiveV2Binding>(ActivityLiveV2Binding
if (isLiveJump) {
openNetLive(ConstantInt.Type2)
}
} else if (trackBleDevice.conState == ConState.DISCONNECTED) {
} else {
if (isLiveJump && isStartLive) {
mPetBean?.apply {
//直播开启后,就去获取直播轨迹
@@ -594,9 +592,6 @@ class LiveActivityV2 : BaseActivity<ActivityLiveV2Binding>(ActivityLiveV2Binding
mMapLiveViewModel.getPetLivePoint(deviceId)
}
}
} else {
// showToast(R.string.tracker_manage_set_ble_unconnect)
// mViewBinding.ilLiveV2BluetoothFindDevice.ivMapLiveV2BleConState.setValue(0)
}
}
@@ -940,6 +935,7 @@ class LiveActivityV2 : BaseActivity<ActivityLiveV2Binding>(ActivityLiveV2Binding
*/
private fun stopLive() {
mPetBean?.apply {
setButtonEnabled(mViewBinding.ilLiveV2OperateLayout.llLiveV2StopLive, ConstantInt.Type0)
if (BleManager.getInstance().isConnected(macID)) {
SRBleUtil.instance.isConnectBleSendCmdData(
macID, SRBleCmdUtil.instance.setLiveSwitch(0, 0)
@@ -992,8 +988,8 @@ class LiveActivityV2 : BaseActivity<ActivityLiveV2Binding>(ActivityLiveV2Binding
isOpenSound = true
setSound()
showAndHideFindLayout()
mFindBleDeviceViewModel.stopFindDevice()
} else {
mFindBleDeviceViewModel.stopFindDevice()
finish()
}
}

View File

@@ -72,6 +72,14 @@ class HomeMapCommon @Inject constructor() : BaseMapCommon() {
return null
}
fun clearMarker() {
if (null != mHomeMapBaiduMapFragment) {
mHomeMapBaiduMapFragment!!.mBaiduMap?.clear()
} else if (null != mHomeMapGoogleMapFragment) {
mHomeMapGoogleMapFragment!!.mGoogleMap?.clear()
}
}
fun refreshPetCurrentLocation(latitude: Double, longitude: Double, isAnimMoveCamera: Boolean) {
if (null != mHomeMapBaiduMapFragment) {
mHomeMapBaiduMapFragment?.apply {

View File

@@ -512,6 +512,9 @@ class MapV2Fragment : BaseFragment<FragmentMapV2Binding>(FragmentMapV2Binding::i
)
if (mHomeMapCommon.isMapLoadOk()) {
mHomeMapCommon.clearMarker()
mViewBinding.miHomeMapAddressView.visibility = View.GONE
mViewBinding.rvHomeMapDeviceMsg.visibility = View.GONE
showLoading(true)
val pet = mHomeV2Activity.mPetList[position]
//重新设置地图宠物头像

View File

@@ -26,6 +26,7 @@ import com.abbidot.tracker.databinding.FragmentGoogleMapBinding
import com.abbidot.tracker.util.ImageUtil
import com.abbidot.tracker.util.LonAndLatUtil
import com.abbidot.tracker.util.Util
import com.abbidot.tracker.util.ViewUtil
import com.abbidot.tracker.widget.MapDeviceNetView
import com.abbidot.tracker.widget.MapMarkerInfoView
import com.google.android.gms.location.FusedLocationProviderClient
@@ -1059,6 +1060,7 @@ abstract class BaseGoogleMapFragment :
*/
fun setMarkerInfoViewOffset(markerInfoView: MapMarkerInfoView, latLng: LatLng) {
mGoogleMap?.projection?.toScreenLocation(latLng)?.let {
ViewUtil.instance.viewShow(markerInfoView)
markerInfoView.setOffsetXY(it.x, it.y - AppUtils.dpToPx(56))
}
}

View File

@@ -2,9 +2,9 @@ package com.abbidot.tracker.ui.fragment.map.googlemap
import android.animation.ValueAnimator
import android.content.Context
import android.view.View
import android.view.animation.LinearInterpolator
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels
import com.abbidot.baselibrary.util.AppUtils
import com.abbidot.baselibrary.util.Utils
@@ -94,7 +94,7 @@ class HomeMapGoogleMapFragment : BaseGoogleMapFragment() {
// mMarker?.tag = history
// showMarkerInfoWindow(history)
mMarkerInfoView.visibility = View.VISIBLE
ViewUtil.instance.viewShow(mMarkerInfoView)
mMarkerInfoView.setShowText(timeString, it)
}
}
@@ -106,7 +106,7 @@ class HomeMapGoogleMapFragment : BaseGoogleMapFragment() {
//设置自定义头部地点布局
mGoogleMap?.apply {
setOnCameraMoveListener {
setMarkerInfoViewOffset()
if (mMarkerInfoView.isVisible) setMarkerInfoViewOffset()
}
getLastLocation()
}

View File

@@ -35,6 +35,7 @@ import android.widget.RelativeLayout
import android.widget.TextView
import androidx.annotation.DrawableRes
import androidx.core.content.ContextCompat
import androidx.core.view.isGone
import androidx.core.view.setPadding
import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.FragmentActivity
@@ -1110,4 +1111,8 @@ class ViewUtil private constructor() {
}
}
}
fun viewShow(view: View) {
if (view.isGone) view.visibility = View.VISIBLE
}
}

View File

@@ -49,7 +49,7 @@ class FindBleDeviceViewModel : ViewModel() {
//播放的速度
private var mSetPlaySpeed = 0.5f
private var isStartFindBleDevice = false
private var isStopReadRssi = false
private var mCountDownTimer: CountDownTimer? = null
@@ -79,7 +79,6 @@ class FindBleDeviceViewModel : ViewModel() {
viewModelScope.launch(Dispatchers.IO) {
isStartFindBleDevice = true
mAudioManager = activity.getSystemService(Service.AUDIO_SERVICE) as AudioManager
mPhoneOriginalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)
mMaxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
@@ -89,6 +88,7 @@ class FindBleDeviceViewModel : ViewModel() {
if (BleManager.getInstance().isConnected(mac)) {
LogUtil.e("是已连接的设备,直接获取信号")
mCountDownTimer?.cancel()
activity.runOnUiThread {
countDownReadConnectRssi {
SRBleUtil.instance.readConnectRssi(mac, object : BleRssiCallback() {
@@ -97,7 +97,11 @@ class FindBleDeviceViewModel : ViewModel() {
}
override fun onRssiSuccess(rssi: Int) {
LogUtil.e("FindBleDeviceViewModel--->获取连接设备信号onRssiSuccess$rssi...")
LogUtil.e("FindBleDeviceViewModel--->获取连接设备信号onRssiSuccess$rssi...$isStopReadRssi")
if (isStopReadRssi) {
mCountDownTimer?.cancel()
return
}
speed = getPlaySpeed(rssi)
val value = getSignalValue(rssi)
signalView.setValue(value)
@@ -272,20 +276,20 @@ class FindBleDeviceViewModel : ViewModel() {
* 停止查找设备
*/
fun stopFindDevice() {
if (!isStartFindBleDevice) return
SRBleUtil.instance.cancelBleScan("停止查找设备取消扫描蓝牙")
isStopReadRssi = true
mCountDownTimer?.cancel()
//还原手机原来的音量
setVolume(mPhoneOriginalVolume)
isStartFindBleDevice = false
mCountDownTimer?.cancel()
}
override fun onCleared() {
super.onCleared()
LogUtil.e("FindBleDeviceViewModel onCleared")
stopFindDevice()
mSoundPool?.apply {
if (mStreamID > 0) stop(mStreamID)
release()
}
stopFindDevice()
}
}

View File

@@ -15,6 +15,7 @@ import com.abbidot.tracker.bean.PetBean
import com.abbidot.tracker.constant.ConstantInt
import com.abbidot.tracker.retrofit2.NetworkApi
import com.abbidot.tracker.util.Util
import com.abbidot.tracker.util.ViewUtil
import com.abbidot.tracker.util.bluetooth.SRBleUtil
import kotlinx.coroutines.launch
@@ -116,6 +117,7 @@ class MapViewModel : ViewModel() {
rvMsg: RecyclerView,
isLive: Boolean = false
) {
ViewUtil.instance.viewShow(rvMsg)
mapDeviceBean.apply {
deviceMsgList.clear()
//设备关机

View File

@@ -93,7 +93,8 @@
android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_50"
android:background="@drawable/shape8_white_bg"
android:padding="@dimen/dp_16">
android:padding="@dimen/dp_16"
android:visibility="gone">
<com.abbidot.tracker.widget.TypefaceTextView
android:id="@+id/tv_led_light_current_rgb"