From 76f167c05ab9b44293e7f5b6ef36ed0d3e03b2a4 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 2 Sep 2022 11:52:37 +0800 Subject: [PATCH 1/6] =?UTF-8?q?[2.10.0]=20taxi=E5=8F=B8=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83=E5=81=B6=E7=8E=B0=E5=86=85?= =?UTF-8?q?=E5=AD=98=E6=B3=84=E6=BC=8F=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/taxi/ui/TaxiFragment.java | 18 ------- .../taxi/ui/TaxiOperationDatasFragment.java | 6 +++ .../taxi/ui/TaxiPersonalDialogFragment.java | 37 ++++++++----- .../och/taxi/ui/base/AvoidLeakDialog.java | 54 +++++++++++++++++++ 4 files changed, 83 insertions(+), 32 deletions(-) create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/base/AvoidLeakDialog.java diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index a19ec5a511..319bcc9533 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -2,7 +2,6 @@ package com.mogo.och.taxi.ui; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; -import android.content.DialogInterface; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; @@ -203,23 +202,6 @@ public class TaxiFragment extends BaseTaxiTabFragment routeList) { -// if (routeList == null ) return; -// double distance = calculateTravelDistance(mogoLocation,routeList); -// if ( MogoOCHTaxiModel.getInstance().checkCurrentOCHOrder() ) { -// MogoOCHTaxiModel.getInstance().getCurrentOCHOrder().decreaseTravelDistance( distance ); -// updateOrderBaseStatusInfo(); -// } -// CallerLogger.INSTANCE.d(M_TAXI + "lianglihui","routeResult 剩余导航距离:"+distance); -// if (routeList != null && routeList.size() >0){ -// CallerLogger.INSTANCE.d(M_TAXI + "lianglihui","routeResult:"+routeList.size()); -// //adas回调导航路径 绘制引导线 -// if ( ochTaxiOverlayManager == null){ -// ochTaxiOverlayManager = new TaxiOverlayManager(this.getContext()); -// } -// ochTaxiOverlayManager.draw(mogoLocation,routeList); -// } -// } @Override public void onMapLoaded() { } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java index 81a3ebc07c..a6e5bbb3e4 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java @@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.taxi.R; +import com.mogo.och.taxi.model.TaxiModel; import java.util.ArrayList; import java.util.List; @@ -53,6 +54,11 @@ public class TaxiOperationDatasFragment extends BaseTaxiUIFragment { mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext)); mAdapter = new OperationDataAdapter(mContext, mData); mRecyclerView.setAdapter(mAdapter); + initDatas(); + } + + private void initDatas() { + TaxiModel.getInstance().queryDriverServiceData(); } public void setmType(int type) { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java index 0578000d65..1b2df283a0 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java @@ -1,5 +1,6 @@ package com.mogo.och.taxi.ui; +import android.app.Dialog; import android.content.Context; import android.graphics.Color; import android.graphics.Point; @@ -36,6 +37,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.R; import com.mogo.och.taxi.bean.OrderQueryRespBean; import com.mogo.och.taxi.constant.TaxiOrderTypeEnum; +import com.mogo.och.taxi.ui.base.AvoidLeakDialog; import java.util.ArrayList; import java.util.Calendar; @@ -74,6 +76,15 @@ public class TaxiPersonalDialogFragment extends DialogFragment implements View.O public TaxiPersonalDialogFragment(TaxiFragment taxiFragment){ mTaxiFragment = taxiFragment; } + + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + AvoidLeakDialog dialog = new AvoidLeakDialog(getContext()); + dialog.setHostFragmentReference(this); + return dialog; + } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -82,6 +93,11 @@ public class TaxiPersonalDialogFragment extends DialogFragment implements View.O return view; } + @Override + public void dismissAllowingStateLoss() { + super.dismissAllowingStateLoss(); + } + @Override public void onStart() { super.onStart(); @@ -182,14 +198,15 @@ public class TaxiPersonalDialogFragment extends DialogFragment implements View.O public void onPageScrollStateChanged(int state) { } }); - mOperationViewPager.setAdapter(new OrdersOperationFragmentAdapter(getChildFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)); + mOperationViewPager.setAdapter(new OrdersOperationFragmentAdapter( + getChildFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)); fragments.get(0).setmType(0); - if (mTaxiFragment == null){ - dismiss(); - }else { - mTaxiFragment.queryDriverServiceData(); - } +// if (mTaxiFragment == null){ +// dismiss(); +// }else { +// mTaxiFragment.queryDriverServiceData(); +// } } public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum){ @@ -430,14 +447,6 @@ public class TaxiPersonalDialogFragment extends DialogFragment implements View.O orderTypeBt = itemView.findViewById(R.id.order_type_bt); dividerLine = itemView.findViewById(R.id.module_och_taxi_order_divider); mBootNoDataView = itemView.findViewById(R.id.boot_refresh_no_data_view); - - //orderId已经换成orderNo,所以显示 -// if (DebugConfig.isDebug()){ -// -// orderNumTv.setVisibility(View.GONE); -// }else { -// orderNumTv.setVisibility(View.GONE); -// } } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/base/AvoidLeakDialog.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/base/AvoidLeakDialog.java new file mode 100644 index 0000000000..e332766931 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/base/AvoidLeakDialog.java @@ -0,0 +1,54 @@ +package com.mogo.och.taxi.ui.base; + +import android.app.Dialog; +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.DialogFragment; +import java.lang.ref.WeakReference; + +/** + * @author: wangmingjun + * @date: 2022/9/1 + */ +public class AvoidLeakDialog extends Dialog { + + private WeakReference hostFragmentReference; + + public void setHostFragmentReference(DialogFragment hostFragment) { + this.hostFragmentReference = new WeakReference<>(hostFragment); + } + + public AvoidLeakDialog(@NonNull Context context) { + super(context); + } + + public AvoidLeakDialog(@NonNull Context context, int themeResId) { + super(context, themeResId); + } + + protected AvoidLeakDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) { + super(context, cancelable, cancelListener); + } + + @Override + public void setOnCancelListener(@Nullable OnCancelListener listener) { + } + + @Override + public void setOnDismissListener(@Nullable OnDismissListener listener) { + } + + @Override + public void setOnShowListener(@Nullable OnShowListener listener) { + } + + @Override + public void dismiss() { + super.dismiss(); + if (null != hostFragmentReference && null != hostFragmentReference.get()) { + hostFragmentReference.get().dismissAllowingStateLoss(); + } + } +} From 234cf4ed345f7f3e632b50d576e6074d9377b861 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 2 Sep 2022 14:28:26 +0800 Subject: [PATCH 2/6] =?UTF-8?q?[fix]=20=E6=B7=BB=E5=8A=A0=E5=88=A4?= =?UTF-8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java index a6e5bbb3e4..aaea75f515 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java @@ -79,7 +79,7 @@ public class TaxiOperationDatasFragment extends BaseTaxiUIFragment { mDurationData.add(dailyTimeDuration); mOrderNumData.add(dailyOrderNum); mData.addAll(mDurationData); - mAdapter.notifyDataSetChanged(); + if (mAdapter != null) mAdapter.notifyDataSetChanged(); } class OperationDataAdapter extends RecyclerView.Adapter { From efc83605c1ecc002717f67d91f55c0f846952903 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Fri, 2 Sep 2022 14:30:38 +0800 Subject: [PATCH 3/6] =?UTF-8?q?[change]=20=E4=BF=AE=E6=94=B9WebSocket?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E5=AD=98=E5=9C=A8=E5=A4=9A=E4=B8=AA=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=20=E4=BA=A7=E7=94=9F=E5=BC=82=E5=B8=B8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../support/adas/high/socket/FpgaSocket.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java index 380642b78a..a3a88aa9d1 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java @@ -50,7 +50,7 @@ public class FpgaSocket implements IWebSocket { private static final String TAG = FpgaSocket.class.getSimpleName(); private OkHttpClient client; - private WebSocket mWebSocket; + private volatile WebSocket mWebSocket; private EchoWebSocketListener listener; private IWebSocketConnectListener mWebSocketConnectListener; @@ -68,6 +68,10 @@ public class FpgaSocket implements IWebSocket { * 是否是被动关闭 */ private final AtomicBoolean isPassiveClose = new AtomicBoolean(false); + /** + * 是否已经连接成功 + */ + private final AtomicBoolean isConnected = new AtomicBoolean(false); /** * 接收数据超时原因 null时表示不是接收数据超时的原因 @@ -111,14 +115,14 @@ public class FpgaSocket implements IWebSocket { connect("连接中"); } - private void connect(String msg) { + private synchronized void connect(String msg) { if (mWebSocket == null) { if (mWebSocketConnectListener != null) mWebSocketConnectListener.onConnecting(msg); Request request = new Request.Builder() .url(wsHost) .build(); - client.newWebSocket(request, listener); + mWebSocket = client.newWebSocket(request, listener); } } @@ -151,7 +155,7 @@ public class FpgaSocket implements IWebSocket { @Override public boolean sendDataWebSocket(String data) { - if (mWebSocket != null) { + if (mWebSocket != null && isConnected.get()) { boolean result = mWebSocket.send(data); CupidLogUtils.i(TAG, "WebSocket send String= " + data + ", result= " + result); return result; @@ -161,7 +165,7 @@ public class FpgaSocket implements IWebSocket { @Override public boolean sendDataWebSocket(ByteString data) { - if (mWebSocket != null) { + if (mWebSocket != null && isConnected.get()) { boolean result = mWebSocket.send(data); CupidLogUtils.i(TAG, "WebSocket send ByteString=" + ByteUtil.byteArrToHex(data.toByteArray()) + ", result= " + result); return result; @@ -200,8 +204,9 @@ public class FpgaSocket implements IWebSocket { @Override public void onOpen(@NonNull WebSocket webSocket, @NonNull Response response) { super.onOpen(webSocket, response); - mWebSocket = webSocket; +// mWebSocket = webSocket; boolean isConnect = response.code() == 101; + isConnected.set(isConnect); if (!isConnect) { onPassiveClose(1001, "協議不匹配"); } else { @@ -342,6 +347,7 @@ public class FpgaSocket implements IWebSocket { * @param code code */ private void close(boolean isInitiative, int code) { + isConnected.set(false); String closeReason = null; if (isInitiative) { closeReason = "用户主动关闭"; From f7ca9fde1801d2f514e7294a09b220c7af1581d7 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 2 Sep 2022 15:57:09 +0800 Subject: [PATCH 4/6] [fix] --- .../java/com/mogo/och/taxi/model/TaxiLoginModel.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt index 2f830b5383..be43294c32 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt @@ -71,7 +71,7 @@ object TaxiLoginModel{ override fun onSuccess(data: BaseData?) { if (null != data && 0 == data.code) { // 获取验证码成功 - ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_get_code_success)) + ToastUtils.showShort(mContext?.getString(R.string.module_och_taxi_login_get_code_success)) iTaxiLoginCallback?.getPhoneCodeSuccess() } else { if (data != null) { @@ -82,9 +82,9 @@ object TaxiLoginModel{ override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext!!.getString(R.string.network_error_tip)) + ToastUtils.showShort(mContext?.getString(R.string.network_error_tip)) } else { - ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip)) + ToastUtils.showShort(mContext?.getString(R.string.request_error_tip)) } } @@ -101,7 +101,7 @@ object TaxiLoginModel{ override fun onSuccess(data: TaxiLoginRespBean?) { if (null != data && 0 == data.code) { // 获取验证码成功 - ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_login_success)) + ToastUtils.showShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) StatusManager.setLoginStatus(TaxiLoginStatusEnum.Login) iTaxiLoginCallback?.loginSuccess() } else { @@ -113,9 +113,9 @@ object TaxiLoginModel{ override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext!!.getString(R.string.network_error_tip)) + ToastUtils.showShort(mContext?.getString(R.string.network_error_tip)) } else { - ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip)) + ToastUtils.showShort(mContext?.getString(R.string.request_error_tip)) } } From ecb2103cac77031ec0d554d17f469bc1cc3168cd Mon Sep 17 00:00:00 2001 From: lianglihui Date: Fri, 2 Sep 2022 17:15:17 +0800 Subject: [PATCH 5/6] =?UTF-8?q?2.10.0=20hdmap=E6=95=B0=E6=8D=AE=E9=87=87?= =?UTF-8?q?=E9=9B=86=20=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/impl/collect/MoGoMapDataCollectProvider.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/collect/MoGoMapDataCollectProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/collect/MoGoMapDataCollectProvider.kt index 07b03a3d26..6deeeabac3 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/collect/MoGoMapDataCollectProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/collect/MoGoMapDataCollectProvider.kt @@ -151,8 +151,9 @@ class MoGoMapDataCollectProvider : IMoGoMapDataCollectProvider, OnTaskListener, override fun onLocationChanged(location: MogoLocation?, from: Int) { location ?: return executor.get()?.updateLocation( - location.longitude, - location.latitude, + location.longitude, + location.latitude, + location.altitude, location.bearing, location.speed, location.provider == "GPS_RTK") From d679e870368f1582e1ea20518088953cec104879 Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 2 Sep 2022 19:46:51 +0800 Subject: [PATCH 6/6] =?UTF-8?q?[=E7=BA=BF=E7=A8=8B=E4=BC=98=E5=8C=96]?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f676cc3b18..92779969b6 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,7 @@ buildscript { classpath "com.bytedance.android.byteX:base-plugin:0.3.0" classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}" classpath 'com.volcengine:apm_insight_plugin:1.4.1' - classpath 'com.mogo.thread.opt:plg:2.1.2' + classpath 'com.mogo.thread.opt:plg:2.1.3' classpath 'com.mogo.cloud:systrace:1.0.1' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'