From b4b8f227417c27249a6a1e77a2b9d5cda5e12dc0 Mon Sep 17 00:00:00 2001 From: yezhiqiu <983577727@qq.com> Date: Wed, 19 Nov 2025 18:28:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=B2=A1=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E8=93=9D=E7=89=99=EF=BC=8C=E5=88=A0=E9=99=A4wifi=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=93=9D=E7=89=99=E6=B2=A1=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=202.=E5=88=A0=E9=99=A4led=E7=81=AF=E7=9A=84=E8=89=B2=E7=9B=98?= =?UTF-8?q?=203.=E4=BC=98=E5=8C=96=E8=93=9D=E7=89=99=E6=89=BE=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=A3=B0=E9=9F=B3=E6=92=AD=E6=94=BE=E9=97=AE=E9=A2=98?= =?UTF-8?q?=204.map=E9=A1=B5=E5=88=87=E6=8D=A2=E5=AE=A0=E7=89=A9=EF=BC=8C?= =?UTF-8?q?=E5=85=88=E6=B8=85=E9=99=A4=E4=B8=8A=E4=B8=80=E4=B8=AA=E5=AE=A0?= =?UTF-8?q?=E7=89=A9=E7=9A=84=E5=9C=B0=E5=9B=BE=E4=B8=8A=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/activity/device/set/LedLightActivity.kt | 8 +++++--- .../device/wifi/EditWifiPowerZoneActivity.kt | 14 +++++++++++--- .../tracker/ui/activity/map/LiveActivityV2.kt | 16 ++++++---------- .../tracker/ui/common/map/HomeMapCommon.kt | 8 ++++++++ .../tracker/ui/fragment/map/MapV2Fragment.kt | 3 +++ .../map/googlemap/BaseGoogleMapFragment.kt | 2 ++ .../map/googlemap/HomeMapGoogleMapFragment.kt | 6 +++--- .../java/com/abbidot/tracker/util/ViewUtil.kt | 5 +++++ .../tracker/vm/FindBleDeviceViewModel.kt | 18 +++++++++++------- .../com/abbidot/tracker/vm/MapViewModel.kt | 2 ++ app/src/main/res/layout/activity_led_light.xml | 3 ++- 11 files changed, 58 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/device/set/LedLightActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/device/set/LedLightActivity.kt index 3354eec..36818b1 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/device/set/LedLightActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/device/set/LedLightActivity.kt @@ -178,7 +178,7 @@ class LedLightActivity : BaseActivity(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(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(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) { diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/device/wifi/EditWifiPowerZoneActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/device/wifi/EditWifiPowerZoneActivity.kt index 3bcc7cd..f923ed9 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/device/wifi/EditWifiPowerZoneActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/device/wifi/EditWifiPowerZoneActivity.kt @@ -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) diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV2.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV2.kt index 714dbab..7a73062 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV2.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV2.kt @@ -342,12 +342,10 @@ class LiveActivityV2 : BaseActivity(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 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 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 */ 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 isOpenSound = true setSound() showAndHideFindLayout() - mFindBleDeviceViewModel.stopFindDevice() } else { + mFindBleDeviceViewModel.stopFindDevice() finish() } } diff --git a/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommon.kt b/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommon.kt index 2311616..8845668 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommon.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommon.kt @@ -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 { diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV2Fragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV2Fragment.kt index e229b58..573d814 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV2Fragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV2Fragment.kt @@ -512,6 +512,9 @@ class MapV2Fragment : BaseFragment(FragmentMapV2Binding::i ) if (mHomeMapCommon.isMapLoadOk()) { + mHomeMapCommon.clearMarker() + mViewBinding.miHomeMapAddressView.visibility = View.GONE + mViewBinding.rvHomeMapDeviceMsg.visibility = View.GONE showLoading(true) val pet = mHomeV2Activity.mPetList[position] //重新设置地图宠物头像 diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/BaseGoogleMapFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/BaseGoogleMapFragment.kt index 2bca610..affa396 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/BaseGoogleMapFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/BaseGoogleMapFragment.kt @@ -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)) } } diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragment.kt index 272f8f9..666bcdd 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragment.kt @@ -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() } diff --git a/app/src/main/java/com/abbidot/tracker/util/ViewUtil.kt b/app/src/main/java/com/abbidot/tracker/util/ViewUtil.kt index be2c0ee..f97355c 100644 --- a/app/src/main/java/com/abbidot/tracker/util/ViewUtil.kt +++ b/app/src/main/java/com/abbidot/tracker/util/ViewUtil.kt @@ -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 + } } \ No newline at end of file diff --git a/app/src/main/java/com/abbidot/tracker/vm/FindBleDeviceViewModel.kt b/app/src/main/java/com/abbidot/tracker/vm/FindBleDeviceViewModel.kt index b547819..284845a 100644 --- a/app/src/main/java/com/abbidot/tracker/vm/FindBleDeviceViewModel.kt +++ b/app/src/main/java/com/abbidot/tracker/vm/FindBleDeviceViewModel.kt @@ -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() } } \ No newline at end of file diff --git a/app/src/main/java/com/abbidot/tracker/vm/MapViewModel.kt b/app/src/main/java/com/abbidot/tracker/vm/MapViewModel.kt index 2112f6e..2a831a8 100644 --- a/app/src/main/java/com/abbidot/tracker/vm/MapViewModel.kt +++ b/app/src/main/java/com/abbidot/tracker/vm/MapViewModel.kt @@ -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() //设备关机 diff --git a/app/src/main/res/layout/activity_led_light.xml b/app/src/main/res/layout/activity_led_light.xml index 7c03a5f..456085a 100644 --- a/app/src/main/res/layout/activity_led_light.xml +++ b/app/src/main/res/layout/activity_led_light.xml @@ -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">