[taxi 订单和音乐关联起来]
This commit is contained in:
yangyakun
2024-03-18 20:47:01 +08:00
parent 2470520f09
commit fede28930b
46 changed files with 405 additions and 267 deletions

View File

@@ -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()

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -30,6 +30,7 @@
android:layout_height="@dimen/dp_16"/>
<TextView
android:id="@+id/tv_tag"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -63,6 +63,16 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi
return Audition.isPlaying
}
fun stop(){
Audition.stop()
}
fun playFirst(){
if(!isPlaying()){
toggle(musicList.first())
}
}
private fun resetData():MusicData?{
var tempRusult:MusicData?=null
musicList.forEach {

View File

@@ -1,6 +1,7 @@
package com.mogo.och.taxi.passenger.bean;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean;
import java.util.List;
import java.util.Objects;
@@ -13,13 +14,9 @@ import java.util.Objects;
public class TaxiPassengerOrderQueryRespBean extends BaseData {
public Result data;
public static class Result implements Comparable<Result>{
// 订单no
public String orderNo;
public static class Result extends BaseOrderBean implements Comparable<Result>{
// 订单类型
public int orderType; //1即时单 2预约单
// 订单状态
public int orderStatus;
// 订单运营类型 9出租车10小巴
public int businessType;
// 起始站点id

View File

@@ -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){}

View File

@@ -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

View File

@@ -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() {

View File

@@ -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<TaxiPassengerBaseFragment?>(view), IOCHTaxiPassengerOrderStatusCallback {
Presenter<TaxiPassengerBaseFragment?>(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)
}
}
}

View File

@@ -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 -> {}
}
}

View File

@@ -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

View File

@@ -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()
}
}

View File

@@ -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() {

View File

@@ -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
)
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

View File

@@ -155,6 +155,25 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_north"
android:text="N"
android:textColor="@color/taxi_p_6C8BB9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/simpleMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatImageView
android:src="@drawable/taxi_p_north"
app:layout_constraintBottom_toTopOf="@+id/actv_north"
app:layout_constraintEnd_toEndOf="@+id/actv_north"
app:layout_constraintStart_toStartOf="@+id/actv_north"
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_11"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- <com.mogo.och.taxi.passenger.ui.simplemap.SimpleMapView-->

View File

@@ -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"/>

View File

@@ -28,6 +28,7 @@
<color name="taxi_p_C8F3F4">#C8F3F4</color>
<color name="taxi_p_282F62">#282F62</color>
<color name="taxi_p_242C65">#242C65</color>
<color name="taxi_p_6C8BB9">#6C8BB9</color>

View File

@@ -119,13 +119,4 @@ class EvaluateView : ConstraintLayout, EvaluateViewModel.EvaluateCallback {
}
}
fun setOrderIdCallback(evaluateCallback: EvaluateCallback) {
viewModel?.setOrderIdCallback(evaluateCallback)
}
interface EvaluateCallback {
fun getOrderId():String
}
}

View File

@@ -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)

View File

@@ -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() {
}
}

View File

@@ -0,0 +1,6 @@
package com.mogo.och.taxi.passenger.ui.model.order;
public class BaseOrderBean {
public String orderNo;// 订单号
public int orderStatus;//订单状态
}

View File

@@ -0,0 +1,6 @@
package com.mogo.och.taxi.passenger.ui.model.order
interface OrderListener {
// 当前进行单状态变更:新到进行中订单、进行中单状态变更
fun onCurrentOrderStatusChanged(order: BaseOrderBean?)
}

View File

@@ -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<String, OrderListener> = 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 <T: BaseOrderBean?>invokeListener(orderBean: T?){
this.orderBean = orderBean
for (callback in mOrderStatusCallbackMap.values) {
callback.onCurrentOrderStatusChanged(orderBean)
}
}
}

View File

@@ -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

View File

@@ -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)

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -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)
}
}

View File

@@ -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<Drawable>() {
override fun onResourceReady(
resource: Drawable,
transition: Transition<in Drawable>?
) {
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<Drawable>() {
override fun onResourceReady(
resource: Drawable,
transition: Transition<in Drawable>?
) {
ck_music.background = resource
}
})
startAnimal()
}
}
}
}

View File

@@ -30,6 +30,7 @@
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tv_tag"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -1,6 +1,7 @@
package com.mogo.och.taxi.passenger.bean;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean;
import java.util.List;
import java.util.Objects;
@@ -46,9 +47,7 @@ public class TaxiPassengerOrdersInServiceQueryRespBean extends BaseData {
}
}
public static class OrderBean {
public String orderNo;// 订单号
public int orderStatus;//订单状态
public static class OrderBean extends BaseOrderBean {
public String bookingUserPhone;// 用户手机号
public int passengerSize;//乘客人数
public SiteBean orderStartSite;//站点-起点

View File

@@ -9,8 +9,6 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBea
* Model->Presenter回调订单相关进行中/待服务单变更,当前进行单状态变更,新到预约单,抢单,抢单结果状态等等)
*/
interface IOCHTaxiPassengerOrderStatusCallback {
// 当前进行单状态变更:新到进行中订单、进行中单状态变更
fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?){}
// 当前位置距离上车点的距离(米)、预估时间(秒)
fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long,stationDistance:Int){}

View File

@@ -1,47 +0,0 @@
package com.mogo.och.taxi.passenger.constant
/**
* Created on 2021/12/7
*
* * Old codeSTART
* 未派单 0
* 去往上车站点 1
* 车辆已到达上车站点 2
* 乘客已到达上车站点 3
* 去往下车站点 4
* 到达下车站点 5
* 已完成 6
* 已取消 7
* Old codeEND
*
* 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
}
}
}

View File

@@ -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

View File

@@ -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() {

View File

@@ -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<TaxiPassengerBaseFragment?>(view), IOCHTaxiPassengerOrderStatusCallback {
Presenter<TaxiPassengerBaseFragment?>(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)
}
}

View File

@@ -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
}
}

View File

@@ -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()
}
}

View File

@@ -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() {

View File

@@ -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
)
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

View File

@@ -155,6 +155,26 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_north"
android:text="N"
android:textColor="@color/taxi_p_6C8BB9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/simpleMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatImageView
android:src="@drawable/taxi_p_north"
app:layout_constraintBottom_toTopOf="@+id/actv_north"
app:layout_constraintEnd_toEndOf="@+id/actv_north"
app:layout_constraintStart_toStartOf="@+id/actv_north"
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_11"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<ProgressBar

View File

@@ -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"/>

View File

@@ -65,6 +65,8 @@
<color name="taxi_p_E6E5F0FF">#E6E5F0FF</color>
<color name="taxi_p_4D7985A7">#4D7985A7</color>
<color name="taxi_p_6C8BB9">#6C8BB9</color>
</resources>