diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index d74028ff9d..38e481ae81 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -162,6 +162,7 @@ public class BaseTaxiPassengerPresenter extends Presenter { mView.showOrHideServingOrderFragment(false,true); + mView.showOrHideOverMapViewFragment(false); mView.showOrHideStartAutopilotView(false,false); mView.showOrHidePressengerCheckPager(false, "", "", "", "", ""); @@ -217,6 +218,7 @@ public class BaseTaxiPassengerPresenter extends Presenter { mView.showOrHideServingOrderFragment(false,true); mView.showOrHideArrivedEndLayout(true, order.endSiteAddr,order.orderNo); diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/OverviewFragment.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/OverviewFragment.kt index ee3174b8ee..7229e39206 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/OverviewFragment.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/OverviewFragment.kt @@ -1,16 +1,33 @@ package com.mogo.och.taxi.passenger.ui +import android.content.Context import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.mogo.commons.mvp.BaseFragment +import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager import com.mogo.eagle.core.function.view.OverMapView +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.constant.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.model.TaxiPassengerModel +import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils +import io.reactivex.Observable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import java.util.concurrent.TimeUnit class OverviewFragment : BaseFragment() { private var overmapview: OverMapView?=null + private var lifeVisable2User = false + private var finalVisable2User = false + + private var subscribe: Disposable?=null + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -23,24 +40,83 @@ class OverviewFragment : BaseFragment() { viewGroup.removeView(overmapview) } overmapview?.onCreateView(savedInstanceState) + CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"onCreateView") + statusChange(TaxiPassengerModel.getInstance().curOrderStatus) return overmapview!! } override fun onResume() { super.onResume() overmapview?.onResume() + CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"onResume") + lifeVisable2User = true + checkVisable() } override fun onPause() { super.onPause() overmapview?.onPause() + CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"onPause") + lifeVisable2User = false + checkVisable() + } + + private fun checkVisable() { + + subscribe?.let { + if (!it.isDisposed) { + it.dispose() + } + } + subscribe = Observable.timer(500, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { + if(lifeVisable2User){//展示 + if(!finalVisable2User){ + CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"正在展示") + finalVisable2User = true + statusChange(TaxiPassengerModel.getInstance().curOrderStatus) + } + + }else{//没有展示 + if(finalVisable2User){ + CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"已经隐藏") + finalVisable2User = false + stopAndClear() + } + } + } } override fun onDestroy() { super.onDestroy() overmapview?.onDestroy() + CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"onDestroy") } + private fun statusChange(currentStatusEnum: TaxiPassengerOrderStatusEnum){ + CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"状态变更最新状态:$currentStatusEnum") + when (currentStatusEnum) { + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + CallerFuncBizManager.bizProvider.getAllV2XEvents() + } + TaxiPassengerOrderStatusEnum.ArriveAtEnd,TaxiPassengerOrderStatusEnum.JourneyCompleted, + TaxiPassengerOrderStatusEnum.Cancel -> { + // stop clear + stopAndClear() + } + else -> {} + } + } + + private fun stopAndClear(){ + CallerFuncBizManager.bizProvider.stopQueryV2XEvents() + UiThreadHandler.post({ + overmapview?.clearV2XMarkers() + }, UiThreadHandler.MODE.QUEUE) + } + + override fun getLayoutId(): Int { return 0 } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java index c7ce8bb793..fcd52eea97 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java @@ -11,6 +11,7 @@ import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentTransaction; +import androidx.lifecycle.Lifecycle; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.mvp.MvpFragment; @@ -356,21 +357,25 @@ public class TaxiPassengerBaseFragment extends MvpFragment