diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt index f663bcad95..c992c777a9 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt @@ -119,7 +119,7 @@ open class MusicCheckView @JvmOverloads constructor( animator = ObjectAnimator.ofFloat(aciv_playing, "rotation", 0f, 360f) aciv_playing.pivotX = (aciv_playing.width / 2).toFloat() aciv_playing.pivotY = (aciv_playing.height / 2).toFloat() - animator?.duration = 2000 + animator?.duration = 3000 animator?.repeatCount = -1 animator?.repeatMode = ValueAnimator.RESTART animator?.interpolator = LinearInterpolator() diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt index cb154eac67..a82d3dca9e 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt @@ -55,6 +55,9 @@ class MusicListItemAdapter( holder.itemView.setOnClickListener { clickListener.clickItem(musicData) } + if(musicData.tag.size>0){ + holder.tvTag.text = musicData.tag.first() + } if (musicData.state==PlayState.Playing||musicData.state==PlayState.Pause) { holder.musicPlayState.visibility = View.VISIBLE @@ -94,10 +97,12 @@ class MusicListItemAdapter( inner class TextVH(itemView: View) : RecyclerView.ViewHolder(itemView) { var musicName: TextView + var tvTag: TextView var musicPlayState: ImageView init { musicName = itemView.findViewById(R.id.tv_song_name) + tvTag = itemView.findViewById(R.id.tv_tag) musicPlayState = itemView.findViewById(R.id.iv_music_playing) } } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt index c8471bb4d9..6af77b4357 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt @@ -144,7 +144,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi animator = ObjectAnimator.ofFloat(iv_music_cover, "rotation", 0f, 360f) iv_music_cover.pivotX = (iv_music_cover.width / 2).toFloat() iv_music_cover.pivotY = (iv_music_cover.height / 2).toFloat() - animator?.duration = 2000 + animator?.duration = 3000 animator?.repeatCount = -1 animator?.repeatMode = ValueAnimator.RESTART animator?.interpolator = LinearInterpolator() diff --git a/OCH/charter/passenger/src/main/res/layout/charter_p_music_list_item.xml b/OCH/charter/passenger/src/main/res/layout/charter_p_music_list_item.xml index 4187241d48..3d7a203998 100644 --- a/OCH/charter/passenger/src/main/res/layout/charter_p_music_list_item.xml +++ b/OCH/charter/passenger/src/main/res/layout/charter_p_music_list_item.xml @@ -30,6 +30,7 @@ android:layout_height="@dimen/dp_16"/> { - // 订单no - public String orderNo; + public static class Result extends BaseOrderBean implements Comparable{ // 订单类型 public int orderType; //1即时单 2预约单 - // 订单状态 - public int orderStatus; // 订单运营类型 (9出租车,10小巴) public int businessType; // 起始站点id diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.kt index ba2fc56e72..43f917bf55 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.kt @@ -8,8 +8,6 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean * Model->Presenter回调:订单相关(进行中/待服务单变更,当前进行单状态变更,新到预约单,抢单,抢单结果状态等等) */ interface IOCHTaxiPassengerOrderStatusCallback { - // 当前进行单状态变更:新到进行中订单、进行中单状态变更 - fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?){} // 当前位置距离上车点的距离(米)、预估时间(秒) fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long,stationDistance:Int){} diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt index 889159a2b7..d1f9fec99a 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt @@ -19,7 +19,7 @@ import com.mogo.och.common.module.utils.PinYinUtil import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index 79b923ece1..bb40741e9d 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -33,9 +33,10 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum.Companion.valueOf +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum.Companion.valueOf import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager import java.util.concurrent.ConcurrentHashMap @@ -277,12 +278,8 @@ object TaxiPassengerModel { fun orderStatusChange(){ orderStatusChangeInner() - if (mOrderStatusCallbackMap.isNotEmpty()) { - d(M_TAXI_P + TAG, "最新的状态${curOrderStatus}") - for (callback in mOrderStatusCallbackMap.values) { - callback.onCurrentOrderStatusChanged(currentOCHOrder) - } - } + d(M_TAXI_P + TAG, "最新的状态${curOrderStatus}") + OrderModel.invokeListener(currentOCHOrder) } private fun orderStatusChangeInner() { diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt index 70635b1f9a..b16847f29a 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -10,17 +10,21 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.AutopilotManager import com.mogo.och.taxi.passenger.model.TaxiPassengerModel import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment +import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean +import com.mogo.och.taxi.passenger.ui.model.order.OrderListener +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel /** * @author: wangmingjun * @date: 2022/3/4 */ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : - Presenter(view), IOCHTaxiPassengerOrderStatusCallback { + Presenter(view), IOCHTaxiPassengerOrderStatusCallback, + OrderListener { init { TaxiPassengerModel.init(AbsMogoApplication.getApp()) @@ -42,16 +46,12 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : private fun initListeners() { TaxiPassengerModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", this) + OrderModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", this) } private fun releaseListeners() { TaxiPassengerModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", null) - } - - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) { - order?.let { - updateOrderView(order) - } + OrderModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", null) } override fun onCurrentOrderDistToEndChanged( @@ -152,4 +152,12 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : companion object { private val TAG = BaseTaxiPassengerPresenter::class.java.simpleName } + + override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { + TaxiPassengerModel.currentOCHOrder?.let { + updateOrderView(it) + } + } + + } \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index 17e32f1c26..83b96f9458 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -16,6 +16,7 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick 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.DeviceUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.map.listener.IMogoMapListener import com.mogo.och.common.module.manager.xiaozhimanager.ZhiStateManager import com.mogo.och.common.module.utils.RxUtils @@ -180,13 +181,6 @@ class TaxiPassengerBaseFragment() : } } } - evaluate.setOrderIdCallback(object :EvaluateView.EvaluateCallback{ - override fun getOrderId(): String { - val orderNo = TaxiPassengerModel.currentOCHOrder?.orderNo - return orderNo?:"" - } - - }) } override fun onResume() { @@ -252,24 +246,26 @@ class TaxiPassengerBaseFragment() : fun showOrHideCheckAndStartAutopilotView(status:Int){ - arrivedView.visibility = View.GONE - when (status) { - 0 -> { - if(chekAndStartAutopilotView.visibility == View.GONE){ - showOrHide(false,"显示手机号check") + UiThreadHandler.post { + arrivedView.visibility = View.GONE + when (status) { + 0 -> { + if(chekAndStartAutopilotView.visibility == View.GONE){ + showOrHide(false,"显示手机号check") + } + chekAndStartAutopilotView.aniCheckAndStartAutopilot(true,0) } - chekAndStartAutopilotView.aniCheckAndStartAutopilot(true,0) - } - 1 -> { - if(chekAndStartAutopilotView.visibility == View.GONE){ - showOrHide(false,"显示启动自动驾驶") + 1 -> { + if(chekAndStartAutopilotView.visibility == View.GONE){ + showOrHide(false,"显示启动自动驾驶") + } + chekAndStartAutopilotView.aniCheckAndStartAutopilot(true,1) } - chekAndStartAutopilotView.aniCheckAndStartAutopilot(true,1) + 2 -> { + chekAndStartAutopilotView.aniCheckAndStartAutopilot(false,2) + } + else -> {} } - 2 -> { - chekAndStartAutopilotView.aniCheckAndStartAutopilot(false,2) - } - else -> {} } } diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt index 5b55ca9e53..561e65cd00 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt @@ -12,8 +12,8 @@ import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner -import com.google.android.material.animation.AnimatorSetCompat import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.och.common.module.manager.xiaozhimanager.ZhiViewmanager @@ -83,6 +83,8 @@ class ChekAndStartAutopilotView : WindowRelativeLayout, } } ZhiViewmanager.showListeningAni(ZhiViewmanager.beltAni) + aciv_start_autopilt_success_bg.alpha = 0f + aciv_start_autopilt_success_ani.alpha = 0f } else { aniCheck2StartAutopilotView = null ZhiViewmanager.showListeningAni(ZhiViewmanager.normalAni) @@ -153,6 +155,7 @@ class ChekAndStartAutopilotView : WindowRelativeLayout, aniCheck2StartAutopilotView?.start() } 2 -> { + CallerLogger.d(TAG,"aniCheckAndStartAutopilot${show} -${status} ---${waitCount}---${Thread.currentThread().name}") if (startAutopilotView.canGonethisView) {// 启动动画已经播放最少1遍 // 启动公司logo动画 startAnimal() @@ -164,6 +167,7 @@ class ChekAndStartAutopilotView : WindowRelativeLayout, } }else{ waitCount = 0 + startAnimal() } } return diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt index ad8625ffbd..bd995ffa64 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt @@ -1,29 +1,37 @@ package com.mogo.och.taxi.passenger.ui.checkstartautopilot import androidx.lifecycle.ViewModel -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum -import com.mogo.och.taxi.passenger.model.TaxiPassengerModel +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean +import com.mogo.och.taxi.passenger.ui.model.order.OrderListener +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel -class ChekAndStartAutopilotViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback { +class ChekAndStartAutopilotViewModel : ViewModel(), OrderListener { private val TAG = ChekAndStartAutopilotViewModel::class.java.simpleName private var viewCallback: CheckCallback? = null init { - TaxiPassengerModel.setOrderStatusCallback(TAG,this) + + OrderModel.setOrderStatusCallback(TAG,this) } fun setStartAutopilotCallback(viewCallback: CheckCallback) { this.viewCallback = viewCallback } + override fun onCleared() { + super.onCleared() + this.viewCallback = null + OrderModel.setOrderStatusCallback(TAG,null) + } - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) { - super.onCurrentOrderStatusChanged(order) + interface CheckCallback { + fun dismissWindow() + } + + override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { when (order?.orderStatus) { TaxiPassengerOrderStatusEnum.ArriveAtStart.code -> { // 显示手机号验证 @@ -37,14 +45,4 @@ class ChekAndStartAutopilotViewModel : ViewModel(), IOCHTaxiPassengerOrderStatus } } - override fun onCleared() { - super.onCleared() - this.viewCallback = null - TaxiPassengerModel.setOrderStatusCallback(TAG, null) - } - - interface CheckCallback { - fun dismissWindow() - } - } \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt index aab57ec5ec..05c7016b54 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt @@ -1,9 +1,6 @@ package com.mogo.och.taxi.passenger.ui.checkstartautopilot.check import androidx.lifecycle.ViewModel -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.TaxiPassengerModel class ChekViewModel : ViewModel() { diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt index fa6f095fb1..b6185f3725 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -6,14 +6,15 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.TaxiPassengerModel -import kotlin.math.abs +import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean +import com.mogo.och.taxi.passenger.ui.model.order.OrderListener +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel import kotlin.math.ceil -class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { +class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback, OrderListener { private val TAG = OrderInfoViewModel::class.java.simpleName @@ -27,6 +28,7 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { surplusTimeUnit = AbsMogoApplication.getApp().getString(R.string.taxi_p_surplustime) // 设置起点和终点marker和实时车辆位置 TaxiPassengerModel.setOrderStatusCallback(TAG,this) + OrderModel.setOrderStatusCallback(TAG,this) } fun setDistanceCallback(viewCallback:ItineraryViewCallback){ @@ -37,6 +39,7 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { super.onCleared() this.viewCallback = null TaxiPassengerModel.setOrderStatusCallback(TAG,null) + OrderModel.setOrderStatusCallback(TAG,null) } interface ItineraryViewCallback{ @@ -47,26 +50,6 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { fun setEndStation(endStation:String) } - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) { - order?.endSiteAddr?.let { - UiThreadHandler.post { - viewCallback?.setEndStation(it) - } - } - when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { - - } - else ->{ - UiThreadHandler.post { - viewCallback?.setDistanceInfo( - "--", disUnit, "--", surplusTimeUnit, "--", 0, 100 - ) - } - } - } - } - override fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long,stationDistance:Int) { var dis: String? = "0" var disUnit = "KM" @@ -88,4 +71,24 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { } } + override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { + TaxiPassengerModel.currentOCHOrder?.endSiteAddr?.let { + UiThreadHandler.post { + viewCallback?.setEndStation(it) + } + } + when (TaxiPassengerModel.curOrderStatus) { + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + + } + else ->{ + UiThreadHandler.post { + viewCallback?.setDistanceInfo( + "--", disUnit, "--", surplusTimeUnit, "--", 0, 100 + ) + } + } + } + } + } \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/taxi_p_north.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/taxi_p_north.png new file mode 100644 index 0000000000..8d5c431674 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/taxi_p_north.png differ diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_itinerary.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_itinerary.xml index b0bb507e99..170288bf06 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_itinerary.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_itinerary.xml @@ -155,6 +155,25 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> + + + + + + diff --git a/OCH/taxi/passenger/src/main/res/layout/taxt_p_start_autopilot_view.xml b/OCH/taxi/passenger/src/main/res/layout/taxt_p_start_autopilot_view.xml index 323ce869cc..c64e3b348c 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxt_p_start_autopilot_view.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxt_p_start_autopilot_view.xml @@ -77,7 +77,7 @@ android:layout_marginBottom="@dimen/dp_59" tools:text="用户:1234882382 目的地:环球贸易中心" android:textColor="@color/taxi_p_333333" - android:textSize="@dimen/dp_44" + android:textSize="@dimen/dp_38" android:layout_width="wrap_content" android:layout_height="wrap_content"/> diff --git a/OCH/taxi/passenger/src/main/res/values/colors.xml b/OCH/taxi/passenger/src/main/res/values/colors.xml index f97bfbd83a..f5b78bbda6 100644 --- a/OCH/taxi/passenger/src/main/res/values/colors.xml +++ b/OCH/taxi/passenger/src/main/res/values/colors.xml @@ -28,6 +28,7 @@ #C8F3F4 #282F62 #242C65 + #6C8BB9 diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt index 9f1bafb1c0..a792bb214e 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt @@ -119,13 +119,4 @@ class EvaluateView : ConstraintLayout, EvaluateViewModel.EvaluateCallback { } } - fun setOrderIdCallback(evaluateCallback: EvaluateCallback) { - viewModel?.setOrderIdCallback(evaluateCallback) - } - - interface EvaluateCallback { - fun getOrderId():String - } - - } \ No newline at end of file diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt index 5d535451be..c418dca9ec 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt @@ -3,8 +3,10 @@ package com.mogo.och.taxi.passenger.ui.evaluate import androidx.lifecycle.ViewModel import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.StringUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.manager.distancemamager.IDistanceListener import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel class EvaluateViewModel : ViewModel(), IDistanceListener { @@ -14,19 +16,18 @@ class EvaluateViewModel : ViewModel(), IDistanceListener { private var viewCallback: EvaluateCallback? = null - private var evaluateCallback: EvaluateView.EvaluateCallback?=null - init { TrajectoryAndDistanceManager.addDistanceListener(TAG, this) } override fun distanceCallback(distance: Float) { - super.distanceCallback(distance) if(distance<=500) { - evaluateCallback?.getOrderId()?.let{ + OrderModel.orderBean?.orderNo?.let { val string = SharedPrefsMgr.getInstance().getString(orderShowEvaluate) if (StringUtils.isEmpty(string) || !string.equals(it)) { - this.viewCallback?.showEvaluate(true) + UiThreadHandler.post { + this.viewCallback?.showEvaluate(true) + } SharedPrefsMgr.getInstance().putString(orderShowEvaluate, it) } } @@ -43,11 +44,6 @@ class EvaluateViewModel : ViewModel(), IDistanceListener { this.viewCallback = null } - fun setOrderIdCallback(evaluateCallback: EvaluateView.EvaluateCallback) { - this.evaluateCallback = evaluateCallback - } - - interface EvaluateCallback { fun showEvaluate(show: Boolean) diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt new file mode 100644 index 0000000000..cf94522caa --- /dev/null +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt @@ -0,0 +1,81 @@ +package com.mogo.och.taxi.passenger.ui.model.music + +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.utilcode.util.TAG +import com.mogo.och.common.module.manager.auditionmanager.AuditionManager +import com.mogo.och.common.module.utils.RxUtils +import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean +import com.mogo.och.taxi.passenger.ui.model.order.OrderListener +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import io.reactivex.disposables.Disposable + +object MusicModel : OrderListener, IMoGoAutopilotStatusListener { + init { + OrderModel.setOrderStatusCallback(TAG,this) + //自动驾驶状态监听 + CallerAutoPilotStatusListenerManager.addListener(TAG, this) + } + + private var stopMusicDisposable: Disposable? = null + private var orderInfo:BaseOrderBean? = null + + private const val startMusicWithOrderKey = "STARTMUSICWITHORDER" + + override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { + this.orderInfo = order + order?.orderStatus?.let { + when (TaxiPassengerOrderStatusEnum.valueOf(it)) { + TaxiPassengerOrderStatusEnum.None -> { + RxUtils.disposeSubscribe(stopMusicDisposable) + } + TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { + RxUtils.disposeSubscribe(stopMusicDisposable) + } + TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + RxUtils.disposeSubscribe(stopMusicDisposable) + } + TaxiPassengerOrderStatusEnum.UserArriveAtStart -> {} + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> {} + TaxiPassengerOrderStatusEnum.ArriveAtEnd -> {} + TaxiPassengerOrderStatusEnum.JourneyCompleted -> { + RxUtils.disposeSubscribe(stopMusicDisposable) + stopMusicDisposable = RxUtils.createSubscribe(60_000) { + AuditionManager.stop() + } + } + TaxiPassengerOrderStatusEnum.Cancel -> { + RxUtils.disposeSubscribe(stopMusicDisposable) + stopMusicDisposable = RxUtils.createSubscribe(60_000) { + AuditionManager.stop() + } + } + } + } + } + override fun onAutopilotStatusResponse(state: Int) { + val string = SharedPrefsMgr.getInstance().getString(startMusicWithOrderKey) + if(string==null){ + orderInfo?.let { + RxUtils.disposeSubscribe(stopMusicDisposable) + SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) + AuditionManager.playFirst() + } + }else{ + orderInfo?.let { + if (it.orderNo!=string) { + RxUtils.disposeSubscribe(stopMusicDisposable) + SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) + AuditionManager.playFirst() + } + } + } + } + + fun load() { + + } + +} \ No newline at end of file diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/BaseOrderBean.java b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/BaseOrderBean.java new file mode 100644 index 0000000000..9274120846 --- /dev/null +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/BaseOrderBean.java @@ -0,0 +1,6 @@ +package com.mogo.och.taxi.passenger.ui.model.order; + +public class BaseOrderBean { + public String orderNo;// 订单号 + public int orderStatus;//订单状态 +} diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/OrderListener.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/OrderListener.kt new file mode 100644 index 0000000000..6ecf8a741b --- /dev/null +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/OrderListener.kt @@ -0,0 +1,6 @@ +package com.mogo.och.taxi.passenger.ui.model.order + +interface OrderListener { + // 当前进行单状态变更:新到进行中订单、进行中单状态变更 + fun onCurrentOrderStatusChanged(order: BaseOrderBean?) +} \ No newline at end of file diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/OrderModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/OrderModel.kt new file mode 100644 index 0000000000..58ddeded67 --- /dev/null +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/OrderModel.kt @@ -0,0 +1,30 @@ +package com.mogo.och.taxi.passenger.ui.model.order + +import com.mogo.och.taxi.passenger.ui.model.music.MusicModel +import java.util.concurrent.ConcurrentHashMap + +object OrderModel { + private val mOrderStatusCallbackMap: MutableMap = ConcurrentHashMap() + + var orderBean:BaseOrderBean?=null + + init { + MusicModel.load() + } + + fun setOrderStatusCallback(tag: String?, callback: OrderListener?) { + if (tag == null || "" == tag) return + if (callback == null) { + mOrderStatusCallbackMap.remove(tag) + return + } + mOrderStatusCallbackMap[tag] = callback + } + + fun invokeListener(orderBean: T?){ + this.orderBean = orderBean + for (callback in mOrderStatusCallbackMap.values) { + callback.onCurrentOrderStatusChanged(orderBean) + } + } +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerOrderStatusEnum.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/TaxiPassengerOrderStatusEnum.kt similarity index 95% rename from OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerOrderStatusEnum.kt rename to OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/TaxiPassengerOrderStatusEnum.kt index 19dfedc935..1445172de8 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerOrderStatusEnum.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/TaxiPassengerOrderStatusEnum.kt @@ -1,4 +1,4 @@ -package com.mogo.och.taxi.passenger.constant +package com.mogo.och.taxi.passenger.ui.model.order /** * Created on 2021/12/7 diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/MusicView.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/MusicView.kt index 9ab6a1a1ea..0e24c4a4f3 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/MusicView.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/MusicView.kt @@ -48,8 +48,10 @@ class MusicView : ConstraintLayout, MusicViewModel.IMusicViewCallback, MusicList showMusicList() } else if (mpv_playing.visibility == GONE && mlv_list.visibility == VISIBLE) { showMusicPlaying() + mpv_playing.setData(null) }else{ showMusicPlaying() + mpv_playing.setData(null) } } mlv_list.setCheckItemListener(this) diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/list/MusicListItemAdapter.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/list/MusicListItemAdapter.kt index 141233c498..bd4b861762 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/list/MusicListItemAdapter.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/list/MusicListItemAdapter.kt @@ -52,6 +52,9 @@ class MusicListItemAdapter( val musicData = dataList[holder.bindingAdapterPosition] holder.musicName.text = musicData.songName + if(musicData.tag.size>0){ + holder.tvTag.text = musicData.tag.first() + } holder.itemView.setOnClickListener { clickListener.clickItem(musicData) } @@ -95,9 +98,11 @@ class MusicListItemAdapter( inner class TextVH(itemView: View) : RecyclerView.ViewHolder(itemView) { var musicName: TextView var musicPlayState: ImageView + var tvTag: TextView init { musicName = itemView.findViewById(R.id.tv_song_name) + tvTag = itemView.findViewById(R.id.tv_tag) musicPlayState = itemView.findViewById(R.id.iv_music_playing) } } diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingView.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingView.kt index dd3e14a467..984763e4f9 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingView.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingView.kt @@ -99,12 +99,9 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi override fun onVisibilityAggregated(isVisible: Boolean) { super.onVisibilityAggregated(isVisible) - if(isVisible){ - viewModel?.showData() - } } - fun setData(musicData: MusicData) { + fun setData(musicData: MusicData?) { viewModel?.setMusicData(musicData) } @@ -144,7 +141,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi animator = ObjectAnimator.ofFloat(iv_music_cover, "rotation", 0f, 360f) iv_music_cover.pivotX = (iv_music_cover.getWidth() / 2).toFloat() iv_music_cover.pivotY = (iv_music_cover.height / 2).toFloat() - animator?.duration = 2000 + animator?.duration = 3000 animator?.repeatCount = -1 animator?.repeatMode = ValueAnimator.RESTART animator?.interpolator = LinearInterpolator() diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt index 960775e574..742efccef3 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt @@ -2,6 +2,7 @@ package com.mogo.och.taxi.passenger.ui.music.playing import androidx.lifecycle.ViewModel import com.elegant.utils.UiThreadHandler +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.manager.auditionmanager.AuditionManager import com.mogo.och.common.module.manager.auditionmanager.MusicData @@ -27,16 +28,32 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen this.viewCallback = null } - fun setMusicData(musicData: MusicData) { - this.checkMusicData = musicData - this.viewCallback?.setViewData(musicData) + fun setMusicData(musicData: MusicData?) { + if (ThreadUtils.isMainThread()) { + showData(musicData) + }else { + UiThreadHandler.post { + showData(musicData) + } + } } - fun showData() { - if(checkMusicData!=null){ - - }else{ - + private fun showData(musicData: MusicData?){ + if(musicData==null){ + if(AuditionManager.isPlaying()){ + if (AuditionManager.musicDataPlaying==null) { + this.checkMusicData = AuditionManager.musicList.first() + }else { + this.checkMusicData = AuditionManager.musicDataPlaying!! + } + }else { + this.checkMusicData = AuditionManager.musicList.first() + } + }else { + this.checkMusicData = musicData + } + this.checkMusicData?.let { + this.viewCallback?.setViewData(it) } } diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/rightbar/RightBarView.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/rightbar/RightBarView.kt index b3ee635246..e90157382e 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/rightbar/RightBarView.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/rightbar/RightBarView.kt @@ -13,6 +13,7 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.SimpleTarget import com.bumptech.glide.request.transition.Transition +import com.elegant.utils.UiThreadHandler import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.common.module.manager.auditionmanager.AuditionManager @@ -112,7 +113,7 @@ class RightBarView : ConstraintLayout, AuditionManager.MusicDataChangeListener { animator = ObjectAnimator.ofFloat(ck_music, "rotation", 0f, 360f) ck_music.pivotX = (ck_music.width / 2).toFloat() ck_music.pivotY = (ck_music.height / 2).toFloat() - animator?.duration = 2000 + animator?.duration = 3000 animator?.repeatCount = -1 animator?.repeatMode = ValueAnimator.RESTART animator?.interpolator = LinearInterpolator() @@ -164,18 +165,23 @@ class RightBarView : ConstraintLayout, AuditionManager.MusicDataChangeListener { } override fun updateState(oldData: MusicData?, musicData: MusicData) { - if(musicData.state==PlayState.Playing){ - Glide.with(context) - .load(musicData.coverHeadImageUrl) - .apply(RequestOptions().placeholder(R.drawable.taxt_p_music_bg_relax_head)) - .into(object : SimpleTarget() { - override fun onResourceReady( - resource: Drawable, - transition: Transition? - ) { - ck_music.background = resource - } - }) + UiThreadHandler.post { + if (musicData.state == PlayState.Playing) { + if(!ck_music.isChecked){ + Glide.with(context) + .load(musicData.coverHeadImageUrl) + .apply(RequestOptions().placeholder(R.drawable.taxt_p_music_bg_relax_head)) + .into(object : SimpleTarget() { + override fun onResourceReady( + resource: Drawable, + transition: Transition? + ) { + ck_music.background = resource + } + }) + startAnimal() + } + } } } diff --git a/OCH/taxi/pcommon/src/main/res/layout/taxi_p_music_list_item.xml b/OCH/taxi/pcommon/src/main/res/layout/taxi_p_music_list_item.xml index 3aecf7ff67..833d2494f3 100644 --- a/OCH/taxi/pcommon/src/main/res/layout/taxi_p_music_list_item.xml +++ b/OCH/taxi/pcommon/src/main/res/layout/taxi_p_music_list_item.xml @@ -30,6 +30,7 @@ android:layout_height="wrap_content"/> Presenter回调:订单相关(进行中/待服务单变更,当前进行单状态变更,新到预约单,抢单,抢单结果状态等等) */ interface IOCHTaxiPassengerOrderStatusCallback { - // 当前进行单状态变更:新到进行中订单、进行中单状态变更 - fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?){} // 当前位置距离上车点的距离(米)、预估时间(秒) fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long,stationDistance:Int){} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerOrderStatusEnum.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerOrderStatusEnum.kt deleted file mode 100644 index 19dfedc935..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerOrderStatusEnum.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.och.taxi.passenger.constant - -/** - * Created on 2021/12/7 - * - * * Old code:START - * 未派单 0 - * 去往上车站点 1 - * 车辆已到达上车站点 2 - * 乘客已到达上车站点 3 - * 去往下车站点 4 - * 到达下车站点 5 - * 已完成 6 - * 已取消 7 - * Old code:END - * - * 0 订单创建(为派单), - * 10 已派上司机(司机去往上车点), - * 20 司机到达上车点, - * 30 乘客到达上车点, - * 40 服务中(去往目的地), - * 50 到达目的地, - * 60 已完成, - * 70 已取消 - */ -enum class TaxiPassengerOrderStatusEnum(val code: Int) { - None( 0 ), - OnTheWayToStart( 10), - ArriveAtStart( 20), - UserArriveAtStart( 30), - OnTheWayToEnd( 40), - ArriveAtEnd( 50), - JourneyCompleted(60),//行程完成 - Cancel( 70); - - companion object { - @JvmStatic - fun valueOf(code: Int): TaxiPassengerOrderStatusEnum { - for (value in values()) { - if (value.code == code) { - return value - } - } - return None - } - } -} \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt index 42a9fae2b4..87bac6335a 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt @@ -16,7 +16,7 @@ import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index 7bd7c8b84a..2a88f04994 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -37,9 +37,10 @@ import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst.Companion.TaskType_NONE import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst.Companion.TaskType_VIRTUAL -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum.Companion.valueOf +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum.Companion.valueOf import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager import java.util.concurrent.ConcurrentHashMap @@ -396,13 +397,9 @@ object TaxiPassengerModel { fun orderStatusChange() { orderStatusChangeInner() - if (mOrderStatusCallbackMap.isNotEmpty()) { - d(M_TAXI_P + TAG, "最新的状态-->${curOrderStatus}") - OchChainLogManager.writeChainLog(currentOCHOrder.toString(),"最新的状态-->${curOrderStatus}") - for (callback in mOrderStatusCallbackMap.values) { - callback.onCurrentOrderStatusChanged(currentOCHOrder) - } - } + d(M_TAXI_P + TAG, "最新的状态-->${curOrderStatus}") + OchChainLogManager.writeChainLog(currentOCHOrder.toString(),"最新的状态-->${curOrderStatus}") + OrderModel.invokeListener(currentOCHOrder) } private fun orderStatusChangeInner() { diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt index 693f6340d6..4cd724ad15 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -10,16 +10,20 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.TaxiPassengerModel import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment +import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean +import com.mogo.och.taxi.passenger.ui.model.order.OrderListener +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel /** * @author: wangmingjun * @date: 2022/3/4 */ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : - Presenter(view), IOCHTaxiPassengerOrderStatusCallback { + Presenter(view), IOCHTaxiPassengerOrderStatusCallback, + OrderListener { init { TaxiPassengerModel.init(AbsMogoApplication.getApp()) @@ -41,21 +45,12 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : private fun initListeners() { TaxiPassengerModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", this) + OrderModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", this) } private fun releaseListeners() { TaxiPassengerModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", null) - } - - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) { - updateOrderView(order) - } - - override fun onCurrentOrderDistToEndChanged( - meters: Long, - timeInSecond: Long, - stationDistance: Int - ) { + OrderModel.setOrderStatusCallback("BaseTaxiPassengerPresenter", null) } private fun updateOrderView(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) { @@ -153,4 +148,8 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : companion object { private val TAG = BaseTaxiPassengerPresenter::class.java.simpleName } + + override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { + updateOrderView(TaxiPassengerModel.currentOCHOrder) + } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt index 046156ddd7..7ed5c2e20e 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt @@ -86,6 +86,8 @@ class ChekAndStartAutopilotView : WindowRelativeLayout, } } ZhiViewmanager.showListeningAni(ZhiViewmanager.beltAni) + aciv_start_autopilt_success_bg.alpha = 0f + aciv_start_autopilt_success_ani.alpha = 0f } else { aniCheck2StartAutopilotView = null ZhiViewmanager.showListeningAni(ZhiViewmanager.normalAni) @@ -166,6 +168,7 @@ class ChekAndStartAutopilotView : WindowRelativeLayout, aniCheckAndStartAutopilot(false, 2) } }else{ + startAnimal() waitCount = 0 } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt index e1a04314dd..888f729b85 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt @@ -1,27 +1,36 @@ package com.mogo.och.taxi.passenger.ui.checkstartautopilot import androidx.lifecycle.ViewModel -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum -import com.mogo.och.taxi.passenger.model.TaxiPassengerModel +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean +import com.mogo.och.taxi.passenger.ui.model.order.OrderListener +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel -class ChekAndStartAutopilotViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback { +class ChekAndStartAutopilotViewModel : ViewModel(), OrderListener { private val TAG = ChekAndStartAutopilotViewModel::class.java.simpleName private var viewCallback: CheckCallback? = null init { - TaxiPassengerModel.setOrderStatusCallback(TAG,this) + OrderModel.setOrderStatusCallback(TAG,this) } fun setStartAutopilotCallback(viewCallback: CheckCallback) { this.viewCallback = viewCallback } - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) { - super.onCurrentOrderStatusChanged(order) + override fun onCleared() { + super.onCleared() + this.viewCallback = null + OrderModel.setOrderStatusCallback(TAG,null) + } + + interface CheckCallback { + fun dismissWindow() + } + + override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { when (order?.orderStatus) { TaxiPassengerOrderStatusEnum.ArriveAtStart.code -> { // 显示手机号验证 @@ -35,14 +44,4 @@ class ChekAndStartAutopilotViewModel : ViewModel(), IOCHTaxiPassengerOrderStatus } } - override fun onCleared() { - super.onCleared() - this.viewCallback = null - TaxiPassengerModel.setOrderStatusCallback(TAG, null) - } - - interface CheckCallback { - fun dismissWindow() - } - } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt index 9588ecd2a2..369ff6493f 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt @@ -1,9 +1,6 @@ package com.mogo.och.taxi.passenger.ui.checkstartautopilot.check import androidx.lifecycle.ViewModel -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.TaxiPassengerModel class ChekViewModel : ViewModel() { diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt index 9bc4fad09c..2f9db7c0e4 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -2,22 +2,19 @@ package com.mogo.och.taxi.passenger.ui.orderinfo import androidx.lifecycle.ViewModel import com.mogo.commons.AbsMogoApplication -import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum +import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum import com.mogo.och.taxi.passenger.model.TaxiPassengerModel -import kotlin.math.abs +import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean +import com.mogo.och.taxi.passenger.ui.model.order.OrderListener +import com.mogo.och.taxi.passenger.ui.model.order.OrderModel import kotlin.math.ceil -class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { +class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback, OrderListener { private val TAG = OrderInfoViewModel::class.java.simpleName @@ -31,6 +28,7 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { surplusTimeUnit = AbsMogoApplication.getApp().getString(R.string.taxi_p_surplustime) // 设置起点和终点marker和实时车辆位置 TaxiPassengerModel.setOrderStatusCallback(TAG,this) + OrderModel.setOrderStatusCallback(TAG,this) } fun setDistanceCallback(viewCallback:ItineraryViewCallback){ @@ -41,6 +39,7 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { super.onCleared() this.viewCallback = null TaxiPassengerModel.setOrderStatusCallback(TAG,null) + OrderModel.setOrderStatusCallback(TAG,null) } interface ItineraryViewCallback{ @@ -51,26 +50,6 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { fun setEndStation(endStation:String) } - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) { - order?.orderEndSite?.let { - UiThreadHandler.post { - viewCallback?.setEndStation(it.siteName) - } - } - when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { - - } - else ->{ - UiThreadHandler.post { - viewCallback?.setDistanceInfo( - "--", disUnit, "--", surplusTimeUnit, "--", 0, 100 - ) - } - } - } - } - override fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long,stationDistance:Int) { var dis: String? = "0" var disUnit = "KM" @@ -96,4 +75,24 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback { } } + override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { + TaxiPassengerModel.currentOCHOrder?.orderEndSite?.let { + UiThreadHandler.post { + viewCallback?.setEndStation(it.siteName) + } + } + when (TaxiPassengerModel.curOrderStatus) { + TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + + } + else ->{ + UiThreadHandler.post { + viewCallback?.setDistanceInfo( + "--", disUnit, "--", surplusTimeUnit, "--", 0, 100 + ) + } + } + } + } + } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_north.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_north.png new file mode 100644 index 0000000000..8d5c431674 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_north.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_itinerary.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_itinerary.xml index 0a238c9e36..768e48e03c 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_itinerary.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_itinerary.xml @@ -155,6 +155,26 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> + + + + + + + diff --git a/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml b/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml index 2f3f368f0e..0b76883ce1 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml @@ -65,6 +65,8 @@ #E6E5F0FF #4D7985A7 + #6C8BB9 + \ No newline at end of file