From 46c0a5b2a40c1d6bb4ca8c985a1964495de461b8 Mon Sep 17 00:00:00 2001 From: yezhiqiu <983577727@qq.com> Date: Mon, 11 May 2026 17:04:05 +0800 Subject: [PATCH] =?UTF-8?q?1.=20wifi=20zone=E5=AE=9A=E4=BD=8D=E7=82=B9?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=EF=BC=8C=E6=94=B9=E4=B8=BA=E6=8B=96=E5=8A=A8?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E8=AE=BE=E7=BD=AE=202.=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=A2=AB=E7=BB=91=E5=AE=9A=E8=AE=BE=E5=A4=87=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=A2=AB=E7=BB=91=E5=AE=9A=E7=9A=84=E9=82=AE?= =?UTF-8?q?=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/abbidot/tracker/base/BaseActivity.kt | 22 ++++--- .../abbidot/tracker/bean/DeviceDetailBean.kt | 20 ++++--- .../tracker/constant/GetResultCallback.kt | 3 +- .../account/NotificationV2Activity.kt | 2 +- .../activity/device/AddNewTracker3Activity.kt | 4 +- .../activity/device/set/LedLightActivity.kt | 4 +- .../tracker/ui/activity/map/LiveActivityV3.kt | 4 +- .../ui/fragment/device/HomeTrackFragment.kt | 2 +- .../tracker/ui/fragment/map/MapV3Fragment.kt | 2 +- .../googlemap/WiFiZone2GoogleMapFragment.kt | 60 ++++++++++++------- .../abbidot/tracker/widget/BrowserView.java | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- .../network/base/BaseNetworkApi.kt | 21 +++---- 15 files changed, 91 insertions(+), 61 deletions(-) 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 2774781..75acd31 100644 --- a/app/src/main/java/com/abbidot/tracker/base/BaseActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/base/BaseActivity.kt @@ -570,16 +570,24 @@ abstract class BaseActivity(val inflater: (inflater: LayoutInfl val exceptionMessage = it.exceptionOrNull()?.message //服务器返回错误code val exceptionCode: String? = it.exceptionOrNull()?.toString() - LogUtil.d("Throwable?", "code=${exceptionCode},${exceptionMessage}") + LogUtil.d("Throwable异常", "code=${exceptionCode},${exceptionMessage}") if (null != exceptionCode) { //处理注册用户已存在的情况 if (exceptionCode == ErrorCode.USER_HAS_EXIST.toString()) { getResultCallback.onRequestError(exceptionCode) } + + if (exceptionCode == ErrorCode.DEVICE_HAS_BIND.toString()) { + val str = + String.format(getString(R.string.txt_device_has_bind), exceptionMessage) + showToast(str) + getResultCallback.onInterceptCode() + return + } //拦截请求异常code - if (netErrorCodeTips(exceptionCode, isShowCodeError)) { + else if (netErrorCodeTips(exceptionCode, isShowCodeError)) { //已经处理相关错误码就直接返回 - getResultCallback.onErrorCode() + getResultCallback.onInterceptCode() return } } @@ -685,10 +693,10 @@ abstract class BaseActivity(val inflater: (inflater: LayoutInfl return true } //该设备已被绑定 - ErrorCode.DEVICE_HAS_BIND.toString() -> { - if (isShowCodeError) showToast(R.string.txt_device_has_bind) - return true - } +// ErrorCode.DEVICE_HAS_BIND.toString() -> { +// if (isShowCodeError) showToast(R.string.txt_device_has_bind) +// return true +// } //设备不存在 ErrorCode.DEVICE_NOT_EXIST.toString() -> { if (isShowCodeError) showToast(R.string.txt_no_dfu) diff --git a/app/src/main/java/com/abbidot/tracker/bean/DeviceDetailBean.kt b/app/src/main/java/com/abbidot/tracker/bean/DeviceDetailBean.kt index 349ecbd..a2ad770 100644 --- a/app/src/main/java/com/abbidot/tracker/bean/DeviceDetailBean.kt +++ b/app/src/main/java/com/abbidot/tracker/bean/DeviceDetailBean.kt @@ -9,12 +9,16 @@ import kotlinx.parcelize.Parcelize * @description:设备详情 */ @Parcelize -data class DeviceDetailBean(var deviceOutId: String, - var deviceId: String, - var macId: String, - var pet: PetBean?, - var fenceCount: Int, - var surplusDays: Int, - var familieCount: Int,var deviceInfo:DeviceInfoBean?) : Parcelable { - constructor() : this("", "", "", null, 0, 0,0,null) +data class DeviceDetailBean( + var deviceOutId: String, + var deviceId: String, + var macId: String, + var email: String, + var pet: PetBean?, + var fenceCount: Int, + var surplusDays: Int, + var familieCount: Int, + var deviceInfo: DeviceInfoBean? +) : Parcelable { + constructor() : this("", "", "", "", null, 0, 0, 0, null) } diff --git a/app/src/main/java/com/abbidot/tracker/constant/GetResultCallback.kt b/app/src/main/java/com/abbidot/tracker/constant/GetResultCallback.kt index 6341cd9..7e1505a 100644 --- a/app/src/main/java/com/abbidot/tracker/constant/GetResultCallback.kt +++ b/app/src/main/java/com/abbidot/tracker/constant/GetResultCallback.kt @@ -10,5 +10,6 @@ interface GetResultCallback { //默认可以不重写,相当于java中的default修饰的 fun onRequestError(exceptionCode: String?) {} - fun onErrorCode() {} + //已拦截的code + fun onInterceptCode() {} } \ No newline at end of file diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/account/NotificationV2Activity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/account/NotificationV2Activity.kt index c7d90f5..3764405 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/account/NotificationV2Activity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/account/NotificationV2Activity.kt @@ -91,7 +91,7 @@ class NotificationV2Activity : } } - override fun onErrorCode() { + override fun onInterceptCode() { mPullAction?.let { p -> mViewBinding.ilNotificationV2MessageLayout.pullRefreshAndLoadMoreLayout.finishActionRun( p diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/device/AddNewTracker3Activity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/device/AddNewTracker3Activity.kt index a94927e..c86e364 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/device/AddNewTracker3Activity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/device/AddNewTracker3Activity.kt @@ -135,8 +135,8 @@ class AddNewTracker3Activity : } } - override fun onErrorCode() { - super.onErrorCode() + override fun onInterceptCode() { + super.onInterceptCode() mViewBinding.ivAddNewTracker3RefreshBtn.isEnabled = true setNoConnectState() } 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 3228b1c..cb47df7 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 @@ -159,7 +159,7 @@ class LedLightActivity : BaseActivity(ActivityLedLightB setLedControlState() } - override fun onErrorCode() { + override fun onInterceptCode() { setLedControlState() } }) @@ -177,7 +177,7 @@ class LedLightActivity : BaseActivity(ActivityLedLightB setLedModeControlState() } - override fun onErrorCode() { + override fun onInterceptCode() { setLedModeControlState() } }) diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt index dd69069..7b92180 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt @@ -377,7 +377,7 @@ class LiveActivityV3 : BaseActivity(ActivityLiveV3Binding } } - override fun onErrorCode() { + override fun onInterceptCode() { setButtonEnabled( mViewBinding.ilLiveV2OperateLayout.llLiveV2StopLive, ConstantInt.Type1 ) @@ -468,7 +468,7 @@ class LiveActivityV3 : BaseActivity(ActivityLiveV3Binding } } - override fun onErrorCode() { + override fun onInterceptCode() { setErrorLedState() } 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 844605c..9521b8a 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 @@ -415,7 +415,7 @@ class HomeTrackFragment : } } - override fun onErrorCode() { + override fun onInterceptCode() { setLedErrorState() } diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt index c068d82..4b84651 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt @@ -271,7 +271,7 @@ class MapV3Fragment : BaseFragment(FragmentMapV3Binding::i mMapViewModel.updateMillisInFuture(0.05f) } - override fun onErrorCode() { + override fun onInterceptCode() { stopRefreshLocation() } diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/WiFiZone2GoogleMapFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/WiFiZone2GoogleMapFragment.kt index fe11c3f..4bff829 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/WiFiZone2GoogleMapFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/WiFiZone2GoogleMapFragment.kt @@ -8,7 +8,6 @@ import com.abbidot.tracker.bean.HistoryDataBean import com.abbidot.tracker.vm.GeoCoderViewModel import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.model.LatLng -import com.google.android.gms.maps.model.Marker /** *Created by .yzq on 2024/6/4/004. @@ -34,26 +33,33 @@ class WiFiZone2GoogleMapFragment : BaseGoogleMapFragment() { mDecWifiAddressData = HistoryDataBean() googleMap.apply { - setOnMarkerDragListener(object : GoogleMap.OnMarkerDragListener { - override fun onMarkerDrag(marker: Marker) { +// setOnMarkerDragListener(object : GoogleMap.OnMarkerDragListener { +// override fun onMarkerDrag(marker: Marker) { +// +// } +// +// override fun onMarkerDragEnd(marker: Marker) { +// marker.position.let { +// val newLatLng = toGpsLatLon(LatLng(it.latitude, it.longitude)) +// geoCoderLatLon(newLatLng.latitude, newLatLng.longitude) +// } +// } +// +// override fun onMarkerDragStart(marker: Marker) { +// } +// }) +// +// setOnMapLongClickListener { latLng -> +// mMarker?.position = latLng +// val newLatLng = toGpsLatLon(latLng) +// geoCoderLatLon(newLatLng.latitude, newLatLng.longitude) +// } - } - - override fun onMarkerDragEnd(marker: Marker) { - marker.position.let { - val newLatLng = toGpsLatLon(LatLng(it.latitude, it.longitude)) - geoCoderLatLon(newLatLng.latitude, newLatLng.longitude) - } - } - - override fun onMarkerDragStart(marker: Marker) { - } - }) - - setOnMapLongClickListener { latLng -> - mMarker?.position = latLng - val newLatLng = toGpsLatLon(latLng) - geoCoderLatLon(newLatLng.latitude, newLatLng.longitude) + setOnCameraIdleListener { + getCameraCenterLatLng(this, true) + } + setOnCameraMoveListener { + getCameraCenterLatLng(this) } //点击地图任意地方都不消失自定义头部地点布局 @@ -80,6 +86,16 @@ class WiFiZone2GoogleMapFragment : BaseGoogleMapFragment() { } } + private fun getCameraCenterLatLng(googleMap: GoogleMap, isNeedGeoCoder: Boolean = false) { + googleMap.cameraPosition.let { + mMarker?.position = it.target + if (isNeedGeoCoder) { + val newLatLng = toGpsLatLon(it.target) + geoCoderLatLon(newLatLng.latitude, newLatLng.longitude) + } + } + } + private fun geoCoderLatLon(latitude: Double, longitude: Double) { mDecWifiAddressData?.apply { this.latitude = latitude @@ -91,10 +107,10 @@ class WiFiZone2GoogleMapFragment : BaseGoogleMapFragment() { override fun locationSuccess(location: Location?) { location?.apply { val latLng = LatLng(latitude, longitude) - moveCameraLocation(latLng, true) + moveCameraLocation(latLng) if (null == mMarker) { mMarker = addImageMarker( - latLng, R.drawable.icon_location_svg, anchorCenter = false, isDraggable = true + latLng, R.drawable.icon_location_svg, anchorCenter = false ) } else mMarker?.position = latLng geoCoderLatLon(latitude, longitude) diff --git a/app/src/main/java/com/abbidot/tracker/widget/BrowserView.java b/app/src/main/java/com/abbidot/tracker/widget/BrowserView.java index 0fba7a3..e5bf051 100644 --- a/app/src/main/java/com/abbidot/tracker/widget/BrowserView.java +++ b/app/src/main/java/com/abbidot/tracker/widget/BrowserView.java @@ -327,7 +327,7 @@ public final class BrowserView extends WebView { DialogUtils.Companion.showEditTextDialog(mWebView.getContext(), message, defaultValue , new GetResultCallback() { @Override - public void onErrorCode() { + public void onInterceptCode() { } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2f17556..79f83c3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -398,7 +398,7 @@ Vorbereitung des Updates Gerät erfolgreich verbunden Aktuell neueste Version - Tracker ist mit anderem Konto gekoppelt + Der Tracker ist mit %s gekoppelt. Aktivität Route Haustier diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ef67747..b88209e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -442,7 +442,7 @@ 准备升级 设备连接成功 已是最新版本 - 该设备已被绑定 + 该设备已被%s绑定 活动 路线 宠物 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a59661c..1cc364a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -500,7 +500,7 @@ Preparing for Upgrade Device successfully connected Already latest version - The tracker is paired with another account + The tracker is paired with %s. Activity Route Pet diff --git a/baselibrary/src/main/java/com/abbidot/baselibrary/network/base/BaseNetworkApi.kt b/baselibrary/src/main/java/com/abbidot/baselibrary/network/base/BaseNetworkApi.kt index f24baef..f41e76c 100644 --- a/baselibrary/src/main/java/com/abbidot/baselibrary/network/base/BaseNetworkApi.kt +++ b/baselibrary/src/main/java/com/abbidot/baselibrary/network/base/BaseNetworkApi.kt @@ -72,7 +72,10 @@ abstract class BaseNetworkApi(private val baseUrl: String) : IService { return Result.success("${ErrorCode.CREDIT_CARD_PAY_FAIL}" as T) } } - + //设备已被绑定 + else if (response.code == ErrorCode.DEVICE_HAS_BIND) { + throw NetworkErrorCodeException.of(response.code, response.message + "") + } throw NetworkErrorCodeException.of( response.code, "exception code is ${response.code},response code not 200" @@ -81,15 +84,11 @@ abstract class BaseNetworkApi(private val baseUrl: String) : IService { //适用于只管请求成功(T=String),不需要处理结果数据 val data = response.data if (null == data || data == "") { - //处理信用卡支付返回结果 - if (response.code == ErrorCode.OK) { - val message = response.message - if (message == "支付成功") { - return Result.success("${ErrorCode.CREDIT_CARD_PAY_SUCCESS}" as T) - } + val message = response.message + if (message == "支付成功") { + return Result.success("${ErrorCode.CREDIT_CARD_PAY_SUCCESS}" as T) } - //throw NetworkException.of(ErrorCode.VALUE_IS_NULL, "response data is null") return Result.success("${response.code}" as T) } @@ -114,11 +113,13 @@ abstract class BaseNetworkApi(private val baseUrl: String) : IService { //失败重试请求次数 private const val RETRY_COUNT = 1 + //请求超时时间 - private const val REQUEST_TIMEOUT=40L + private const val REQUEST_TIMEOUT = 40L private val defaultOkHttpClient by lazy { val builder = OkHttpClient.Builder().callTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS) - .connectTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS).readTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS) + .readTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS) .writeTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS).retryOnConnectionFailure(true) //添加拦截器 builder.addInterceptor(CommonRequestInterceptor())