速度不进行传递、只有在蘑菇咨询和影视娱乐 再传递里程信息、1s只传递一条信息

This commit is contained in:
yangyakun
2022-08-01 20:35:25 +08:00
parent 1dee603e18
commit 88bc7eb684
6 changed files with 104 additions and 18 deletions

View File

@@ -194,7 +194,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
}
/**
* 订单轮询
* 订单轮询 初始化主Fragment的Presenter init 调用
*/
public void startOrStopOrderLoop(){
if (NetworkUtils.isConnected(mContext)) {
@@ -202,6 +202,9 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
}
}
/**
* 关闭订单轮训 页面摧毁时
*/
public void release() {
startOrStopOrderLoop(false);
startOrStopQueryOrderRemaining(false);
@@ -255,6 +258,11 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
CallLimitingVelocityListenerManager.INSTANCE.removeListener(limitingVelocityListener);
}
/**
* 订单轮训
* @param start true 开启订单轮训
* false 关闭订单轮训
*/
private void startOrStopOrderLoop(boolean start) {
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "startOrStopOrderLoop() " + start);
if (start) {
@@ -671,6 +679,9 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
}
}
/**
* 查询订单剩余里程和时间
*/
public void queryOrderRemaining(){
if (mCurrentOCHOrder == null) return;
TaxiPassengerServiceManager.getInstance().queryOrderRemaining(mContext, mCurrentOCHOrder.orderNo, new TaxiPassengerServiceCallback<TaxiPassengerOrderQueryRemainingResp>() {

View File

@@ -126,7 +126,9 @@ public class TaxiPassengerModelLoopManager {
}
}
/**
* 轮训查下 查询订单剩余里程和时间
*/
public void startQueryOrderRemainingtLoop() {
if (mQueryOrderRemainingDisposable != null && !mQueryOrderRemainingDisposable.isDisposed()) {
return;

View File

@@ -119,7 +119,8 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
@Override
public void onCarLocationChanged(Location location) {
LeftMenuOpen.INSTANCE.callCallBack(-1,-1,location.getSpeed());
// 速度不用展示
// LeftMenuOpen.INSTANCE.callCallBack(-1,-1,location.getSpeed());
}
@Override

View File

@@ -17,6 +17,9 @@ import com.mogo.och.taxi.passenger.mulprocess.BinderCursor
import com.mogo.och.taxi.passenger.mulprocess.BinderProvider
import com.mogo.och.taxi.passenger.mulprocess.ICallback
import com.mogo.och.taxi.passenger.mulprocess.ILeftMenuService
import rx.Observable
import rx.Observer
import rx.schedulers.Schedulers
@SuppressLint("StaticFieldLeak")
@@ -38,6 +41,11 @@ object LeftMenuOpen {
private var icallbacks: RemoteCallbackList<ICallback> = RemoteCallbackList<ICallback>()
var checkIndex = OverlayLeftViewUtils.LIVE
private var lastClickTime = 0L
private const val FAST_CLICK_DELAY_TIME = 1000 // 防止事件发送过快
fun setValue(
windowView: View,
wl: WindowManager.LayoutParams?,
@@ -70,7 +78,8 @@ object LeftMenuOpen {
val iterator = dragList.iterator()
while (iterator.hasNext()) {
val next = iterator.next()
unRegisterDragView(next)
unRegisterDragView(next,false)
iterator.remove()
}
}
@@ -169,8 +178,10 @@ object LeftMenuOpen {
}
}
fun unRegisterDragView(view: View?) {
dragList.remove(view)
fun unRegisterDragView(view: View?,remove:Boolean) {
if(remove) {
dragList.remove(view)
}
view?.let {
it.setOnTouchListener(null)
it.setOnClickListener(null)
@@ -220,15 +231,29 @@ object LeftMenuOpen {
}
fun callCallBack(meters: Long,timeInSecond: Long,speed:Float){
val len = icallbacks.beginBroadcast()
for (i in 0 until len) {
try {
icallbacks.getBroadcastItem(i).onResult(meters,timeInSecond,speed)
} catch (e: RemoteException) {
e.printStackTrace()
if(checkIndex == OverlayLeftViewUtils.CONSULT||checkIndex == OverlayLeftViewUtils.MOVIE) {
if (System.currentTimeMillis() - lastClickTime < FAST_CLICK_DELAY_TIME){
return
}
lastClickTime = System.currentTimeMillis()
Observable.empty<String?>().subscribeOn(Schedulers.io())
.subscribe(object : Observer<String?> {
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()
}
}
icallbacks.finishBroadcast()
}
override fun onError(e: Throwable?) {}
override fun onNext(t: String?) {}
})
}
icallbacks.finishBroadcast()
}
fun invoKeyByEventType(typeID:Int){

View File

@@ -105,6 +105,7 @@ object OverlayLeftViewUtils {
val liveSelected = object :ListAdapter.OnTabSelectListener{
override fun onSelect(isCurrentProcess:Boolean) {
LeftMenuOpen.checkIndex = LIVE
if(isCurrentProcess) {
close(view, windowManager)
}else {
@@ -124,6 +125,7 @@ object OverlayLeftViewUtils {
val overViewSelected = object :ListAdapter.OnTabSelectListener{
override fun onSelect(isCurrentProcess:Boolean) {
LeftMenuOpen.checkIndex = OVERVIEW
if(isCurrentProcess) {
close(view, windowManager)
}else {
@@ -143,6 +145,7 @@ object OverlayLeftViewUtils {
val consultSelect = object :ListAdapter.OnTabSelectListener{
override fun onSelect(isCurrentProcess:Boolean) {
LeftMenuOpen.checkIndex = CONSULT
if(isCurrentProcess) {
close(view, windowManager)
//计算订单起点和终点距离
@@ -154,6 +157,7 @@ object OverlayLeftViewUtils {
val entertainmentSelect = object :ListAdapter.OnTabSelectListener{
override fun onSelect(isCurrentProcess:Boolean) {
LeftMenuOpen.checkIndex = MOVIE
if(isCurrentProcess) {
close(view, windowManager)
val sumDis = SharedPrefsMgr.getInstance(context).getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, 0)
@@ -178,6 +182,9 @@ object OverlayLeftViewUtils {
windowManager!!.addView(overlayView, params)
checkProcess()
isShowing = true
} catch (e: WindowManager.BadTokenException) {
isShowing = true;
dismissOverlayView(false)
} catch (e: Exception) {
e.printStackTrace()
}
@@ -260,7 +267,7 @@ object OverlayLeftViewUtils {
}
fun removeDragTarget(view: View?){
LeftMenuOpen.unRegisterDragView(view)
LeftMenuOpen.unRegisterDragView(view,true)
}
/**
@@ -365,6 +372,10 @@ object OverlayLeftViewUtils {
}
}
fun getStatus():Boolean{
return isShowing
}
/**
* 移除覆盖View在Activity上面
*/
@@ -387,7 +398,12 @@ object OverlayLeftViewUtils {
try {
if (windowManager != null && overlayView != null) {
windowManager!!.removeViewImmediate(overlayView)
params = null
}
if(windowManager!=null){
windowManager = null
}
if(params!=null){
params = null
}
if (overlayView!=null) {

View File

@@ -16,10 +16,10 @@ import com.mogo.och.common.module.utils.NumberFormatUtil
import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.bean.TaxiPassengerVideoPlay
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst
import com.mogo.och.taxi.passenger.event.FinishActivity
import com.mogo.och.taxi.passenger.mulprocess.ICallback
import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen
import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils
import com.mogo.och.taxi.passenger.event.FinishActivity
import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselLayoutManager
import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselZoomPostLayoutListener
import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CenterScrollListener
@@ -33,7 +33,14 @@ import com.shuyu.gsyvideoplayer.video.base.GSYVideoView
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import java.util.*
import rx.Observable
import rx.Observer
import rx.Subscription
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import java.util.Calendar
import java.util.concurrent.TimeUnit
import kotlin.collections.ArrayList
import kotlin.math.floor
@@ -44,6 +51,7 @@ class VideoActivity : AppCompatActivity() {
private lateinit var clContain: ConstraintLayout
private lateinit var acivTitleIcon: AppCompatImageView
private lateinit var tvTitle: TextView
private var subscribe: Subscription?=null
private val arrayListOf = ArrayList<TaxiPassengerVideoPlay>()
@@ -297,7 +305,7 @@ class VideoActivity : AppCompatActivity() {
acivTitleIcon = findViewById(R.id.aciv_title_icon)
tvTitle = findViewById(R.id.tv_mogo_consult)
acivTitleIcon.setOnClickListener {
finish()
//finish()
}
}
@@ -344,7 +352,25 @@ class VideoActivity : AppCompatActivity() {
}
}
subscribe = Observable.interval(0, 8, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<Long> {
override fun onCompleted() {}
override fun onError(e: Throwable?) {}
override fun onNext(t: Long?) {
if (!OverlayLeftViewUtils.getStatus()) {
when (videotype){
VIDEOTYPE_CONSULT -> {
OverlayLeftViewUtils.showOverlayView(this@VideoActivity,isOpen = false, checkIndex = OverlayLeftViewUtils.CONSULT)
}
VIDEOTYPE_MOIES -> {
OverlayLeftViewUtils.showOverlayView(this@VideoActivity,isOpen = false, checkIndex = OverlayLeftViewUtils.MOVIE)
}
}
}
}
})
}
override fun onPause() {
@@ -361,6 +387,11 @@ class VideoActivity : AppCompatActivity() {
}
}
}
subscribe?.let {
if(it.isUnsubscribed){
it.unsubscribe()
}
}
}
@Subscribe(threadMode = ThreadMode.MAIN)