From 35b276f7203339909e06d69155cac810d1b8f62c Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 28 Apr 2023 18:38:40 +0800 Subject: [PATCH] =?UTF-8?q?[charter]=20[3.2.0]=20[=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E9=A1=B5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ceTimeCallback.kt => IDistanceCallback.kt} | 4 +- .../bus/passenger/callback/ITimeCallback.kt | 5 + .../passenger/model/CharterPassengerModel.kt | 88 +++++++++++------ ...PassengerFunctionEarlyEndOrderPresenter.kt | 44 --------- .../presenter/BusPassengerPresenter.kt | 26 +---- .../passenger/presenter/OrderInfoPresenter.kt | 50 +++++++++- .../passenger/ui/M1EarlyEndOrderFragment.kt | 60 ----------- .../mogo/och/bus/passenger/ui/MainFragment.kt | 18 ++-- .../ui/dialogfragment/M1ContainFragment.kt | 38 ++----- .../fragment/OrderInfoFragment.kt | 44 ++++++++- .../bus/passenger/ui/view/bottom/BottomBar.kt | 6 +- .../ui/view/bottom/BottomOrderInfoView.kt | 93 ++++++++++++++++++ .../drawable-nodpi/charter_endorder_head.png | Bin 0 -> 7897 bytes .../src/main/res/layout/m1_bottom_bar.xml | 51 +--------- .../main/res/layout/m1_bottom_orderinfo.xml | 52 ++++++++++ .../main/res/layout/m1_devices_fragment.xml | 22 ++++- .../src/main/res/layout/m1_soft_fragment.xml | 2 +- .../src/main/res/values/strings.xml | 2 + .../och/charter/fragment/DriverM1Fragment.kt | 3 +- .../och/common/module/utils/DateTimeUtil.java | 24 +++++ app/build.gradle | 2 +- 21 files changed, 379 insertions(+), 255 deletions(-) rename OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/{IDistanceTimeCallback.kt => IDistanceCallback.kt} (56%) create mode 100644 OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ITimeCallback.kt delete mode 100644 OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionEarlyEndOrderPresenter.kt delete mode 100644 OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt create mode 100644 OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomOrderInfoView.kt create mode 100644 OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_endorder_head.png create mode 100644 OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_orderinfo.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceTimeCallback.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceCallback.kt similarity index 56% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceTimeCallback.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceCallback.kt index 8703a50e20..c0d1a574fb 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceTimeCallback.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceCallback.kt @@ -1,7 +1,5 @@ package com.mogo.och.bus.passenger.callback -interface IDistanceTimeCallback { +interface IDistanceCallback { fun setDistancecAndTime(meters:Long , timeInSecond:Long ) - - fun setOrderTimeCallBack(timeInSecond:Long) } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ITimeCallback.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ITimeCallback.kt new file mode 100644 index 0000000000..a7283742a2 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ITimeCallback.kt @@ -0,0 +1,5 @@ +package com.mogo.och.bus.passenger.callback + +interface ITimeCallback { + fun setOrderTimeCallBack(timeInSecond: Long) +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index ed92ee8407..fdc60bf68f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -26,12 +26,8 @@ import com.mogo.eagle.core.utilcode.util.* import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.LoopInfo import com.mogo.och.bus.passenger.bean.response.* -import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback -import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback -import com.mogo.och.bus.passenger.callback.IDistanceTimeCallback -import com.mogo.och.bus.passenger.callback.IOrderChangeCallback +import com.mogo.och.bus.passenger.callback.* import com.mogo.och.bus.passenger.constant.CharterPassengerConst -import com.mogo.och.bus.passenger.constant.CharterPassengerConst.Companion.Charter_AVERAGE_SPEED import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager import com.mogo.och.bus.passenger.net.BusPassengerServiceManager import com.mogo.och.bus.passenger.utils.VoiceFocusManager @@ -46,17 +42,15 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.PinYinUtil import com.mogo.och.common.module.voice.VoiceManager -import mogo.telematics.pad.MessagePad -import mogo_msg.MogoReportMsg -import system_master.SystemStatusInfo import io.reactivex.Observable import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.TreeMap +import mogo.telematics.pad.MessagePad +import mogo_msg.MogoReportMsg +import system_master.SystemStatusInfo +import java.util.* import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.TimeUnit -import kotlin.collections.ArrayList -import kotlin.collections.HashMap /** * Created on 2022/3/31 @@ -97,11 +91,12 @@ object CharterPassengerModel { private var orderStatus: OrderStatusEnum = OrderStatusEnum.NoOrderUnuse - private val orderStatusChangeListeners = - ConcurrentHashMap() + private val orderStatusChangeListeners = ConcurrentHashMap() + private val stationDistanceListener = ConcurrentHashMap() + private val orderLeftTimeListeners = ConcurrentHashMap() - private var iDistanceTimeCallback: IDistanceTimeCallback? = null + private var leftTime = -1L /** * 到站是否播报 key 线路id+业务 value 是否播报 @@ -157,10 +152,6 @@ object CharterPassengerModel { mControllerStatusCallbackMap[tag] = callback } - fun setiDistanceTimeCallback(distanceTimeCallback: IDistanceTimeCallback?) { - this.iDistanceTimeCallback = distanceTimeCallback - } - /** * 启动轮询查询司机登录状态 */ @@ -272,6 +263,25 @@ object CharterPassengerModel { } orderStatusChangeListeners[tag] = orderStatusChangeListener } + fun setStationDistanceListener(tag:String,orderStatusChangeListener: IDistanceCallback?) { + if (tag.isBlank()) return + if (orderStatusChangeListener == null) { + stationDistanceListener.remove(tag) + return + } + stationDistanceListener[tag] = orderStatusChangeListener + } + fun setOrderLeftTimeListeners(tag:String,orderStatusChangeListener: ITimeCallback?) { + if (tag.isBlank()) return + if (orderStatusChangeListener == null) { + orderLeftTimeListeners.remove(tag) + return + } + orderLeftTimeListeners[tag] = orderStatusChangeListener + + orderStatusChangeListener.setOrderTimeCallBack(leftTime) + } + fun setCarTypeChangeListener(carTypeChageListener: IOrderChangeCallback?){ this.carTypeChageListener = carTypeChageListener } @@ -279,6 +289,9 @@ object CharterPassengerModel { fun getCurrentOrderStatus(): OrderStatusEnum { return this.orderStatus } + fun getCurrentOrderInfo():OrderInfoResponse.OrderInfo?{ + return orderInfo + } // endregion // region 登录状态逻辑 @@ -532,14 +545,14 @@ object CharterPassengerModel { it.dispose() } } - val leadTime = endlast / 1000+60 + val leadTime = endlast / 1000 subscribeCountDown = - Observable.intervalRange(0L, leadTime, 0, 1, TimeUnit.SECONDS) + Observable.intervalRange(0L, leadTime, 0, 5, TimeUnit.SECONDS) .map { aLong -> leadTime - aLong } .subscribeOn(Schedulers.io()) .observeOn(Schedulers.io()) .subscribe{millisUntilFinished-> - if (millisUntilFinished <= 360L) { + if (millisUntilFinished <= 300L) { orderInfo?.let { val isPlayed = SharedPrefs.getInstance(mContext) .getBoolean("${it.orderNo}$min5Speak", false) @@ -563,10 +576,10 @@ object CharterPassengerModel { it.dispose() } } - iDistanceTimeCallback?.setOrderTimeCallBack(-1) - iDistanceTimeCallback?.setDistancecAndTime(-1,-1) + invokeOrderLeftTimeListeners(-1) + invokeStationDistanceListener(-1,-1) }else{ - iDistanceTimeCallback?.setOrderTimeCallBack(millisUntilFinished) + invokeOrderLeftTimeListeners(millisUntilFinished) } CallerLogger.d(M_BUS_P + TAG, "订单倒计时${millisUntilFinished}") } @@ -663,12 +676,9 @@ object CharterPassengerModel { return } if(order.arriveStatus==OrderInfoResponse.ARRIVING) { - iDistanceTimeCallback?.setDistancecAndTime( - lastSumLength.toLong(), - lastTime.toLong() - ) + invokeStationDistanceListener(lastSumLength.toLong(), lastTime.toLong()) }else{ - iDistanceTimeCallback?.setDistancecAndTime(-1, -1) + invokeStationDistanceListener(-1,-1) } } } @@ -827,7 +837,7 @@ object CharterPassengerModel { // 结束路距计算 endCalculateDistanceLoop() // 到站置距离位0 - iDistanceTimeCallback?.setDistancecAndTime(-1,-1) + invokeStationDistanceListener(-1,-1) } } @@ -940,4 +950,22 @@ object CharterPassengerModel { it.lineName!!,it.startSiteName!!,it.siteName!!,false) } } + + private fun invokeOrderLeftTimeListeners(timeInSecond: Long){ + leftTime = timeInSecond + UiThreadHandler.post({ + for (value in orderLeftTimeListeners.values) { + value.setOrderTimeCallBack(timeInSecond) + } + }, UiThreadHandler.MODE.QUEUE) + } + + private fun invokeStationDistanceListener(meters:Long , timeInSecond:Long){ + UiThreadHandler.post({ + for (value in stationDistanceListener.values) { + value.setDistancecAndTime(meters,timeInSecond) + } + }, UiThreadHandler.MODE.QUEUE) + + } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionEarlyEndOrderPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionEarlyEndOrderPresenter.kt deleted file mode 100644 index 9c481095c5..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionEarlyEndOrderPresenter.kt +++ /dev/null @@ -1,44 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.model.OrderStatusEnum -import com.mogo.och.bus.passenger.ui.M1EarlyEndOrderFragment -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback - -class BusPassengerFunctionEarlyEndOrderPresenter(view: M1EarlyEndOrderFragment?) : - BusBasePassengerFunctionDevicePresenter(view) { - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - } - - override fun onResume(owner: LifecycleOwner) { - super.onResume(owner) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - - } - - fun endOrder() { - CharterPassengerModel.endOrder(object : OchCommonServiceCallback { - override fun onSuccess(data: BaseData?) { - if (null != data && 0 == data.code) { - ToastUtils.showShort("结束成功") - CharterPassengerModel.setEndOrderStatus() - mView?.closeDialogContaion() - } - } - - override fun onFail(code: Int, msg: String) { - ToastUtils.showShort("$code:$msg") - } - }) - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index 105ee215ce..2b515255e5 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -13,8 +13,9 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse +import com.mogo.och.bus.passenger.callback.IDistanceCallback import com.mogo.och.bus.passenger.callback.IOrderChangeCallback -import com.mogo.och.bus.passenger.callback.IDistanceTimeCallback +import com.mogo.och.bus.passenger.callback.ITimeCallback import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener import com.mogo.och.bus.passenger.model.OrderStatusEnum @@ -36,26 +37,25 @@ import kotlin.math.ceil class BusPassengerPresenter(view: MainFragment?) : BusBasePassengerFunctionDevicePresenter(view), - IDistanceTimeCallback, IOrderChangeCallback, IOrderStatusChangeListener, + IDistanceCallback, IOrderChangeCallback, IOrderStatusChangeListener, OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback, LightAirconditionDoorCallback { override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) CharterPassengerModel.init() // 定位监听 - CharterPassengerModel.setiDistanceTimeCallback(this) + CharterPassengerModel.setStationDistanceListener(TAG,this) CharterPassengerModel.setCarTypeChangeListener(this) CharterPassengerModel.setStatusChangeListener(TAG,this) CallerTelematicListenerManager.addListener(TAG, msgReceived) OCHPlanningStopSideStatusManager.addListener(TAG,this) setCarChangeListener(R.raw.m1) - //BusPassengerModel.setMoGoAutopilotPlanningListener(this) } override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - CharterPassengerModel.setiDistanceTimeCallback(null) + CharterPassengerModel.setStationDistanceListener(TAG,null) CharterPassengerModel.setCarTypeChangeListener(null) CallerTelematicListenerManager.removeListener(TAG) OCHPlanningStopSideStatusManager.removeListener(TAG) @@ -76,11 +76,6 @@ class BusPassengerPresenter(view: MainFragment?) : mView?.setDistanceAndTime(distance, distanceUnit,leftTime,arriveTime) } } - private fun setOrderTime(sumTime:String,arrivedTime:String){ - UiThreadHandler.post { - mView?.setOrderTime(sumTime, arrivedTime) - } - } val msgReceived = object : IReceivedMsgListener { override fun onReceivedMsg(type: Int, byteArray: ByteArray) { @@ -145,16 +140,6 @@ class BusPassengerPresenter(view: MainFragment?) : setDistanceAndTime(dis.toString(),disUnit,time.toString(),arriveTime) } - override fun setOrderTimeCallBack(timeInSecond: Long) { - if(timeInSecond<0){ - setOrderTime("--","--") - return - } - val time = ceil(timeInSecond / 60f).toInt() - val arriveTime = DateTimeUtil.getAfterSecondTime(timeInSecond.toInt()) - setOrderTime(time.toString(),arriveTime) - } - companion object{ private const val TAG = "BusPassengerPresenter" } @@ -209,7 +194,6 @@ class BusPassengerPresenter(view: MainFragment?) : mView?.showOpenAndCloseDoor() mView?.cleanEndStation() setDistancecAndTime(-1, -1) - setOrderTime("--","--") } } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt index e4de1557cd..c903ca2609 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt @@ -1,18 +1,64 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.bus.passenger.callback.ITimeCallback +import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.utils.DateTimeUtil class OrderInfoPresenter(view: OrderInfoFragment?) : - BusBasePassengerFunctionDevicePresenter(view) { + BusBasePassengerFunctionDevicePresenter(view), ITimeCallback { companion object{ - private const val TAG = "BusPassengerFunctionPresenter" + private const val TAG = "OrderInfoPresenter" } override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) + CharterPassengerModel.setOrderLeftTimeListeners(TAG,this) + getDataInfo() + } + + private fun getDataInfo() { + val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo() + currentOrderInfo?.let { + mView?.setPhone(it.passengerPhone?:"") + try { + mView?.setStartTimeAndEndTime( + DateTimeUtil.formatLongToString(it.startTime!!, DateTimeUtil.HH_mm), + DateTimeUtil.formatLongToString(it.endTime!!, DateTimeUtil.HH_mm)) + }catch (e:Exception){ + e.printStackTrace() + } + } } override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) + CharterPassengerModel.setOrderLeftTimeListeners(TAG,null) } + + override fun setOrderTimeCallBack(timeInSecond: Long) { + val leftTime = DateTimeUtil.second2Time(timeInSecond) + mView?.setLeftTime(leftTime) + } + + fun endOrder() { + CharterPassengerModel.endOrder(object : OchCommonServiceCallback { + override fun onSuccess(data: BaseData?) { + if (null != data && 0 == data.code) { + ToastUtils.showShort("结束成功") + CharterPassengerModel.setEndOrderStatus() + mView?.closeDialogContaion() + } + } + + override fun onFail(code: Int, msg: String) { + ToastUtils.showShort("$code:$msg") + } + }) + } + + } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt deleted file mode 100644 index 49df5673f7..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt +++ /dev/null @@ -1,60 +0,0 @@ -package com.mogo.och.bus.passenger.ui - -import android.os.Bundle -import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionEarlyEndOrderPresenter -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment -import kotlinx.android.synthetic.main.m1_order_early_end.* - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1EarlyEndOrderFragment : - MvpFragment() { - - private var dismiss: M1ContainFragment.ContainDismiss?=null - - override fun getLayoutId(): Int { - return R.layout.m1_order_early_end - } - - override fun getTagName(): String { - return TAG - } - - override fun initViews() { - tv_early_end_cancle.onClick { - closeDialogContaion() - } - tv_early_end_submit.onClick { - mPresenter?.endOrder() - } - } - - fun closeDialogContaion(){ - this.dismiss?.closeDialog() - } - - override fun createPresenter(): BusPassengerFunctionEarlyEndOrderPresenter { - return BusPassengerFunctionEarlyEndOrderPresenter(this) - } - - - companion object { - const val TAG = "BusPassengerFunctionOrderFragment" - @JvmStatic - fun newInstance(dismiss: M1ContainFragment.ContainDismiss): M1EarlyEndOrderFragment { - val args = Bundle() - val fragment = M1EarlyEndOrderFragment() - fragment.arguments = args - fragment.setContainDismiss(dismiss) - return fragment - } - } - private fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) { - this.dismiss = dismiss - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt index 67f675495e..7df0aecb18 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt @@ -16,11 +16,13 @@ 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.AppStateManager import com.mogo.eagle.core.utilcode.util.ClickUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R import com.mogo.och.common.module.voice.VoiceManager import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter import com.mogo.och.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment +import com.mogo.och.common.module.biz.constant.LoginStatusManager import kotlinx.android.synthetic.main.m1_main_fragment.* import java.lang.ref.WeakReference @@ -65,7 +67,15 @@ class MainFragment : openSettingPage(M1ContainFragment.SETTINGSOFTTAB) } bb_boorombar.setOrderInfoClickListener{ - openSettingPage(M1ContainFragment.ORDERINFO) + if (LoginStatusManager.isLogin()) { + if(mPresenter?.haveOrder()==true){ + openSettingPage(M1ContainFragment.ORDERINFO) + }else{ + ToastUtils.showShort("请确认订单") + } + }else{ + ToastUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver)) + } } bb_boorombar.setLineClickListener{ openSettingPage(M1ContainFragment.SELECTLINE) @@ -130,12 +140,6 @@ class MainFragment : tv_distance_surplus_time.text = leftTime tv_distance_arrive_time.text = arriveTime } - fun setOrderTime( - sumTime: String, - arrivedTime: String - ) { - - } fun setCarModle(rawInfo: Int){ CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(rawInfo) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt index 04e4d23ed1..a70138657c 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt @@ -34,10 +34,11 @@ class M1ContainFragment : var fragmentTag: String = M1VideoFragment.TAG var fragment: Fragment? = null - var videoFragment:M1VideoFragment? = null - var softFragment:M1SoftFragment? = null - var orderInfoFragment:OrderInfoFragment? = null - var orderLineFragment:M1OrderLineFragment? = null + var closeThis:ContainDismiss = object :ContainDismiss{ + override fun closeDialog() { + dismissAllowingStateLoss() + } + } override fun onCreate(savedInstanceState: Bundle?) { CallerLogger.d(M_BUS_P+ TAG, "onCreate") @@ -55,45 +56,29 @@ class M1ContainFragment : CallerLogger.d(M_BUS_P+ TAG, "setCheckView") when (tab) { VIDEOTAB -> { - fragment =videoFragment - ?: childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) + fragment =childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) ?: M1VideoFragment.newInstance() - if(videoFragment==null&&fragment is M1VideoFragment){ - videoFragment = fragment as M1VideoFragment - } bb_bottom_bar.setCheckIndex(BottomBar.SelectView.VIDEO) cl_container.setBackgroundResource(R.drawable.m1_function_bg) fragmentTag = M1VideoFragment.TAG } SETTINGSOFTTAB -> { - fragment =softFragment - ?: childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) + fragment =childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) ?: M1SoftFragment.newInstance() - if(softFragment==null&&fragment is M1SoftFragment){ - softFragment = fragment as M1SoftFragment - } bb_bottom_bar.setCheckIndex(BottomBar.SelectView.SETTING) cl_container.setBackgroundResource(R.drawable.m1_function_bg) fragmentTag = M1SoftFragment.TAG } ORDERINFO -> { - fragment =orderInfoFragment - ?: childFragmentManager.findFragmentByTag(OrderInfoFragment.TAG) - ?: OrderInfoFragment.newInstance() - if(orderInfoFragment==null&&fragment is OrderInfoFragment){ - orderInfoFragment = fragment as OrderInfoFragment - } + fragment =childFragmentManager.findFragmentByTag(OrderInfoFragment.TAG) + ?: OrderInfoFragment.newInstance(closeThis) bb_bottom_bar.setCheckIndex(BottomBar.SelectView.ORDERINFO) cl_container.background = null fragmentTag = OrderInfoFragment.TAG } SELECTLINE ->{ - fragment =orderLineFragment - ?: childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG) + fragment =childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG) ?: M1OrderLineFragment.newInstance() - if(orderLineFragment==null&&fragment is M1OrderLineFragment){ - orderLineFragment = fragment as M1OrderLineFragment - } bb_bottom_bar.setCheckIndex(BottomBar.SelectView.LINE) cl_container.background = null fragmentTag = M1OrderLineFragment.TAG @@ -104,9 +89,6 @@ class M1ContainFragment : fragment?.let { val beginTransaction = childFragmentManager.beginTransaction() - if(!it.isAdded){ - beginTransaction.add(it,fragmentTag) - } beginTransaction .replace(R.id.fl_function_group, it, fragmentTag) .commitNow() diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt index f9e7e4bc6e..ff9a178037 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt @@ -1,9 +1,12 @@ package com.mogo.och.bus.passenger.ui.dialogfragment.fragment import android.os.Bundle +import android.view.View import com.mogo.commons.mvp.MvpFragment import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.presenter.OrderInfoPresenter +import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment +import kotlinx.android.synthetic.main.m1_devices_fragment.* /** * @author: yangyakun @@ -12,6 +15,8 @@ import com.mogo.och.bus.passenger.presenter.OrderInfoPresenter class OrderInfoFragment : MvpFragment() { + private var dismiss: M1ContainFragment.ContainDismiss?=null + override fun getLayoutId(): Int = R.layout.m1_devices_fragment override fun getTagName(): String = TAG @@ -21,7 +26,43 @@ class OrderInfoFragment : } private fun initListener() { + actv_end_order_submit.setOnClickListener { + mPresenter?.endOrder() + } + actv_contain_order.setOnClickListener { + this.dismiss?.closeDialog() + } + actv_end_order.setOnClickListener { + cl_order_info.visibility = View.GONE + cl_order_info_endorder_comfit.visibility = View.VISIBLE + } + } + fun setStartTimeAndEndTime(startTime:String,endTime:String){ + actv_order_times.text = "$startTime-$endTime" + } + fun setPhone(phone:String){ + if(phone.length>8) { + //截取电话号码前三位 + val phoneNumPre = phone.substring(0, 3); + //截取电话号码后四位 + val phoneNumFix = phone.substring(7); + actv_order_phone.text = "$phoneNumPre****$phoneNumFix" + }else{ + actv_order_phone.text = phone + } + } + + fun setLeftTime(leftTime:String){ + actv_left_time.text = "剩余时间 $leftTime" + } + + fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) { + this.dismiss = dismiss + } + + fun closeDialogContaion(){ + this.dismiss?.closeDialog() } override fun createPresenter(): OrderInfoPresenter = @@ -30,10 +71,11 @@ class OrderInfoFragment : companion object { const val TAG = "OrderInfoFragment" @JvmStatic - fun newInstance(): OrderInfoFragment { + fun newInstance(dismiss: M1ContainFragment.ContainDismiss): OrderInfoFragment { val args = Bundle() val fragment = OrderInfoFragment() fragment.arguments = args + fragment.setContainDismiss(dismiss) return fragment } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt index 5b7e927495..95937be4ea 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt @@ -47,12 +47,10 @@ class BottomBar @JvmOverloads constructor( checkIndex = index if(checkIndex == SelectView.ORDERINFO){ cl_order_time_press.visibility = VISIBLE - actv_order_end_time.setTextColor(context.getColor(android.R.color.white)) - actv_order_end_time_title.setTextColor(context.getColor(android.R.color.white)) + cl_order_time.setCheck(true) }else{ cl_order_time_press.visibility = GONE - actv_order_end_time.setTextColor(context.getColor(R.color.bus_p_m1_0050E1)) - actv_order_end_time_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) + cl_order_time.setCheck(false) } if(checkIndex == SelectView.SETTING){ actv_setting.setCheckItem(true) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomOrderInfoView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomOrderInfoView.kt new file mode 100644 index 0000000000..ca672690f7 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomOrderInfoView.kt @@ -0,0 +1,93 @@ +package com.mogo.och.bus.passenger.ui.view.bottom + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.och.bus.passenger.R +import com.mogo.och.bus.passenger.callback.ITimeCallback +import com.mogo.och.bus.passenger.model.CharterPassengerModel +import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener +import com.mogo.och.bus.passenger.model.OrderStatusEnum +import com.mogo.och.common.module.utils.DateTimeUtil +import kotlinx.android.synthetic.main.m1_bottom_orderinfo.view.* + +open class BottomOrderInfoView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), ITimeCallback, IOrderStatusChangeListener { + + companion object { + private const val TAG = "BottomOrderInfoView" + } + + init { + LayoutInflater.from(context).inflate(R.layout.m1_bottom_orderinfo, this, true) + try { + initView(context) + } catch (e: Exception) { + e.printStackTrace() + } + } + + fun setCheck(isCheck:Boolean){ + if(isCheck){ + actv_order_end_time.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_end_time_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) + } + } + + private fun initView(context: Context) { + setViewByOrderStatus(CharterPassengerModel.getCurrentOrderStatus()) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerLogger.d(SceneConstant.M_BUS_P + TAG,"onAttachedToWindow$this") + CharterPassengerModel.setOrderLeftTimeListeners(this.toString(),this) + CharterPassengerModel.setStatusChangeListener(this.toString(),this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerLogger.d(SceneConstant.M_BUS_P + TAG,"onDetachedFromWindow$this") + CharterPassengerModel.setOrderLeftTimeListeners(this.toString(),null) + CharterPassengerModel.setStatusChangeListener(this.toString(),null) + } + + private fun setViewByOrderStatus(currentOrderStatus: OrderStatusEnum) { + when (currentOrderStatus) { + OrderStatusEnum.Nothing, + OrderStatusEnum.NoOrderUse, + OrderStatusEnum.NoOrderUnuse ->{ + actv_order_null.visibility = VISIBLE + clg_order_info.visibility = GONE + actv_order_end_time.text = AbsMogoApplication.getApp().getString(R.string.m1_bottom_reach_time) + } + OrderStatusEnum.OrderNoLine, + OrderStatusEnum.OrdersWithLine -> { + actv_order_null.visibility = GONE + clg_order_info.visibility = VISIBLE + } + } + } + + override fun setOrderTimeCallBack(timeInSecond: Long) { + if(timeInSecond>0){ + val arriveTime = DateTimeUtil.second2Time(timeInSecond) + actv_order_end_time.text = arriveTime + } + setViewByOrderStatus(CharterPassengerModel.getCurrentOrderStatus()) + } + + override fun onStatusChange(currentStatus: OrderStatusEnum) { + setViewByOrderStatus(currentStatus) + } +} diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_endorder_head.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_endorder_head.png new file mode 100644 index 0000000000000000000000000000000000000000..97d123c08b8036e3d0e6b36d591cc2bf5a727447 GIT binary patch literal 7897 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 Dc_{X- literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml index 9072d42d3e..b6bbf7d4f5 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml @@ -96,60 +96,15 @@ android:layout_width="@dimen/dp_359" android:layout_height="@dimen/dp_107"/> - - - - - - - - - - - - + android:layout_width="@dimen/dp_167" + android:layout_height="match_parent"/> + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml index 998014b189..5a24d42f0e 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml @@ -6,6 +6,7 @@ android:layout_height="match_parent"> + + 剩余(分) 到达 + --:-- + 靠边停车 diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt index 1204f1d985..16aa1f5f76 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt @@ -30,6 +30,7 @@ import kotlinx.android.synthetic.driverm1.fragment_driver_m1.* import me.jessyan.autosize.utils.AutoSizeUtils import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode +import kotlin.math.ceil import kotlin.math.roundToInt /** @@ -218,7 +219,7 @@ class DriverM1Fragment : CharterBaseFragment 0) { + stringBuffer.append(h < 10 ? ("0" + h) : h).append(":"); + }else { + stringBuffer.append("00:"); + } + stringBuffer.append(m < 10 ? ("0" + m) : m); + //str += (s < 10 ? ("0" + s) : s); + return stringBuffer.toString(); + + } } diff --git a/app/build.gradle b/app/build.gradle index 3ddc5deb9e..5cdf09452f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,7 +29,7 @@ if (!isAndroidTestBuild()) { apply plugin: 'chain.log.hook' hooklog { enableTraceToServer false - enableLoggerToLocal false + enableLoggerToLocal true } apply plugin: 'biz.config.hook'