[6.3.0]
[taxi 订单和音乐关联起来]
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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){}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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 -> {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
BIN
OCH/taxi/passenger/src/main/res/drawable-nodpi/taxi_p_north.png
Normal file
BIN
OCH/taxi/passenger/src/main/res/drawable-nodpi/taxi_p_north.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 472 B |
@@ -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-->
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -119,13 +119,4 @@ class EvaluateView : ConstraintLayout, EvaluateViewModel.EvaluateCallback {
|
||||
}
|
||||
}
|
||||
|
||||
fun setOrderIdCallback(evaluateCallback: EvaluateCallback) {
|
||||
viewModel?.setOrderIdCallback(evaluateCallback)
|
||||
}
|
||||
|
||||
interface EvaluateCallback {
|
||||
fun getOrderId():String
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.mogo.och.taxi.passenger.ui.model.order;
|
||||
|
||||
public class BaseOrderBean {
|
||||
public String orderNo;// 订单号
|
||||
public int orderStatus;//订单状态
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.mogo.och.taxi.passenger.ui.model.order
|
||||
|
||||
interface OrderListener {
|
||||
// 当前进行单状态变更:新到进行中订单、进行中单状态变更
|
||||
fun onCurrentOrderStatusChanged(order: BaseOrderBean?)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;//站点-起点
|
||||
|
||||
@@ -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){}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
@@ -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 |
@@ -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
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user