From 7a496631abbb071173d3d93ba5f364594dc675ae Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 3 Aug 2022 20:52:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97=E3=80=81?= =?UTF-8?q?=E9=99=90=E5=88=B6=E5=A4=9A=E8=BF=9B=E7=A8=8B=E9=80=9A=E8=AE=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mulprocess/OrderServiceImpl.java | 8 ++- .../passenger/ui/leftmenu/LeftMenuOpen.kt | 56 +++++++++++++------ .../ui/leftmenu/OverlayLeftViewUtils.kt | 2 +- .../taxi/passenger/ui/video/VideoActivity.kt | 23 ++++++-- 4 files changed, 63 insertions(+), 26 deletions(-) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java index 73eb617d82..006be38689 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java @@ -2,15 +2,19 @@ package com.mogo.och.taxi.passenger.mulprocess; import android.os.RemoteException; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen; import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils; public class OrderServiceImpl extends ILeftMenuService.Stub { + public static final String TAG = "mulprocessOrderServiceImpl"; + @Override public void transmissionIndex(int index) throws RemoteException { - + CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 transmissionIndex"+index); UiThreadHandler.getsUiHandler().post(() -> { OverlayLeftViewUtils.INSTANCE.transmissionIndexGet(index); }); @@ -18,11 +22,13 @@ public class OrderServiceImpl extends ILeftMenuService.Stub { @Override public void registerCallback(ICallback cb) throws RemoteException { + CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 registerCallback"); LeftMenuOpen.INSTANCE.registerCallbackHost(cb); } @Override public void unRegisterCallback(ICallback cb) throws RemoteException { + CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 unRegisterCallback"); LeftMenuOpen.INSTANCE.unregisterCallbackHost(cb); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt index 18e823eb47..39cb1770a3 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt @@ -10,6 +10,8 @@ import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.view.WindowManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.utilcode.util.Utils import com.mogo.och.taxi.passenger.R @@ -25,6 +27,8 @@ import rx.schedulers.Schedulers @SuppressLint("StaticFieldLeak") object LeftMenuOpen { + const val TAG = "mulprocessLeftMenuOpen" + private var windowView: View? = null private var wl: WindowManager.LayoutParams? = null private var windowManager: WindowManager? = null @@ -43,7 +47,7 @@ object LeftMenuOpen { var checkIndex = OverlayLeftViewUtils.LIVE private var lastClickTime = 0L - private const val FAST_CLICK_DELAY_TIME = 1000 // 防止事件发送过快 + private const val FAST_CLICK_DELAY_TIME = 1300 // 防止事件发送过快 fun setValue( @@ -51,7 +55,8 @@ object LeftMenuOpen { wl: WindowManager.LayoutParams?, windowManager: WindowManager?, close: (view: View, windowManager: WindowManager?) -> Unit, - open: (view: View, windowManager: WindowManager?) -> Unit + open: (view: View, windowManager: WindowManager?) -> Unit, + isMainProcess: Boolean ) { this.open = open this.close = close @@ -61,7 +66,9 @@ object LeftMenuOpen { dragList.forEach { registerDragView(it) } - registerC() + if(!isMainProcess) { + registerC() + } } fun clearValue() { @@ -168,9 +175,9 @@ object LeftMenuOpen { fun registerDragView(view: View?) { if (view != null) { dragList.add(view) - if (orderService == null) { - registerC() - } +// if (orderService == null) { +// registerC() +// } view.setOnTouchListener(ItemViewTouchListener()) view.setOnClickListener { open?.let { it1 -> it1(windowView!!, windowManager) } @@ -193,6 +200,7 @@ object LeftMenuOpen { } fun transmissionIndex(index:Int){ + CallerLogger.d(M_TAXI_P + TAG, "tran--transmissionIndex---$index") if (orderService == null) { registerC() } @@ -200,22 +208,23 @@ object LeftMenuOpen { } fun registerCallbackHost(cb:ICallback?){ - if (orderService == null) { - registerC() - } +// if (orderService == null) { +// registerC() +// } cb?.let { - icallbacks?.register(it) + icallbacks.register(it) } } fun unregisterCallbackHost(cb:ICallback?){ cb?.let { - icallbacks?.unregister(it) + icallbacks.unregister(it) } } fun registerCallback(cb:ICallback?){ + CallerLogger.d(M_TAXI_P + TAG, "tran--registerCallback--注册") if (orderService == null) { registerC() } @@ -225,6 +234,7 @@ object LeftMenuOpen { } fun unregisterCallback(cb:ICallback?){ + CallerLogger.d(M_TAXI_P + TAG, "tran--unregisterCallback--反注册") cb?.let { orderService?.unRegisterCallback(it) } @@ -240,15 +250,20 @@ object LeftMenuOpen { Observable.empty().subscribeOn(Schedulers.io()) .subscribe(object : Observer { override fun onCompleted() { - val len = icallbacks.beginBroadcast() - for (i in 0 until len) { - try { - icallbacks.getBroadcastItem(i).onResult(meters, timeInSecond, speed) - } catch (e: RemoteException) { - e.printStackTrace() + CallerLogger.d(M_TAXI_P + TAG, "callCallBack$meters--$timeInSecond--$speed") + try { + val len = icallbacks.beginBroadcast() + for (i in 0 until len) { + try { + icallbacks.getBroadcastItem(i).onResult(meters, timeInSecond, speed) + } catch (e: RemoteException) { + e.printStackTrace() + } } + icallbacks.finishBroadcast() + }catch (e:Exception){ + CallerLogger.e(M_TAXI_P + TAG, "callCallBack${e.message}") } - icallbacks.finishBroadcast() } override fun onError(e: Throwable?) {} override fun onNext(t: String?) {} @@ -273,7 +288,12 @@ object LeftMenuOpen { * 主进程在显示是主动调用 * video进程在天津View是判断是否调用了 */ + @Synchronized private fun registerC() { + if(orderService!=null){ + return + } + CallerLogger.d(M_TAXI_P + TAG, "tran--registerC--获取jni") val resolver: ContentResolver = Utils.getApp().contentResolver cu = resolver.query( diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt index 50a5e225b5..53ba767892 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt @@ -177,7 +177,7 @@ object OverlayLeftViewUtils { addTarget(context) - LeftMenuOpen.setValue(view, params, windowManager,::close,::open) + LeftMenuOpen.setValue(view, params, windowManager,::close,::open,isMainProcess) try { windowManager!!.addView(overlayView, params) checkProcess() diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt index d3da306254..f2b1d190ea 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt @@ -11,6 +11,8 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.AppCompatImageView import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.taxi.passenger.R @@ -52,6 +54,7 @@ class VideoActivity : AppCompatActivity() { private lateinit var acivTitleIcon: AppCompatImageView private lateinit var tvTitle: TextView private var subscribe: Subscription?=null + private val TAG = "mulprocessVideoActivity" private val arrayListOf = ArrayList() @@ -352,7 +355,7 @@ class VideoActivity : AppCompatActivity() { } } - subscribe = Observable.interval(0, 8, TimeUnit.SECONDS) + subscribe = Observable.interval(2, 8, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : Observer { @@ -387,15 +390,13 @@ class VideoActivity : AppCompatActivity() { } } } - subscribe?.let { - if(it.isUnsubscribed){ - it.unsubscribe() - } - } + cancleSubscribe() } @Subscribe(threadMode = ThreadMode.MAIN) fun finishActivity(event: FinishActivity){ + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "finishActivity(event)") + cancleSubscribe() val intent = Intent() val parse = Uri.parse("mogo://launcher/main/switch2?type=launch") intent.data = parse @@ -405,6 +406,7 @@ class VideoActivity : AppCompatActivity() { } override fun onDestroy() { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "onDestroy()") super.onDestroy() EventBus.getDefault().unregister(this) LeftMenuOpen.unregisterCallback(callBack) @@ -412,6 +414,15 @@ class VideoActivity : AppCompatActivity() { OverlayLeftViewUtils.dismissOverlayView(false) FloatingDistanceInfoUtils.dismissOverlayView() FixMemoryLeak.fixLeak(this) + cancleSubscribe() + } + + private fun cancleSubscribe(){ + subscribe?.let { + if(!it.isUnsubscribed){ + it.unsubscribe() + } + } } private fun releaseOnNewInstance() {