[5.0.0]
[手机号验证和主Fragment解耦合]
This commit is contained in:
@@ -247,10 +247,7 @@ object TaxiPassengerModel {
|
||||
}
|
||||
}
|
||||
|
||||
fun checkPhoneAndUpdateStatus(
|
||||
phoneTail: String?,
|
||||
commonCallback: ITaxiPassengerCommonCallback?
|
||||
) {
|
||||
fun checkPhoneAndUpdateStatus(phoneTail: String) {
|
||||
if (currentOCHOrder == null) return
|
||||
TaxiPassengerServiceManager.checkPhoneAndUpdateOrderStatus(
|
||||
currentOCHOrder!!.orderNo,
|
||||
@@ -262,7 +259,6 @@ object TaxiPassengerModel {
|
||||
orderStatusChange()
|
||||
VoiceNotice.showNotice("验证成功!关闭车门并佩戴安全带后开启行程吧!", AIAssist.LEVEL2)
|
||||
}
|
||||
commonCallback?.onCommonCallback()
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
|
||||
@@ -68,8 +68,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
|
||||
TaxiPassengerOrderStatusEnum.ArriveAtStart -> {
|
||||
// 20 司机到达上车点
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(true, order.startSiteAddr,
|
||||
order.endSiteAddr, order.passengerNum, order.passengerPhone)
|
||||
mView?.showOrHidePressengerCheckPager(true)
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
}
|
||||
|
||||
@@ -122,12 +121,6 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
|
||||
mView?.showOrHideOverMapView()
|
||||
}
|
||||
|
||||
fun checkAndUpdateStatus(phone: String?) {
|
||||
TaxiPassengerModel.checkPhoneAndUpdateStatus(phone) {
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
}
|
||||
}
|
||||
|
||||
fun setItineraryVisibility() {
|
||||
UiThreadHandler.post {
|
||||
when (TaxiPassengerModel.curOrderStatus) {
|
||||
|
||||
@@ -167,14 +167,6 @@ class TaxiPassengerBaseFragment() :
|
||||
}
|
||||
}
|
||||
|
||||
private fun initCheckView() {
|
||||
mArrivedCheckView = WeakReference(TaxiPassengerCheckView(context))
|
||||
mArrivedCheckView!!.get()!!.iTaxiPassengerCommonValueCallback =
|
||||
ITaxiPassengerCommonValueCallback { phoneTail: String? ->
|
||||
getPresenter()!!.checkAndUpdateStatus(phoneTail)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
mapBizView!!.onResume()
|
||||
@@ -308,19 +300,13 @@ class TaxiPassengerBaseFragment() :
|
||||
*/
|
||||
fun showOrHidePressengerCheckPager(
|
||||
isShow: Boolean,
|
||||
startSiteAddr: String? = "",
|
||||
endSiteAddr: String? = "",
|
||||
passengerNum: String? = "",
|
||||
phone: String? = ""
|
||||
) {
|
||||
try {
|
||||
if (isShow) {
|
||||
exitFullVideoScreen(false)
|
||||
if (mArrivedCheckView == null || mArrivedCheckView!!.get() == null) {
|
||||
initCheckView()
|
||||
mArrivedCheckView = WeakReference(TaxiPassengerCheckView(context))
|
||||
}
|
||||
mArrivedCheckView!!.get()!!
|
||||
.setData(startSiteAddr, endSiteAddr, passengerNum, phone)
|
||||
OverlayViewUtils.showOverlayView(activity, mArrivedCheckView!!.get())
|
||||
} else {
|
||||
if (mArrivedCheckView == null || mArrivedCheckView!!.get() == null) {
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.mogo.och.taxi.passenger.ui.check
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import chassis.Chassis.DoorNumber
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisDoorStateListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisDoorStateListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
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.model.AutopilotManager
|
||||
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel
|
||||
|
||||
class ChekViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback {
|
||||
|
||||
private val TAG = ChekViewModel::class.java.simpleName
|
||||
|
||||
private var viewCallback: CheckCallback? = null
|
||||
|
||||
init {
|
||||
TaxiPassengerModel.setOrderStatusCallback(TAG,this)
|
||||
}
|
||||
|
||||
fun setStartAutopilotCallback(viewCallback: CheckCallback) {
|
||||
this.viewCallback = viewCallback
|
||||
TaxiPassengerModel.startOrStopReadyToAutopilotLoop(true)
|
||||
setOrderInfo()
|
||||
}
|
||||
fun checkAndUpdateStatus(phone: String) {
|
||||
TaxiPassengerModel.checkPhoneAndUpdateStatus(phone)
|
||||
}
|
||||
|
||||
|
||||
private fun setOrderInfo() {
|
||||
val currentOCHOrder = TaxiPassengerModel.currentOCHOrder
|
||||
currentOCHOrder?.let { order ->
|
||||
viewCallback?.setOrderInfo(order.startSiteAddr,
|
||||
order.endSiteAddr, order.passengerNum, order.passengerPhone)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) {
|
||||
super.onCurrentOrderStatusChanged(order)
|
||||
order?.let {
|
||||
if(it.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.code){
|
||||
this.viewCallback?.dismissWindow()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
super.onCleared()
|
||||
this.viewCallback = null
|
||||
TaxiPassengerModel.setOrderStatusCallback(TAG, null)
|
||||
}
|
||||
|
||||
interface CheckCallback {
|
||||
fun setOrderInfo(startSiteAddr: String?,
|
||||
endSiteAddr: String?,
|
||||
passengerNum: String?,
|
||||
phone: String?)
|
||||
|
||||
fun dismissWindow()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,16 +8,17 @@ import android.text.style.TextAppearanceSpan
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.OverlayViewUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.taxi.passenger.R
|
||||
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonValueCallback
|
||||
import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout
|
||||
import kotlinx.android.synthetic.main.taxi_p_passenger_check_panel.view.tv_passenger_count
|
||||
import kotlinx.android.synthetic.main.taxi_p_passenger_check_panel.view.tv_passenger_end
|
||||
import kotlinx.android.synthetic.main.taxi_p_passenger_check_panel.view.tv_passenger_start
|
||||
@@ -43,7 +44,8 @@ import kotlinx.android.synthetic.main.taxi_p_passenger_check_panel.view.tv_taxi_
|
||||
*
|
||||
* Created on 2022/3/16
|
||||
*/
|
||||
class TaxiPassengerCheckView :RelativeLayout, View.OnClickListener {
|
||||
class TaxiPassengerCheckView : WindowRelativeLayout, View.OnClickListener,
|
||||
ChekViewModel.CheckCallback {
|
||||
|
||||
constructor(context: Context?) : super(context)
|
||||
|
||||
@@ -53,14 +55,13 @@ class TaxiPassengerCheckView :RelativeLayout, View.OnClickListener {
|
||||
|
||||
constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
|
||||
|
||||
var iTaxiPassengerCommonValueCallback: ITaxiPassengerCommonValueCallback<String>?=null
|
||||
|
||||
|
||||
private var index = 0
|
||||
private var phone = ""
|
||||
private val numSelect = arrayOfNulls<Int>(4)
|
||||
private val numSelectTextView = arrayOfNulls<TextView>(4)
|
||||
|
||||
private lateinit var viewModel:ChekViewModel
|
||||
|
||||
private fun initView(context: Context) {
|
||||
d(SceneConstant.M_TAXI_P + TAG, "initView")
|
||||
LayoutInflater.from(context).inflate(R.layout.taxi_p_passenger_check_panel, this, true)
|
||||
@@ -121,7 +122,13 @@ class TaxiPassengerCheckView :RelativeLayout, View.OnClickListener {
|
||||
VoiceNotice.showNotice("验证失败!再检查一下吧~", AIAssist.LEVEL2)
|
||||
return
|
||||
}
|
||||
iTaxiPassengerCommonValueCallback?.onCommonCallback(numberStr)
|
||||
viewModel.checkAndUpdateStatus(numberStr)
|
||||
}
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
viewModel = ViewModelProvider(this).get(ChekViewModel::class.java)
|
||||
viewModel.setStartAutopilotCallback(this)
|
||||
}
|
||||
|
||||
private fun selectIndex(i: Int) {
|
||||
@@ -212,12 +219,19 @@ class TaxiPassengerCheckView :RelativeLayout, View.OnClickListener {
|
||||
|
||||
}
|
||||
|
||||
fun setData(
|
||||
startSiteAddr: String?,
|
||||
endSiteAddr: String?,
|
||||
passengerNum: String?,
|
||||
phone: String?
|
||||
) {
|
||||
companion object {
|
||||
const val TAG = "TaxiPassengerCheckView"
|
||||
}
|
||||
|
||||
init {
|
||||
try {
|
||||
initView(context)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun setOrderInfo(startSiteAddr: String?, endSiteAddr: String?, passengerNum: String?, phone: String?) {
|
||||
this.phone = phone?:""
|
||||
val sb = SpannableStringBuilder("乘客数:$passengerNum 位") // 包装字体内容
|
||||
sb.setSpan(
|
||||
@@ -236,15 +250,7 @@ class TaxiPassengerCheckView :RelativeLayout, View.OnClickListener {
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "TaxiPassengerCheckView"
|
||||
}
|
||||
|
||||
init {
|
||||
try {
|
||||
initView(context)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
override fun dismissWindow() {
|
||||
OverlayViewUtils.dismissOverlayView(this)
|
||||
}
|
||||
}
|
||||
@@ -52,7 +52,7 @@ class DebugView @JvmOverloads constructor(
|
||||
fragment?.showOrHideArrivedEndLayout(true)
|
||||
}
|
||||
tv_show_phone_check.onClick {
|
||||
fragment?.showOrHidePressengerCheckPager(isShow = true,"13号路口终(鹰眼专用)","13号路口终(鹰眼专用)","2","18811539480")
|
||||
fragment?.showOrHidePressengerCheckPager(isShow = true)
|
||||
}
|
||||
tv_show_start_autopilot.onClick {
|
||||
fragment?.showOrHideStartAutopilotView(true)
|
||||
|
||||
Reference in New Issue
Block a user