From 1d1a0ae7e1bfac08ba7888a772d895505dc1c182 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 15 Aug 2023 17:26:20 +0800 Subject: [PATCH] [5.0.0] [feature] --- .../passenger/model/CharterPassengerModel.kt | 7 -- .../BusPassengerFunctionOrderPresenter.kt | 3 - .../presenter/BusPassengerPresenter.kt | 2 +- .../mogo/och/bus/passenger/ui/MainFragment.kt | 27 +++++++- .../och/bus/passenger/ui/bottom/BottomBar.kt | 15 ++-- .../ui/bottom/BottomOrderInfoView.kt | 5 ++ .../passenger/ui/orderinfo/OrderInfoView.kt | 4 +- .../ui/orderinfo/OrderInfoViewModel.kt | 12 ++-- .../ui/selectline/M1OrderLineFragment.kt | 6 -- .../passenger/ui/selectline/SelectLineView.kt | 43 +++++++----- .../ui/selectline/SelectLineViewModel.kt | 52 ++++++++------ .../ui/softcontrol/SoftControlView.kt | 42 ++++------- .../ui/softcontrol/SoftControlViewModel.kt | 69 ++++--------------- .../bus/passenger/utils/ToastCharterUtils.kt | 38 +++++++--- .../eagle/core/utilcode/util/UtilsBridge.java | 2 +- 15 files changed, 166 insertions(+), 161 deletions(-) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index a76bf127a3..c4c92b5708 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -120,7 +120,6 @@ object CharterPassengerModel { private var carTypeChageListener: IOrderChangeCallback? = null private var subscribeCountDown: Disposable? = null - var switchLine5minWait: Disposable? = null @Volatile var newCheckedSite: SiteInfoResponse.SiteInfo? = null @@ -529,7 +528,6 @@ object CharterPassengerModel { orderInfo = null locusInfo = null if (data.businessStatus == 2) {// 订单结束 没有还车 - RxUtils.disposeSubscribe(switchLine5minWait) clearAutopilotControlParameters() setOrderStatus(OrderStatusEnum.NoOrderUse) } else { @@ -985,7 +983,6 @@ object CharterPassengerModel { d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}") } - RxUtils.disposeSubscribe(switchLine5minWait) // 清理轨迹 cleanRoutePoints() // 到站结束自驾 @@ -1028,10 +1025,6 @@ object CharterPassengerModel { broadcastList[requestSuccessSign] == null || broadcastList[requestSuccessSign] == false fun cleanbroadcastListInfo(checkSite: SiteInfoResponse.SiteInfo?) { - RxUtils.disposeSubscribe(switchLine5minWait) - switchLine5minWait = RxUtils.createSubscribe(5 * 60 * 1000) { - d(M_BUS_P + BaseDPMsg.TAG, "5分钟倒计时可以选择线路了") - } newCheckedSite = checkSite cleanRoutePoints() broadcastList.clear() diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt index 945a62fe48..c21f7a0707 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt @@ -57,8 +57,6 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : // 向司机端临时提交的终点站点 private var tempCheckSite: SiteInfoResponse.SiteInfo? = null - - private var subscribeSelectLine: Disposable? = null private var subscribeSelectSite: Disposable? = null override fun onCreate(owner: LifecycleOwner) { @@ -189,7 +187,6 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) CallerLogger.d(M_BUS_P + TAG, "onDestroy") - RxUtils.disposeSubscribe(subscribeSelectLine) RxUtils.disposeSubscribe(subscribeSelectSite) BizLoopManager.removeLoopFunction(TAGLINELOOP) CharterPassengerModel.setStatusChangeListener(TAG,null) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index ac4bf8becc..7475455919 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -184,7 +184,7 @@ class BusPassengerPresenter(view: MainFragment?) : UiThreadHandler.post { when (actionStatus) { StopSideStatusManager.Status.NOSTART -> { - ToastCharterUtils.showShort(errorInfo) + ToastCharterUtils.showShort(errorInfo?:"") } StopSideStatusManager.Status.START -> { diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt index c271afd4c0..2b1aef1273 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt @@ -25,6 +25,8 @@ import com.mogo.och.bus.passenger.ui.bottom.BottomClickView import com.mogo.och.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment import com.mogo.och.bus.passenger.ui.dialogfragment.NoviceGuidanceFragment +import com.mogo.och.bus.passenger.utils.ToastCharterUtils +import com.mogo.och.common.module.biz.constant.LoginStatusManager import kotlinx.android.synthetic.main.m1_main_fragment.* import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe @@ -94,9 +96,22 @@ class MainFragment : }) bb_boorombar.setCheckChangeListener(object : BottomBar.ApplyClickLintener { - override fun onApplyClick(selectItem: BottomBar.SelectView) { + override fun onApplyClick(selectItem: BottomBar.SelectView): Boolean { when (selectItem) { - BottomBar.SelectView.ORDERINFO -> showBizView(orderinfo = true) + BottomBar.SelectView.ORDERINFO -> { + if (LoginStatusManager.isLogin()) { + if (mPresenter?.haveOrder() == true) { + + } else { + ToastCharterUtils.showShort("请确认订单") + return true + } + } else { + ToastCharterUtils.showShort(requireContext().getString(R.string.m1_please_login_driver)) + return true + } + showBizView(orderinfo = true) + } BottomBar.SelectView.SETTING -> showBizView(softControl = true) BottomBar.SelectView.LINE -> showBizView(selectLine = true) BottomBar.SelectView.VIDEO -> showBizView(showVideo = true) @@ -104,6 +119,7 @@ class MainFragment : showBizView() } } + return false } }) bb_boorombar.setApplyClickListener(object : BottomClickView.ApplyClickLintener { @@ -168,7 +184,12 @@ class MainFragment : bpFunctionGroupDialogFragment = WeakReference(M1ContainFragment.newInstance()) } val bpFunctionGroup = bpFunctionGroupDialogFragment?.get() - M1ContainFragment.openSettingPage(childFragmentManager, parentFragmentManager, bpFunctionGroup, tab) + M1ContainFragment.openSettingPage( + childFragmentManager, + parentFragmentManager, + bpFunctionGroup, + tab + ) } fun setCarModle(rawInfo: Int) { diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomBar.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomBar.kt index bb0ea7fb70..e868f5fde6 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomBar.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomBar.kt @@ -47,12 +47,17 @@ class BottomBar @JvmOverloads constructor( } fun setCheckIndex(index: SelectView){ - if(checkIndex==index){ - checkIndex = SelectView.NONE + val tempPreStatus = checkIndex + checkIndex = if(checkIndex==index){ + SelectView.NONE }else{ - checkIndex = index + index + } + if (overMapViewApply?.onApplyClick(checkIndex)==true) { + // 外层业务拦截 + checkIndex = tempPreStatus + return } - overMapViewApply?.onApplyClick(checkIndex) if(checkIndex == SelectView.ORDERINFO){ cl_order_time_press.visibility = VISIBLE cl_order_time.setCheck(true) @@ -78,7 +83,7 @@ class BottomBar @JvmOverloads constructor( } interface ApplyClickLintener{ - fun onApplyClick(selectItem:SelectView) + fun onApplyClick(selectItem:SelectView):Boolean } } \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomOrderInfoView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomOrderInfoView.kt index b1e40752c7..7133025081 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomOrderInfoView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/bottom/BottomOrderInfoView.kt @@ -17,6 +17,9 @@ import com.mogo.och.common.module.utils.DateTimeUtil import kotlinx.android.synthetic.main.m1_bottom_orderinfo.view.* import java.util.UUID +/** + * 展示订单剩余时间 + */ open class BottomOrderInfoView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, @@ -40,9 +43,11 @@ open class BottomOrderInfoView @JvmOverloads constructor( fun setCheck(isCheck:Boolean){ if(isCheck){ actv_order_end_time.setTextColor(context.getColor(android.R.color.white)) + actv_order_null.setTextColor(context.getColor(android.R.color.white)) actv_order_end_time_title.setTextColor(context.getColor(android.R.color.white)) }else{ actv_order_end_time.setTextColor(context.getColor(R.color.bus_p_m1_0050E1)) + actv_order_null.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) actv_order_end_time_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) } } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoView.kt index c3796ff8d6..19fa1fec2a 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoView.kt @@ -68,8 +68,6 @@ class OrderInfoView : ConstraintLayout, OrderInfoViewModel.ItineraryViewCallback actv_contain_order.setOnClickListener { setViewGone() - cl_order_info.visibility = View.VISIBLE - cl_order_info_endorder_comfit.visibility = View.GONE } actv_end_order.setOnClickListener { @@ -89,6 +87,8 @@ class OrderInfoView : ConstraintLayout, OrderInfoViewModel.ItineraryViewCallback override fun setViewGone(){ goneViewListener?.goneAllView() + cl_order_info.visibility = View.VISIBLE + cl_order_info_endorder_comfit.visibility = View.GONE } override fun setLeftTime(leftTime:String){ diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoViewModel.kt index 004e1379fe..941ef59c1e 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -40,15 +40,19 @@ class OrderInfoViewModel: ViewModel(), ITimeCallback { fun getDataInfo() { val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo() - currentOrderInfo?.let { - viewCallback?.setPhone(it.passengerPhone?:"") + if(currentOrderInfo!=null){ + viewCallback?.setPhone(currentOrderInfo.passengerPhone?:"") try { viewCallback?.setStartTimeAndEndTime( - DateTimeUtil.formatLongToString(it.startTime!!, DateTimeUtil.HH_mm), - DateTimeUtil.formatLongToString(it.endTime!!, DateTimeUtil.HH_mm)) + DateTimeUtil.formatLongToString(currentOrderInfo.startTime!!, DateTimeUtil.HH_mm), + DateTimeUtil.formatLongToString(currentOrderInfo.endTime!!, DateTimeUtil.HH_mm)) }catch (e:Exception){ e.printStackTrace() } + }else{ + viewCallback?.setPhone("----") + viewCallback?.setStartTimeAndEndTime("--:---", "--:--") + viewCallback?.setLeftTime("剩余时间 --:--") } } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt index db54130a35..31a90cb044 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt @@ -116,12 +116,6 @@ class M1OrderLineFragment : mPresenter?.resetData() } tv_site_submit.onClick { - CharterPassengerModel.switchLine5minWait?.let { - if (!it.isDisposed) { - ToastCharterUtils.showShort("选择线路后5分钟内不可用选") - return@onClick - } - } mPresenter?.changeSites(siteList) } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineView.kt index d534322188..f3a8961230 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineView.kt @@ -14,6 +14,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.elegant.utils.UiThreadHandler import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.och.bus.passenger.R +import com.mogo.och.bus.passenger.bean.event.EventLineSites import com.mogo.och.bus.passenger.bean.response.LineInfoResponse import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse import com.mogo.och.bus.passenger.callback.IClearViewCallback @@ -40,6 +41,7 @@ import kotlinx.android.synthetic.main.m1_order_fragment.view.tv_site_cancle import kotlinx.android.synthetic.main.m1_order_fragment.view.tv_site_submit import kotlinx.android.synthetic.main.m1_order_loading.view.iv_loading_wait_ent import me.jessyan.autosize.utils.AutoSizeUtils +import org.greenrobot.eventbus.EventBus class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallback { @@ -63,7 +65,7 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb ) : super(context, attributeSet, defStyleAttr, defStyleRes) - var goneViewListener: IClearViewCallback?=null + var goneViewListener: IClearViewCallback? = null private lateinit var lineAdapter: OrderLineItemAdapter private lateinit var siteAdapter: OrderSiteItemAdapter @@ -74,6 +76,8 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb private var subscribeDirverAgree: Disposable? = null private var subscribeDirverRefuse: Disposable? = null + private var viewModel: SelectLineViewModel? = null + private val loadingAni = ObjectAnimator.ofFloat(iv_loading_wait_ent, "rotation", 0f, 90f, 180f, 270f, 360f) .apply { @@ -102,7 +106,8 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb ) rlv_line_list.adapter = lineAdapter - rv_site_list.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) + rv_site_list.layoutManager = + LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) rv_site_list.addItemDecoration( BottomDecoration( AutoSizeUtils.dp2px(context, 90f) @@ -113,7 +118,7 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb override fun onAttachedToWindow() { super.onAttachedToWindow() - val viewModel = findViewTreeViewModelStoreOwner()?.let { + viewModel = findViewTreeViewModelStoreOwner()?.let { ViewModelProvider(it).get(SelectLineViewModel::class.java) } @@ -131,7 +136,7 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb } siteAdapter.checkChangeListener = object : OrderSiteItemAdapter.CheckListener { override fun canSwitchLine(): Boolean { - return viewModel?.canSwitchLine()?:true + return viewModel?.canSwitchLine() ?: true } override fun onCheckListener(siteInfo: SiteInfoResponse.SiteInfo?) { @@ -144,17 +149,23 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb viewModel?.resetData() } tv_site_submit.onClick { - CharterPassengerModel.switchLine5minWait?.let { - if (!it.isDisposed) { - ToastCharterUtils.showShort("选择线路后5分钟内不可用选") - return@onClick - } - } viewModel?.changeSites(siteList) } } + override fun onVisibilityChanged(changedView: View, visibility: Int) { + if (changedView != this) { + return + } + if (visibility == View.GONE || visibility == View.INVISIBLE) { + EventBus.getDefault().post(EventLineSites(null, null, true)) + viewModel?.addMsgListener() + } else { + viewModel?.removeMsgListener() + } + } + private fun showSelectData() { UiThreadHandler.post { g_lines_sites_data?.visibility = View.VISIBLE @@ -179,7 +190,7 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb showNorOrder: Boolean, showLoading: Boolean ) { - if(showBiz){ + if (showBiz) { // 选择线路页面 m1_order_noorder?.visibility = View.GONE m1_order_neterror?.visibility = View.GONE @@ -187,21 +198,21 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb m1_order_loading?.visibility = View.GONE return } - if(showNetError){ + if (showNetError) { m1_order_noorder?.visibility = View.GONE m1_order_neterror?.visibility = View.VISIBLE lsv_line_site?.visibility = View.GONE m1_order_loading?.visibility = View.GONE return } - if(showNorOrder){ + if (showNorOrder) { m1_order_noorder?.visibility = View.VISIBLE m1_order_neterror?.visibility = View.GONE lsv_line_site?.visibility = View.GONE m1_order_loading?.visibility = View.GONE return } - if(showLoading){ + if (showLoading) { m1_order_noorder?.visibility = View.GONE m1_order_neterror?.visibility = View.GONE lsv_line_site?.visibility = View.GONE @@ -252,7 +263,7 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb lineInfo: List, checkLine: LineInfoResponse.LineInfo? ) { - lineAdapter.setDataList(lineInfo,checkLine) + lineAdapter.setDataList(lineInfo, checkLine) } override fun siteAdapterEnableIndex(index: Int) { @@ -263,7 +274,7 @@ class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallb siteAdapter.setDataList(siteInfo) } - private fun setViewGone(){ + private fun setViewGone() { goneViewListener?.goneAllView() } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt index bfa58d615a..3465613d7c 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt @@ -64,7 +64,6 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { private var tempCheckSite: SiteInfoResponse.SiteInfo? = null - private var subscribeSelectLine: Disposable? = null private var subscribeSelectSite: Disposable? = null /** @@ -108,7 +107,7 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { viewCallback?.hideDataDriverRefuse() } RxUtils.disposeSubscribe(subscribeSelectSite) - BizLoopManager.removeLoopFunction(BusPassengerFunctionOrderPresenter.TAGLINELOOP) + BizLoopManager.removeLoopFunction(TAGLINELOOP) } } } @@ -117,16 +116,25 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { init { CharterPassengerModel.setStatusChangeListener(TAG, this) - CallerTelematicListenerManager.addListener(TAG, msgReceived) + } override fun onCleared() { super.onCleared() this.viewCallback = null - RxUtils.disposeSubscribe(subscribeSelectLine) RxUtils.disposeSubscribe(subscribeSelectSite) BizLoopManager.removeLoopFunction(TAGLINELOOP) CharterPassengerModel.setStatusChangeListener(TAG, null) + + } + + fun addMsgListener() { + CallerTelematicListenerManager.addListener(TAG, msgReceived) + } + + fun removeMsgListener() { + RxUtils.disposeSubscribe(subscribeSelectSite) + BizLoopManager.removeLoopFunction(TAGLINELOOP) CallerTelematicListenerManager.removeListener(TAG) } @@ -240,10 +248,7 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { } viewCallback?.hideDataWaitDriverMsg() // 启动查看和司机端链接 - BizLoopManager.setLoopFunction( - BusPassengerFunctionOrderPresenter.TAGLINELOOP, - LoopInfo(3, ::checkServerStatus) - ) + BizLoopManager.setLoopFunction(TAGLINELOOP, LoopInfo(3, ::checkServerStatus)) RxUtils.disposeSubscribe(subscribeSelectSite) subscribeSelectSite = RxUtils.createSubscribe(120_000) { @@ -310,10 +315,10 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { private fun checkServerStatus() { if (!CallerTelematicManager.getClientConnStatus()) { ToastCharterUtils.showShort("断开和司机端连接、请联系安全员") - BizLoopManager.removeLoopFunction(BusPassengerFunctionOrderPresenter.TAGLINELOOP) + BizLoopManager.removeLoopFunction(TAGLINELOOP) viewCallback?.hideDataDriverRefuse() CallerLogger.d( - SceneConstant.M_BUS_P + BusPassengerFunctionOrderPresenter.TAG, + SceneConstant.M_BUS_P + TAG, "endAni666" ) } @@ -325,10 +330,10 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { fun resetData() { tempCheckLine = null tempCheckSite = null - if(checkLine==null){// 没有提交线路 + if (checkLine == null) {// 没有提交线路 queryLineList() viewCallback?.setEnableSiteStatus(true) - }else{ + } else { checkLine?.let { viewCallback?.setEnableSiteStatus(false) viewCallback?.lineAdapterSubmit(it) @@ -339,27 +344,28 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { fun checkSiteClick(siteInfo: SiteInfoResponse.SiteInfo?) { tempCheckSite = siteInfo - if(checkSite!=null){ + if (checkSite != null) { checkSite?.let { if (it.siteId == siteInfo?.siteId) {// 站点相同 隐藏所有提交按钮 viewCallback?.setEnableSiteStatus(false) } else { - if(it.lineId == siteInfo?.lineId){// 线路相同显示单独提交 + if (it.lineId == siteInfo?.lineId) {// 线路相同显示单独提交 viewCallback?.setEnableSiteStatus(true) - }else{ - if(siteInfo==null){//没有选站点隐藏所有提交 + } else { + if (siteInfo == null) {//没有选站点隐藏所有提交 viewCallback?.setEnableSiteStatus(false) - }else { + } else { viewCallback?.setEnableSiteStatus(true) } } } } - }else{ + } else { viewCallback?.setEnableSiteStatus(true) } } - fun canSwitchLine():Boolean { + + fun canSwitchLine(): Boolean { val gnssSpeed = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().gnssSpeed if (gnssSpeed < 0.5) { @@ -367,25 +373,30 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶 return true } + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {// return true } + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { // 自动驾驶中 return when (StopSideStatusManager.stopSiteStatus) { StopSideStatusManager.Status.EndingSuccess -> { true } - else ->{ + + else -> { ToastCharterUtils.showShort("自动驾驶中无法切换线路") false } } } + IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { ToastCharterUtils.showShort("因车辆正在平行驾驶中无法切换线路") return false } + else -> {} } } else { @@ -412,6 +423,7 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { lineInfo: List, checkLine: LineInfoResponse.LineInfo? ) + fun siteAdapterEnableIndex(index: Int) fun siteAdapterSetData(siteInfo: List) } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt index 2cfcf5f3e3..bd297fb31b 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt @@ -83,16 +83,11 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( - context, - attributeSet, - defStyleAttr + context, attributeSet, defStyleAttr ) constructor( - context: Context, - attributeSet: AttributeSet, - defStyleAttr: Int, - defStyleRes: Int + context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int ) : super(context, attributeSet, defStyleAttr, defStyleRes) var goneViewListener: IClearViewCallback? = null @@ -332,8 +327,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba rv_aircondition_temperature.tag = null return } else { - SoundPoolHelper.getSoundPoolHelper() - .playSoundWithRedId(context, R.raw.bus_di) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) } openAircondition() } @@ -347,8 +341,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba } tv_light_top_01.isEnabled = false subscribeLightTop1 = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { + .observeOn(AndroidSchedulers.mainThread()).subscribe { tv_light_top_01.isEnabled = true } SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) @@ -362,8 +355,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba } tv_light_top_02.isEnabled = false subscribeLightTop2 = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { + .observeOn(AndroidSchedulers.mainThread()).subscribe { tv_light_top_02.isEnabled = true } SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) @@ -377,8 +369,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba } tv_light_atmosphere.isEnabled = false subscribeAtmosphere = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { + .observeOn(AndroidSchedulers.mainThread()).subscribe { tv_light_atmosphere.isEnabled = true } SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) @@ -636,12 +627,9 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba openAircondition() } } - val pickerLayoutManager = - PickerLayoutManager( - context, - PickerLayoutManager.HORIZONTAL, - false - ) + val pickerLayoutManager = PickerLayoutManager( + context, PickerLayoutManager.HORIZONTAL, false + ) pickerLayoutManager.isChangeAlpha = true pickerLayoutManager.scaleDownBy = 0.29f pickerLayoutManager.scaleDownDistance = 0.8f @@ -658,8 +646,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba val space = AutoSizeUtils.dp2px(context, 15f) rv_aircondition_temperature.addItemDecoration( HorizontalDecoration( - space, - data.size - 1 + space, data.size - 1 ) ) @@ -671,8 +658,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba RxUtils.disposeSubscribe(subscribeAir) if (tag.index == 0 || tag.index == adapter.data.size - 1) { subscribeAir = Observable.timer(200, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { + .observeOn(AndroidSchedulers.mainThread()).subscribe { setCheckAir(adapter, tag) } } else { @@ -720,11 +706,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba * 根据车的状态会写页面状态 */ override fun setAirconditionHeaterView( - airIsOpen: Boolean, - heaterIsOpen: Boolean, - temperatureCmd: Int, - pattern: Int, - windSpeed: Int + airIsOpen: Boolean, heaterIsOpen: Boolean, temperatureCmd: Int, pattern: Int, windSpeed: Int ) { tv_aircondition_switch?.let { if (!airIsOpen && !heaterIsOpen) { diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlViewModel.kt index e7eea21b46..79735a6e23 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlViewModel.kt @@ -47,16 +47,11 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { * 空调状态变化 */ override fun onAirconditionStatusCallback( - heaterIsOpen: Boolean, - airconditionStatus: AirconditionStatus, - isFirst: Boolean + heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus, isFirst: Boolean ) { CallerLogger.d( M_BUS_P + TAG, - "回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" + - "空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + - "空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + - "空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}" + "回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" + "空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + "空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + "空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}" ) UiThreadHandler.post { if (airconditionStatus.isOpen) { @@ -69,11 +64,7 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { ) } else { viewCallback?.setAirconditionHeaterView( - airconditionStatus.isOpen, - heaterIsOpen, - airconditionStatus.temperature, - 0, - 0 + airconditionStatus.isOpen, heaterIsOpen, airconditionStatus.temperature, 0, 0 ) } } @@ -83,31 +74,20 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { * 暖风机状态变化 */ override fun onHeaterStatusCallback( - airconditionIsOpen: Boolean, - heaterStatue: HeaterStatue, - isFirst: Boolean + airconditionIsOpen: Boolean, heaterStatue: HeaterStatue, isFirst: Boolean ) { CallerLogger.d( M_BUS_P + TAG, - "回写--暖风机开关:${heaterStatue.isOpen}、" + - "风速:${heaterStatue.windSpeed}" + "回写--暖风机开关:${heaterStatue.isOpen}、" + "风速:${heaterStatue.windSpeed}" ) UiThreadHandler.post { if (heaterStatue.isOpen) { viewCallback?.setAirconditionHeaterView( - airconditionIsOpen, - heaterStatue.isOpen, - 0, - 0, - heaterStatue.windSpeed + airconditionIsOpen, heaterStatue.isOpen, 0, 0, heaterStatue.windSpeed ) } else { viewCallback?.setAirconditionHeaterView( - airconditionIsOpen, - heaterStatue.isOpen, - 0, - 0, - 0 + airconditionIsOpen, heaterStatue.isOpen, 0, 0, 0 ) } } @@ -119,9 +99,7 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { override fun onLightTop1Callback(lightStatus: LightStatus, isFirst: Boolean) { CallerLogger.d( M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、" + "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + "氛围灯开关:${lightStatus.isOpenatmosphere}、" ) UiThreadHandler.post { viewCallback?.setLightTop1View(lightStatus.isOpenLight1, isFirst) @@ -134,9 +112,7 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { override fun onLightTop2Callback(lightStatus: LightStatus, isFirst: Boolean) { CallerLogger.d( M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、" + "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + "氛围灯开关:${lightStatus.isOpenatmosphere}、" ) UiThreadHandler.post { viewCallback?.setLightTop2View(lightStatus.isOpenLight2, isFirst) @@ -150,9 +126,7 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { override fun onLightAtmosphereCallback(lightStatus: LightStatus, isFirst: Boolean) { CallerLogger.d( M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、" + "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + "氛围灯开关:${lightStatus.isOpenatmosphere}、" ) UiThreadHandler.post { viewCallback?.setLightAtmosphereView(lightStatus.isOpenatmosphere, isFirst) @@ -164,22 +138,14 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { */ fun openAndSetAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { CallerLogger.d( - M_BUS_P + TAG, "" + - "打开空调,模式$modeCmd--档位${windSpeedCmd}--温度:$temperatureCmd" + M_BUS_P + TAG, "" + "打开空调,模式$modeCmd--档位${windSpeedCmd}--温度:$temperatureCmd" ) CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd( - 1, - modeCmd, - windSpeedCmd, - temperatureCmd + 1, modeCmd, windSpeedCmd, temperatureCmd ) RxUtils.disposeSubscribe(airconditionDisposable) airconditionDisposable = RxUtils.createSubscribe(10000) { - if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen && - LightAirconditionDoorStatusManager.airconditionStatus.windSpeed != windSpeedCmd && - LightAirconditionDoorStatusManager.airconditionStatus.temperature != temperatureCmd && - LightAirconditionDoorStatusManager.airconditionStatus.pattert != modeCmd - ) { + if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen && LightAirconditionDoorStatusManager.airconditionStatus.windSpeed != windSpeedCmd && LightAirconditionDoorStatusManager.airconditionStatus.temperature != temperatureCmd && LightAirconditionDoorStatusManager.airconditionStatus.pattert != modeCmd) { ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") } } @@ -188,10 +154,7 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { fun closeAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { CallerLogger.d(M_BUS_P + TAG, "关闭空调") CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd( - 2, - modeCmd, - windSpeedCmd, - temperatureCmd + 2, modeCmd, windSpeedCmd, temperatureCmd ) RxUtils.disposeSubscribe(airconditionDisposable) airconditionDisposable = RxUtils.createSubscribe(10000) { @@ -209,9 +172,7 @@ class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1, windSpeedCmd) RxUtils.disposeSubscribe(heaterDisposable) heaterDisposable = RxUtils.createSubscribe(10000) { - if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen && - LightAirconditionDoorStatusManager.heaterStatue.windSpeed != windSpeedCmd - ) { + if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen && LightAirconditionDoorStatusManager.heaterStatue.windSpeed != windSpeedCmd) { ToastCharterUtils.showShort("暖风机操作未生效,请稍后重试吧~") } } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/utils/ToastCharterUtils.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/utils/ToastCharterUtils.kt index 0478c0c252..ec29464ecf 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/utils/ToastCharterUtils.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/utils/ToastCharterUtils.kt @@ -7,37 +7,57 @@ import com.mogo.och.bus.passenger.ui.toast.ToastCharterView import me.jessyan.autosize.utils.AutoSizeUtils object ToastCharterUtils { - fun showTaost(toastText:String){ + const val TAG = "ToastCharterUtils" + fun showTaost(toastText: String) { val context = ActivityUtils.getTopActivity() val marker = ToastCharterView(context) marker.setText(toastText) marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.EXACTLY) + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 145f), + View.MeasureSpec.UNSPECIFIED + ), + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 34f), + View.MeasureSpec.EXACTLY + ) ) marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) ToastUtils.showShort(marker) } - fun showLong(toastText:String){ + + fun showLong(toastText: String) { val context = ActivityUtils.getTopActivity() val marker = ToastCharterView(context) marker.setText(toastText) marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.EXACTLY) + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 145f), + View.MeasureSpec.UNSPECIFIED + ), + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 34f), + View.MeasureSpec.EXACTLY + ) ) marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) ToastUtils.showLong(marker) } - fun showShort(toastText:String?){ + fun showShort(toastText: String?) { toastText?.let { val context = ActivityUtils.getTopActivity() val marker = ToastCharterView(context) marker.setText(toastText) marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.EXACTLY) + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 145f), + View.MeasureSpec.UNSPECIFIED + ), + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 34f), + View.MeasureSpec.EXACTLY + ) ) marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) ToastUtils.showShort(marker) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UtilsBridge.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UtilsBridge.java index 450879091d..9467f3c150 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UtilsBridge.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UtilsBridge.java @@ -551,7 +551,7 @@ class UtilsBridge { } static void runOnUiThread(final Runnable runnable) { - ThreadUtils.runOnUiThread(runnable); + ThreadUtils.runOnUiThread(runnable, ThreadUtils.MODE.QUEUE); } static void runOnUiThreadDelayed(final Runnable runnable, long delayMillis) {