diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt index b89cd263db..889159a2b7 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt @@ -36,14 +36,14 @@ object AutopilotManager : IMoGoAutopilotStatusListener { } - fun startAutopilot() { + fun startAutopilot():String { if (!checkCurrentOCHOrder()) { CallerLogger.e( SceneConstant.M_TAXI_P + TAG, "no order or order is empty." ) ToastUtils.showShort("当前订单不存在或异常!") - return + return "当前订单不存在或异常!" } if (TaxiPassengerModel.currentOCHOrder!!.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.code) { startServicePilotDone() @@ -51,12 +51,12 @@ object AutopilotManager : IMoGoAutopilotStatusListener { if(CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ ToastUtils.showShort("自驾中、请勿重复启动"); - return; + return "自驾中、请勿重复启动"; } val resion = TrajectoryAndDistanceManager.canStartAutopilot(TaxiPassengerModel.currentOCHOrder!!.lineId) if (!StringUtils.isEmpty(resion)) { ToastUtils.showShort(resion) - return + return resion } if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) { @@ -70,7 +70,7 @@ object AutopilotManager : IMoGoAutopilotStatusListener { TaxiPassengerModel.currentOCHOrder!!.orderNo, OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason ) - return + return OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason + ", 请稍候重试" } val parameters = initAutopilotControlParameters() if (parameters == null) { @@ -78,7 +78,7 @@ object AutopilotManager : IMoGoAutopilotStatusListener { SceneConstant.M_TAXI_P + TAG, "AutopilotControlParameters is empty." ) - return + return "自动化驾驶参数异常" } CallerAutoPilotControlManager.startAutoPilot(parameters) CallerLogger.d( @@ -91,6 +91,7 @@ object AutopilotManager : IMoGoAutopilotStatusListener { TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent(false, false, TaxiPassengerModel.currentOCHOrder!!.startSiteAddr, TaxiPassengerModel.currentOCHOrder!!.endSiteAddr, TaxiPassengerModel.currentOCHOrder!!.orderNo, TaxiPassengerModel.currentOCHOrder!!.lineId) + return "" } private fun initAutopilotControlParameters(): AutopilotControlParameters? { diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index 0a0cb370fa..5f8f766194 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -253,7 +253,6 @@ object TaxiPassengerModel { fun checkPhoneAndUpdateStatus( phoneTail: String?, - commonCallback: ITaxiPassengerCommonCallback? ) { if (currentOCHOrder == null) return TaxiPassengerServiceManager.checkPhoneAndUpdateOrderStatus( @@ -266,7 +265,6 @@ object TaxiPassengerModel { orderStatusChange() VoiceNotice.showNotice("验证成功!关闭车门并佩戴安全带后开启行程吧!", AIAssist.LEVEL2) } - commonCallback?.onCommonCallback() } override fun onFail(code: Int, msg: String) { diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt index 96c060d20b..cab3609548 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -68,44 +68,40 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : TaxiPassengerOrderStatusEnum.ArriveAtStart -> { // 20 司机到达上车点 mView?.showOrHideArrivedEndLayout(isShow = false) - mView?.showOrHidePressengerCheckPager(true, order.startSiteAddr, - order.endSiteAddr, order.passengerNum, order.carNumber, order.passengerPhone) - mView?.showOrHideStartAutopilotView(isShow = false) + mView?.showOrHideCheckAndStartAutopilotView(0) + overMapViewClear() } TaxiPassengerOrderStatusEnum.UserArriveAtStart -> { // 30 乘客到达上车点 mView?.showOrHideArrivedEndLayout(isShow = false) - mView?.showOrHidePressengerCheckPager(isShow = false) - mView?.showOrHideStartAutopilotView(isShow = true) + mView?.showOrHideCheckAndStartAutopilotView(1) + overMapViewClear() } TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { // 服务中(去往目的地) mView?.showOrHideArrivedEndLayout(isShow = false) - mView?.showOrHidePressengerCheckPager(isShow = false) - mView?.showOrHideStartAutopilotView(isShow = false) + mView?.showOrHideCheckAndStartAutopilotView(2) + mView?.tipXiaoZhi() overMapViewShow() } TaxiPassengerOrderStatusEnum.ArriveAtEnd -> { // 50 到达终点 乘客可以评价 mView?.showOrHideArrivedEndLayout(true) - mView?.showOrHidePressengerCheckPager(isShow = false) - mView?.showOrHideStartAutopilotView(isShow = false) + mView?.showOrHideCheckAndStartAutopilotView(2) overMapViewClear() } TaxiPassengerOrderStatusEnum.JourneyCompleted -> { // 60 行程完成 - mView?.showOrHideStartAutopilotView(isShow = false) - mView?.showOrHidePressengerCheckPager(isShow = false) + mView?.showOrHideCheckAndStartAutopilotView(2) mView?.showOrHideArrivedEndLayout(false) overMapViewClear() } TaxiPassengerOrderStatusEnum.Cancel -> { // 70 取消订单 - mView?.showOrHideStartAutopilotView(isShow = false) - mView?.showOrHidePressengerCheckPager(isShow = false) + mView?.showOrHideCheckAndStartAutopilotView(2) mView?.showOrHideArrivedEndLayout(isShow = false) overMapViewClear() } @@ -122,12 +118,6 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : mView?.showOrHideOverMapView() } - fun checkAndUpdateStatus(phone: String?) { - TaxiPassengerModel.checkPhoneAndUpdateStatus(phone) { - mView?.showOrHidePressengerCheckPager(isShow = false) - } - } - /** * 开启自动驾驶 */ diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index c6ff2ede8c..34aa93674a 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -27,8 +27,10 @@ import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter import com.mogo.och.taxi.passenger.ui.arrived.ArrivedView import com.mogo.och.taxi.passenger.ui.bottom.BottomBar import com.mogo.och.taxi.passenger.ui.check.TaxiPassengerCheckView +import com.mogo.och.taxi.passenger.ui.checkstartautopilot.ChekAndStartAutopilotView import com.mogo.och.taxi.passenger.ui.startautopilot.StartAutopilotView import com.mogo.och.taxi.passenger.ui.statusview.StatusBarView +import io.reactivex.disposables.Disposable import kotlinx.android.synthetic.main.taxi_p_base_fragment.* import java.lang.ref.WeakReference @@ -44,18 +46,9 @@ class TaxiPassengerBaseFragment() : MvpFragment(), IMogoMapListener, TaxiPassengerTaxiView { - /** - * 手机号后四位验证 - */ - private var mArrivedCheckView: WeakReference? = null - - /** - * 启动自驾页面 - */ - private var mStartAutopilotView: WeakReference? = null - private var statusBarView: StatusBarView? = null + private var tipXiaoZhiDelay: Disposable?=null override fun getLayoutId(): Int { return R.layout.taxi_p_base_fragment @@ -161,14 +154,22 @@ class TaxiPassengerBaseFragment() : } } - } - - private fun initCheckView() { - mArrivedCheckView = WeakReference(TaxiPassengerCheckView(context)) - mArrivedCheckView!!.get()!!.iTaxiPassengerCommonValueCallback = - ITaxiPassengerCommonValueCallback { phoneTail: String? -> - getPresenter()!!.checkAndUpdateStatus(phoneTail) + arrivedView.arrivedVisilityChangeListenr = object :ArrivedView.ArrivedVisilityChangeListenr{ + override fun isShow(show: Boolean) { + CallerLogger.d(M_TAXI_P + TAG, "arrived ${show}") + if(arrivedView.visibility==View.GONE&&chekAndStartAutopilotView.visibility==View.GONE){ + showOrHide(true) + } } + } + chekAndStartAutopilotView.checkAndStartVisilityChangeListenr = object : ChekAndStartAutopilotView.CheckAndStartVisilityChangeListenr{ + override fun isShow(show: Boolean) { + CallerLogger.d(M_TAXI_P + TAG, "check and startAutopilot ${show}") + if(arrivedView.visibility==View.GONE&&chekAndStartAutopilotView.visibility==View.GONE){ + showOrHide(true) + } + } + } } override fun onResume() { @@ -231,30 +232,39 @@ class TaxiPassengerBaseFragment() : } } - /** - * 显示或者隐藏乘客可点击自动驾驶页面 - * 乘客验证成功,页面显示,按钮置于不可点击 - * 司机端确认可点击开启自动驾驶, 按钮置为可点击 - * 订单前往目的地,页面消失 - * - * @param isShow - */ - fun showOrHideStartAutopilotView(isShow: Boolean) { - if (isShow) { - exitFullVideoScreen(false) - if (mStartAutopilotView == null || mStartAutopilotView!!.get() == null) { - mStartAutopilotView = WeakReference(StartAutopilotView(requireContext())) + + + fun showOrHideCheckAndStartAutopilotView(status:Int){ + arrivedView.visibility = View.GONE + when (status) { + 0 -> { + if(chekAndStartAutopilotView.visibility == View.GONE){ + showOrHide(false) + } + chekAndStartAutopilotView.aniCheckAndStartAutopilot(true,0) } - mStartAutopilotView?.get()?.let { - OverlayViewUtils.showOverlayView(activity, it) - it.handleStartAutopilotBtnStatus(false) + 1 -> { + if(chekAndStartAutopilotView.visibility == View.GONE){ + showOrHide(false) + } + chekAndStartAutopilotView.aniCheckAndStartAutopilot(true,1) } - } else { - mStartAutopilotView?.get()?.closeAllAnimsAndView() - RxUtils.createSubscribe(30_000) { - VoiceNotice.showNotice("想和我对话的时候可以直接戳我,也可以对我说\\'你好小智\\'!", AIAssist.LEVEL2) + 2 -> { + chekAndStartAutopilotView.aniCheckAndStartAutopilot(false,2) + showOrHide(true) + chekAndStartAutopilotView.resetCheckView() } - mStartAutopilotView = null + else -> {} + } + } + + fun tipXiaoZhi(){ + RxUtils.disposeSubscribe(tipXiaoZhiDelay) + tipXiaoZhiDelay = RxUtils.createSubscribe(30_000) { + VoiceNotice.showNotice( + "想和我对话的时候可以直接戳我,也可以对我说\\'你好小智\\'!", + AIAssist.LEVEL2 + ) } } @@ -292,39 +302,6 @@ class TaxiPassengerBaseFragment() : overMapView?.clearCustomPolyline() } - /** - * ① 取消订单 到达上车点后乘客取消订单 隐藏乘客验证页面 - * ② 司机到达上车点 到达上车点 展示乘客验证页面 - * ③ 乘客到达上车点 手机号验证成功后 隐藏乘客验证页面 - * ④ debug 使用 - */ - fun showOrHidePressengerCheckPager( - isShow: Boolean, - startSiteAddr: String? = "", - endSiteAddr: String? = "", - passengerNum: String? = "", - carNumber: String? = "", - phone: String? = "" - ) { - try { - if (isShow) { - exitFullVideoScreen(false) - if (mArrivedCheckView == null || mArrivedCheckView!!.get() == null) { - initCheckView() - } - mArrivedCheckView!!.get()!! - .setData(startSiteAddr, endSiteAddr, passengerNum, carNumber, phone) - OverlayViewUtils.showOverlayView(activity, mArrivedCheckView!!.get()) - } else { - if (mArrivedCheckView == null || mArrivedCheckView!!.get() == null) { - return - } - OverlayViewUtils.dismissOverlayView(mArrivedCheckView!!.get()) - } - } catch (e: Exception) { - e.printStackTrace() - } - } fun showOverMapView() { bottom.setCheckIndex(BottomBar.SelectView.OVERMAPVIEW) diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt new file mode 100644 index 0000000000..59bc5db93e --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt @@ -0,0 +1,163 @@ +package com.mogo.och.taxi.passenger.ui.checkstartautopilot + +import android.animation.ObjectAnimator +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.utilcode.kotlin.onClick +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.utils.BigFrameAnimatorContainer +import com.mogo.och.taxi.passenger.R +import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout +import kotlinx.android.synthetic.main.taxt_p_check_startautopilot.view.aciv_check_autopilot +import kotlinx.android.synthetic.main.taxt_p_check_startautopilot.view.checkPhoneNumber +import kotlinx.android.synthetic.main.taxt_p_check_startautopilot.view.startAutopilotClose +import kotlinx.android.synthetic.main.taxt_p_check_startautopilot.view.startAutopilotView + +/** + * V2X预警事件view:通过FloatWindow呈现,无需加入到自定义layout中 + * + * Created on 2022/3/16 + */ +class ChekAndStartAutopilotView : WindowRelativeLayout, + ChekAndStartAutopilotViewModel.CheckCallback { + + constructor(context: Context?) : super(context) + + constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + constructor( + context: Context?, + attributeSet: AttributeSet, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attributeSet, defStyleAttr, defStyleRes) + + private var viewModel: ChekAndStartAutopilotViewModel? = null + + private var aniCheck2StartAutopilotView: BigFrameAnimatorContainer? = null + + var checkAndStartVisilityChangeListenr: CheckAndStartVisilityChangeListenr?=null + + + private fun initView(context: Context) { + d(SceneConstant.M_TAXI_P + TAG, "initView") + LayoutInflater.from(context).inflate(R.layout.taxt_p_check_startautopilot, this, true) + + startAutopilotClose.onClick { + visibility = View.GONE + } + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if (isVisible) { + aniCheck2StartAutopilotView = + BigFrameAnimatorContainer(R.array.check2startautopilt, 39, aciv_check_autopilot, true) + aniCheck2StartAutopilotView?.mOnAnimationStoppedListener = object : BigFrameAnimatorContainer.OnAnimationStoppedListener{ + override fun AnimationStopped() { + startAutopilotView.showStartAutopilot() + } + } + } else { + aniCheck2StartAutopilotView = null + } + checkAndStartVisilityChangeListenr?.isShow(isVisible) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(ChekAndStartAutopilotViewModel::class.java) + } + viewModel?.setStartAutopilotCallback(this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + } + + + companion object { + const val TAG = "TaxiPassengerCheckView" + } + + init { + try { + initView(context) + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun dismissWindow() { + visibility = View.GONE + } + + fun resetCheckView() { + checkPhoneNumber.visibility = View.VISIBLE + startAutopilotView.visibility = View.GONE + startAutopilotClose.visibility = View.GONE + } + + fun startAnimation2StartAutopilit() { + checkPhoneNumber.visibility = View.GONE + startAutopilotView.visibility = View.VISIBLE + startAutopilotClose.visibility = View.VISIBLE + aniCheck2StartAutopilotView?.start() + } + + fun aniCheckAndStartAutopilot(show:Boolean,status:Int){ + val alphaStart: Float + val alphaEnd: Float + if(show){ + alphaStart = 0.0f + alphaEnd = 1f + visibility = View.VISIBLE + }else{ + alphaStart = 1f + alphaEnd = 0.0f + visibility = View.GONE + } + when (status) { + 0 -> { + checkPhoneNumber.visibility = View.VISIBLE + startAutopilotView.visibility = View.GONE + startAutopilotClose.visibility = View.GONE + ObjectAnimator.ofFloat(this@ChekAndStartAutopilotView, "alpha", alphaStart, alphaEnd).apply { + duration = 3000 + }.start() + } + 1 -> { + checkPhoneNumber.visibility = View.GONE + startAutopilotView.visibility = View.VISIBLE + startAutopilotClose.visibility = View.VISIBLE + aniCheck2StartAutopilotView?.start() + } + 2 -> { + checkPhoneNumber.visibility = View.VISIBLE + startAutopilotView.visibility = View.GONE + startAutopilotClose.visibility = View.GONE + return + } + else -> {} + } + + } + + interface CheckAndStartVisilityChangeListenr{ + fun isShow(show: Boolean) + } + + +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt new file mode 100644 index 0000000000..ad8625ffbd --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt @@ -0,0 +1,50 @@ +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 + +class ChekAndStartAutopilotViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback { + + private val TAG = ChekAndStartAutopilotViewModel::class.java.simpleName + + private var viewCallback: CheckCallback? = null + + init { + TaxiPassengerModel.setOrderStatusCallback(TAG,this) + } + + fun setStartAutopilotCallback(viewCallback: CheckCallback) { + this.viewCallback = viewCallback + } + + + override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrderQueryRespBean.Result?) { + super.onCurrentOrderStatusChanged(order) + when (order?.orderStatus) { + TaxiPassengerOrderStatusEnum.ArriveAtStart.code -> { + // 显示手机号验证 + } + TaxiPassengerOrderStatusEnum.UserArriveAtStart.code -> { + // 显示启动自驾 + } + else -> { + viewCallback?.dismissWindow() + } + } + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + TaxiPassengerModel.setOrderStatusCallback(TAG, null) + } + + interface CheckCallback { + fun dismissWindow() + } + +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/CheckView.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/CheckView.kt new file mode 100644 index 0000000000..9e9e8c0a57 --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/CheckView.kt @@ -0,0 +1,101 @@ +package com.mogo.och.taxi.passenger.ui.checkstartautopilot.check + +import android.content.Context +import android.graphics.Typeface +import android.text.Spannable +import android.text.SpannableStringBuilder +import android.text.style.TextAppearanceSpan +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.ContextCompat +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +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.utils.RxUtils +import com.mogo.och.taxi.passenger.R +import com.mogo.och.taxi.passenger.widget.NumberCheckView +import io.reactivex.disposables.Disposable +import kotlinx.android.synthetic.main.taxt_p_check.view.numberCheckView +import kotlinx.android.synthetic.main.taxt_p_check.view.tv_passenger_count +import kotlinx.android.synthetic.main.taxt_p_check.view.tv_passenger_end +import kotlinx.android.synthetic.main.taxt_p_check.view.tv_passenger_start + +class CheckView @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 +) : ConstraintLayout( + context, attrs, defStyleAttr +), ChekViewModel.CheckCallback, NumberCheckView.SubmitListener { + + + private var submitThrottle: Disposable? = null + + private var viewModel: ChekViewModel? = null + + companion object { + const val TAG = "CheckView" + } + + + private fun initView(context: Context) { + d(SceneConstant.M_TAXI_P + TAG, "initView") + LayoutInflater.from(context).inflate(R.layout.taxt_p_check, this, true) + numberCheckView.submitListener = this + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if (isVisible) { + viewModel?.setOrderInfo() + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(ChekViewModel::class.java) + } + viewModel?.setStartAutopilotCallback(this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + } + + init { + try { + initView(context) + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun setOrderInfo( + startSiteAddr: String?, + endSiteAddr: String?, + passengerNum: String?, + phone: String? + ) { + val sb = SpannableStringBuilder("乘客数:$passengerNum 位") // 包装字体内容 + sb.setSpan( + TextAppearanceSpan( + "default", + Typeface.NORMAL, 100, + ContextCompat.getColorStateList(context, R.color.taxi_p_378EFB), null + ), + 4, 5, Spannable.SPAN_INCLUSIVE_INCLUSIVE + ) + tv_passenger_count.text = sb + tv_passenger_start.text = "起 点 : $startSiteAddr" + tv_passenger_end.text = "终 点 : $endSiteAddr" + numberCheckView.resetNum(phone ?: "") + } + + override fun trySubmit(number: String) { + RxUtils.disposeSubscribe(submitThrottle) + submitThrottle = RxUtils.createSubscribe(1_000) { + viewModel?.checkAndUpdateStatus(number) + } + } +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt new file mode 100644 index 0000000000..2da6b6dac5 --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt @@ -0,0 +1,45 @@ +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() { + + private val TAG = ChekViewModel::class.java.simpleName + + private var viewCallback: CheckCallback? = null + + init { + } + + fun setStartAutopilotCallback(viewCallback: CheckCallback) { + this.viewCallback = viewCallback + } + fun checkAndUpdateStatus(phone: String) { + TaxiPassengerModel.checkPhoneAndUpdateStatus(phone) + } + + fun setOrderInfo() { + val currentOCHOrder = TaxiPassengerModel.currentOCHOrder + currentOCHOrder?.let { order -> + viewCallback?.setOrderInfo(order.startSiteAddr, + order.endSiteAddr, order.carNumber, order.passengerPhone) + } + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + } + + interface CheckCallback { + fun setOrderInfo(startSiteAddr: String?, + endSiteAddr: String?, + passengerNum: String?, + phone: String?) + } + +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt new file mode 100644 index 0000000000..3088bd024c --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt @@ -0,0 +1,231 @@ +package com.mogo.och.taxi.passenger.ui.checkstartautopilot.startautopilot + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.core.content.ContextCompat +import androidx.lifecycle.ViewModelProvider +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 +import com.mogo.och.common.module.manager.devicemanage.data.DoorPosition +import com.mogo.och.common.module.manager.devicemanage.data.DoorState +import com.mogo.och.common.module.utils.FrameAnimatorContainer +import com.mogo.och.taxi.passenger.R +import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.actv_front_left_door +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.actv_front_right_door +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.actv_orderinfo +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.actv_rear_left_door +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.actv_rear_right_door +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.taxi_p_autopilot_btn_bg +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.taxi_p_autopilot_starting +import kotlinx.android.synthetic.main.taxt_p_start_autopilot_view.view.taxi_p_start_autopilot + +/** + * @author: yangyakun + * 页面状态: + * ①:不能启动自驾 + * ②:可以启动自驾 + * ③:启动自驾中 + * ④:启动自驾超时 + * ⑤:启动自驾失败 + */ +class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAutopilotCallback { + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, attributeSet, defStyleAttr + ) + + companion object { + private val TAG = StartAutopilotView::class.java.simpleName + } + + private var taxiPStartAutopilot: FrameAnimatorContainer? = null + private var taxiPStartAutopilotCar: FrameAnimatorContainer? = null + + + init { + initView() + } + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.taxt_p_start_autopilot_view, this, true) + taxiPStartAutopilotCar = FrameAnimatorContainer( + R.array.taxi_p_start_autopilot_car, 20, taxi_p_autopilot_starting + ) + taxiPStartAutopilotCar?.setOnAnimStopListener(object : + FrameAnimatorContainer.OnAnimationStoppedListener { + override fun AnimationStopped() { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "光圈动画暂停") + } + }) + taxiPStartAutopilot = FrameAnimatorContainer( + R.array.taxi_p_start_autopilot, 15, taxi_p_autopilot_btn_bg, true, initFirstFrame = false + ) + taxiPStartAutopilot?.setOnAnimStopListener(object : + FrameAnimatorContainer.OnAnimationStoppedListener { + override fun AnimationStopped() { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "可以启动自驾动画暂停") + } + }) + } + + override fun setOrderInfo(show: String) { + actv_orderinfo.text = show + } + + override fun setDoorStatus(doorPosition: DoorPosition, state: DoorState) { + when (doorPosition) { + DoorPosition.FRONT_LEFT -> { + if (state == DoorState.OPEN) { + actv_front_left_door.visibility = VISIBLE + } else { + actv_front_left_door.visibility = GONE + } + } + + DoorPosition.FRONT_RIGHT -> { + if (state == DoorState.OPEN) { + actv_front_right_door.visibility = VISIBLE + } else { + actv_front_right_door.visibility = GONE + } + } + + DoorPosition.REAR_LEFT -> { + if (state == DoorState.OPEN) { + actv_rear_left_door.visibility = VISIBLE + } else { + actv_rear_left_door.visibility = GONE + } + } + + DoorPosition.REAR_RIGHT -> { + if (state == DoorState.OPEN) { + actv_rear_right_door.visibility = VISIBLE + } else { + actv_rear_right_door.visibility = GONE + } + } + + else -> { + + } + } + } + + override fun canStartAutopilot(can: Boolean) { + if (can) { + ableStartAutopilot() + } else { + unableStartAutopilot() + } + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if(isVisible){ + taxi_p_start_autopilot.background = null + taxi_p_start_autopilot.text = resources.getString(R.string.taxi_p_start_autopilot_txt) + }else{ + unableStartAutopilot() + goneAllDoorState() + resetView() + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "onDetachedFromWindow") + } + } + + private fun resetView() { + taxi_p_autopilot_starting.visibility = View.GONE + taxi_p_autopilot_btn_bg.visibility = View.GONE + taxi_p_start_autopilot.visibility = View.GONE + } + + fun showStartAutopilot(){ + taxi_p_autopilot_starting.visibility = View.VISIBLE + taxi_p_autopilot_btn_bg.visibility = View.VISIBLE + taxi_p_start_autopilot.visibility = View.VISIBLE + taxiPStartAutopilot?.reStart() + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "onAttachedToWindow") + val viewModel = ViewModelProvider(this).get(StartAutopilotViewModel::class.java) + viewModel.setStartAutopilotCallback(this) + taxi_p_start_autopilot.onClick { + //开启动画和自动驾驶 + startAutopiloting() + viewModel.startAutopilot() + } + } + + /** + * ①:不能启动自驾 + */ + private fun unableStartAutopilot() { + taxiPStartAutopilot?.stop() + taxiPStartAutopilotCar?.stop() + taxi_p_autopilot_starting.setImageResource(R.drawable.light_00003) + taxi_p_autopilot_btn_bg.setImageResource(R.drawable.image_00000_0) + taxi_p_start_autopilot.background = + ContextCompat.getDrawable(context, R.drawable.taxi_p_start_autopilot_txt_btn_bg) + taxi_p_start_autopilot.text = resources.getString(R.string.taxi_p_start_autopilot_txt) + } + + /** + * ②:可以启动自驾 + */ + private fun ableStartAutopilot() { + taxiPStartAutopilot?.reStart() + taxiPStartAutopilotCar?.stop() + taxi_p_autopilot_starting.setImageResource(R.drawable.light_00003) + taxi_p_start_autopilot.background = null + taxi_p_start_autopilot.text = resources.getString(R.string.taxi_p_start_autopilot_txt) + } + + /** + * ③:启动自驾中 + */ + fun startAutopiloting() { + taxiPStartAutopilot?.reStart() + taxiPStartAutopilotCar?.reStart() + taxi_p_start_autopilot.background = null + taxi_p_start_autopilot?.text = resources.getString(R.string.taxi_p_start_autopilot_loading) + taxi_p_start_autopilot?.setTextColor( + ContextCompat.getColor(context, android.R.color.white) + ) + } + + /** + * ④:启动自驾超时 + */ + override fun startAutopilotingTimeout() { + ableStartAutopilot() + } + + /** + * ⑤:启动自驾失败 + */ + override fun startAutopilotingFail() { + ableStartAutopilot() + } + + private fun goneAllDoorState() { + actv_front_left_door.visibility = GONE + actv_front_right_door.visibility = GONE + actv_rear_left_door.visibility = GONE + actv_rear_right_door.visibility = GONE + } + + override fun unableStartAutopilotByDoorState() { + unableStartAutopilot() + } + +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotViewModel.kt new file mode 100644 index 0000000000..47163b6997 --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotViewModel.kt @@ -0,0 +1,128 @@ +package com.mogo.och.taxi.passenger.ui.checkstartautopilot.startautopilot + +import androidx.lifecycle.ViewModel +import com.mogo.commons.voice.AIAssist +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +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.ParseVersionUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.manager.devicemanage.TaxiDoorStateManager +import com.mogo.och.common.module.manager.devicemanage.callback.DoorStateCallback +import com.mogo.och.common.module.manager.devicemanage.data.DoorPosition +import com.mogo.och.common.module.manager.devicemanage.data.DoorState +import com.mogo.och.common.module.utils.RxUtils +import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.och.taxi.passenger.R +import com.mogo.och.taxi.passenger.model.AutopilotManager +import com.mogo.och.taxi.passenger.model.TaxiPassengerModel +import io.reactivex.disposables.Disposable + +class StartAutopilotViewModel : ViewModel(), + DoorStateCallback { + + private val TAG = StartAutopilotViewModel::class.java.simpleName + + private var viewCallback: StartAutopilotCallback? = null + + private val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L + + var startCountDown: Disposable?=null + + var doorOpenState = true + + fun setStartAutopilotCallback(viewCallback: StartAutopilotCallback) { + TaxiDoorStateManager.addListener(TAG,this) + this.viewCallback = viewCallback + setOrderInfo() + } + + private fun setOrderInfo() { + val currentOCHOrder = TaxiPassengerModel.currentOCHOrder + currentOCHOrder?.let { + val phone = it.passengerPhone + val show = if (phone.length > 8) { + //截取电话号码前三位 + val phoneNumPre = phone.substring(0, 3) + //截取电话号码后四位 + val phoneNumFix = phone.substring(7) + + "用户:$phoneNumPre****$phoneNumFix 目的地:${it.endSiteAddr}" + } else { + "用户:${phone} 目的地:${it.endSiteAddr}" + } + viewCallback?.setOrderInfo(show) + } + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + RxUtils.disposeSubscribe(startCountDown) + TaxiDoorStateManager.removeListener(TAG) + } + + /** + * 开启自动驾驶 + */ + fun startAutopilot() { + val num = ParseVersionUtils.parseVersion(true, CallerAutoPilotStatusListenerManager.getDockerVersion()) + if (num >= 30600) { + if(doorOpenState){ + VoiceNotice.showNotice("关紧车门后再出发吧!") + ToastUtils.showShort("关紧车门后再出发吧!") + viewCallback?.unableStartAutopilotByDoorState() + return + } + } + if (RxUtils.isNotDisposed(startCountDown)) { + ToastUtils.showLong("启动中……") + return + } + if (AutopilotManager.startAutopilot().isEmpty()) { + startCountDown = RxUtils.createSubscribe(TIMER_START_AUTOPILOT_INTERVAL) { + viewCallback?.startAutopilotingTimeout() + //未启动成功20s后做处理 + ToastUtils.showLong(R.string.taxi_p_start_autopilot_fail_10s_tip) + VoiceNotice.showNotice("啊哦!系统繁忙中,稍后再试试吧~", AIAssist.LEVEL2) + } + }else{ + VoiceNotice.showNotice("啊哦!系统繁忙中,稍后再试试吧~", AIAssist.LEVEL2) + viewCallback?.startAutopilotingFail() + } + + } + + override fun hasOpenDoor(have: Boolean) { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "车门是否开着:${have}") + doorOpenState = have + UiThreadHandler.post { + viewCallback?.canStartAutopilot(!doorOpenState) + } + } + + override fun doorStateChangeCallback(position: DoorPosition, state: DoorState) { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "门太变化:${position}--${state}") + runMain(position,state) + } + + private fun runMain(posttion: DoorPosition, state: DoorState){ + UiThreadHandler.post({ + viewCallback?.setDoorStatus(posttion,state) + },UiThreadHandler.MODE.QUEUE) + } + + + interface StartAutopilotCallback { + fun setOrderInfo(show: String) + fun setDoorStatus(doorPosition: DoorPosition,state: DoorState) + + fun canStartAutopilot(can:Boolean) + fun startAutopilotingTimeout() + fun startAutopilotingFail() + + fun unableStartAutopilotByDoorState() + } +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt index 4dbc72c503..832d0eb5b1 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt @@ -64,10 +64,10 @@ class DebugView @JvmOverloads constructor( fragment?.showOrHideArrivedEndLayout(true) } tv_show_phone_check.onClick { - fragment?.showOrHidePressengerCheckPager(isShow = true,"13号路口终(鹰眼专用)","13号路口终(鹰眼专用)","2","2","18811539480") + fragment?.showOrHideCheckAndStartAutopilotView(0) } tv_show_start_autopilot.onClick { - fragment?.showOrHideStartAutopilotView(true) + fragment?.showOrHideCheckAndStartAutopilotView(1) } tv_show_order_info.onClick { fragment?.showOrHideServingOrderFragment(true) diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/widget/NumberCheckView.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/widget/NumberCheckView.kt new file mode 100644 index 0000000000..e6298db38a --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/widget/NumberCheckView.kt @@ -0,0 +1,214 @@ +package com.mogo.och.taxi.passenger.widget + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import android.widget.FrameLayout +import android.widget.TextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.ContextCompat +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.ToastUtils +import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.och.taxi.passenger.R +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_back +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_eight +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_first +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_five +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_four +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_fourth +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_nine +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_one +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_second +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_seven +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_six +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_submit +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_third +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_three +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_two +import kotlinx.android.synthetic.main.taxt_p_check_number.view.tv_taxi_passenger_number_zero + +class NumberCheckView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : FrameLayout(context, attrs, defStyleAttr), View.OnClickListener { + + private var index = 0 + private var phone = "" + private val numSelect = arrayOfNulls(4) + private val numSelectTextView = arrayOfNulls(4) + + var submitListener: SubmitListener? = null + + companion object { + const val TAG = "NumberCheckView" + } + + init { + try { + initView(context) + } catch (e: Exception) { + e.printStackTrace() + } + } + + fun resetNum(phone:String){ + this.phone = phone + for(i in numSelect.indices){ + numSelect[i] = null + } + numSelectTextView.forEach { + it?.text = "" + } + } + + private fun initView(context: Context) { + d(SceneConstant.M_TAXI_P + TAG, "initView") + LayoutInflater.from(context).inflate(R.layout.taxt_p_check_number, this, true) + keyBoardLogic() + numSelectTextView[0] = tv_taxi_passenger_number_first + numSelectTextView[1] = tv_taxi_passenger_number_second + numSelectTextView[2] = tv_taxi_passenger_number_third + numSelectTextView[3] = tv_taxi_passenger_number_fourth + } + + private fun keyBoardLogic() { + tv_taxi_passenger_number_one.setOnClickListener(this) + tv_taxi_passenger_number_two.setOnClickListener(this) + tv_taxi_passenger_number_three.setOnClickListener(this) + tv_taxi_passenger_number_four.setOnClickListener(this) + tv_taxi_passenger_number_five.setOnClickListener(this) + tv_taxi_passenger_number_six.setOnClickListener(this) + tv_taxi_passenger_number_seven.setOnClickListener(this) + tv_taxi_passenger_number_eight.setOnClickListener(this) + tv_taxi_passenger_number_nine.setOnClickListener(this) + tv_taxi_passenger_number_zero.setOnClickListener(this) + tv_taxi_passenger_number_back.setOnClickListener(this) + tv_taxi_passenger_number_submit.setOnClickListener(this) + + tv_taxi_passenger_number_first.setOnClickListener(this) + tv_taxi_passenger_number_second.setOnClickListener(this) + tv_taxi_passenger_number_third.setOnClickListener(this) + tv_taxi_passenger_number_fourth.setOnClickListener(this) + + } + + override fun onClick(v: View?) { + when (v?.id) { + R.id.tv_taxi_passenger_number_one -> {showNumver(1)} + R.id.tv_taxi_passenger_number_two -> {showNumver(2)} + R.id.tv_taxi_passenger_number_three-> {showNumver(3)} + R.id.tv_taxi_passenger_number_four-> {showNumver(4)} + R.id.tv_taxi_passenger_number_five -> {showNumver(5)} + R.id.tv_taxi_passenger_number_six -> {showNumver(6)} + R.id.tv_taxi_passenger_number_seven -> {showNumver(7)} + R.id.tv_taxi_passenger_number_eight -> {showNumver(8)} + R.id.tv_taxi_passenger_number_nine -> {showNumver(9)} + R.id.tv_taxi_passenger_number_zero -> {showNumver(0)} + R.id.tv_taxi_passenger_number_back -> {deleteNumver()} + R.id.tv_taxi_passenger_number_first -> {selectIndex(0)} + R.id.tv_taxi_passenger_number_second -> {selectIndex(1)} + R.id.tv_taxi_passenger_number_third -> {selectIndex(2)} + R.id.tv_taxi_passenger_number_fourth -> {selectIndex(3)} + R.id.tv_taxi_passenger_number_submit -> {clearNumber()} + else -> {} + } + } + + private fun checkAndCommit() { + val numberStr = "${numSelect[0]}${numSelect[1]}${numSelect[2]}${numSelect[3]}" + if(!phone.endsWith(numberStr)){ + ToastUtils.showLong("请输入正确的手机尾号") + VoiceNotice.showNotice("验证失败!再检查一下吧~", AIAssist.LEVEL2) + return + } + submitListener?.trySubmit(numberStr) + } + + private fun selectIndex(i: Int) { + index = i + changeStyle() + } + + private fun showNumver(number: Int) { + if (index in 0..3) { + numSelect[index] = number + numSelectTextView[index]!!.text = number.toString() + if(index!=3){ + index++ + } + changeStyle() + numSelect.forEach { + if(it==null){ + return + } + } + + checkAndCommit() + } + } + + private fun clearNumber(){ + for(i in numSelect.indices){ + numSelect[i] = null + } + numSelectTextView.forEach { + it?.text = "" + } + index = 0 + changeStyle() + } + + private fun deleteNumver() { + if (index in 0..3) { + if(numSelect[index]==null){ + if(index!=0){ + index-- + } + changeStyle() + //return + } + numSelect[index] = null + numSelectTextView[index]!!.text = "" + } + } + + private fun changeStyle() { + numSelectTextView.forEachIndexed { indexIn, textView -> + if(indexIn==index){ + numSelectTextView[index]!!.setBackgroundResource(R.drawable.bg_taxi_p_checked_input_background) + + numSelectTextView[index]!!.setTextColor( + ContextCompat.getColor( + context, + android.R.color.white + ) + ) + numSelectTextView[index]!!.setShadowLayer( + 0f, 0f, 0f, + ContextCompat.getColor( + context, + android.R.color.white + ) + ) + }else{ + numSelectTextView[indexIn]!!.setBackgroundResource(R.drawable.taxi_p_check_input_background) + numSelectTextView[indexIn]!!.setTextColor(ContextCompat.getColor(context, R.color.taxi_p_FF282F62)) + numSelectTextView[indexIn]!!.setShadowLayer( + 20f, + 0f, + 2f, + ContextCompat.getColor(context, android.R.color.white) + ) + } + } + } + + interface SubmitListener { + fun trySubmit(number: String) + } +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_000.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_000.png new file mode 100644 index 0000000000..74a4c5e4af Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_000.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_001.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_001.png new file mode 100644 index 0000000000..b7f21f36fe Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_001.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_002.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_002.png new file mode 100644 index 0000000000..38a3136774 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_002.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_003.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_003.png new file mode 100644 index 0000000000..6b2907e603 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_003.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_004.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_004.png new file mode 100644 index 0000000000..7fcee78355 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_004.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_005.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_005.png new file mode 100644 index 0000000000..5e9288feb3 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_005.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_006.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_006.png new file mode 100644 index 0000000000..36c1ec59c0 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_006.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_007.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_007.png new file mode 100644 index 0000000000..62ad267832 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_007.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_008.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_008.png new file mode 100644 index 0000000000..18792970b7 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_008.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_009.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_009.png new file mode 100644 index 0000000000..0030431924 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_009.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_010.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_010.png new file mode 100644 index 0000000000..fc2e148799 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_010.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_011.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_011.png new file mode 100644 index 0000000000..7e6ab36853 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_011.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_012.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_012.png new file mode 100644 index 0000000000..243fd76de6 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_012.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_013.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_013.png new file mode 100644 index 0000000000..54a9ead48f Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_013.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_014.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_014.png new file mode 100644 index 0000000000..1621f6c3c0 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_014.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_015.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_015.png new file mode 100644 index 0000000000..5e05685b23 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_015.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_016.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_016.png new file mode 100644 index 0000000000..d92df4dae1 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_016.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_017.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_017.png new file mode 100644 index 0000000000..fc00c1663a Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_017.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_018.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_018.png new file mode 100644 index 0000000000..6cdbc829a7 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_018.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_019.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_019.png new file mode 100644 index 0000000000..f6000a6ecb Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_019.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_020.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_020.png new file mode 100644 index 0000000000..919d7c7eb0 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_020.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_021.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_021.png new file mode 100644 index 0000000000..8dd2931f67 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_021.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_022.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_022.png new file mode 100644 index 0000000000..7a20d4323a Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_022.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_023.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_023.png new file mode 100644 index 0000000000..50619ff795 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_023.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_024.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_024.png new file mode 100644 index 0000000000..155e2be21c Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_024.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_025.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_025.png new file mode 100644 index 0000000000..c593e58003 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_025.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_026.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_026.png new file mode 100644 index 0000000000..df82030191 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_026.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_027.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_027.png new file mode 100644 index 0000000000..3a0cde8527 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_027.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_028.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_028.png new file mode 100644 index 0000000000..365984024c Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_028.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_029.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_029.png new file mode 100644 index 0000000000..a75ccba67d Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_029.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_030.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_030.png new file mode 100644 index 0000000000..837184707c Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_030.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_031.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_031.png new file mode 100644 index 0000000000..f8839167d3 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_031.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_032.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_032.png new file mode 100644 index 0000000000..a9bb3dea99 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_032.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_033.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_033.png new file mode 100644 index 0000000000..57f2ca8c8a Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_033.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_034.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_034.png new file mode 100644 index 0000000000..a79e282695 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_034.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_035.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_035.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_035.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_036.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_036.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_036.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_037.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_037.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_037.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_038.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_038.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_038.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_039.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_039.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_039.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_040.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_040.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_040.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_041.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_041.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_041.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_042.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_042.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_042.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_043.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_043.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_043.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_044.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_044.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_044.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_045.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_045.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_045.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_046.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_046.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_046.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_047.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_047.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_047.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_048.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_048.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_048.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_049.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_049.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_049.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_050.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_050.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_050.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_051.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_051.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_051.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_052.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_052.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_052.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_053.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_053.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_053.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_054.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_054.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_054.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_055.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_055.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_055.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_056.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_056.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_056.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_057.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_057.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_057.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_058.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_058.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_058.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_059.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_059.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_059.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_060.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_060.png new file mode 100644 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/check2startautopilt_060.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable-nodpi/taxt_p_check_input_bg.png b/OCH/taxi/passenger/src/main/res/drawable-nodpi/taxt_p_check_input_bg.png new file mode 100644 index 0000000000..705ec70021 Binary files /dev/null and b/OCH/taxi/passenger/src/main/res/drawable-nodpi/taxt_p_check_input_bg.png differ diff --git a/OCH/taxi/passenger/src/main/res/drawable/taxi_p_start_autopilot_bottom_bg.xml b/OCH/taxi/passenger/src/main/res/drawable/taxi_p_start_autopilot_bottom_bg.xml index 54909012c8..3243142fc8 100644 --- a/OCH/taxi/passenger/src/main/res/drawable/taxi_p_start_autopilot_bottom_bg.xml +++ b/OCH/taxi/passenger/src/main/res/drawable/taxi_p_start_autopilot_bottom_bg.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml index 446b7219fd..e500a0bff7 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -157,6 +157,13 @@ android:layout_width="match_parent" android:layout_height="match_parent"/> + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/layout/taxt_p_check_number.xml b/OCH/taxi/passenger/src/main/res/layout/taxt_p_check_number.xml new file mode 100644 index 0000000000..a7eb2ba2ae --- /dev/null +++ b/OCH/taxi/passenger/src/main/res/layout/taxt_p_check_number.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/layout/taxt_p_check_startautopilot.xml b/OCH/taxi/passenger/src/main/res/layout/taxt_p_check_startautopilot.xml new file mode 100644 index 0000000000..8cd3e72b45 --- /dev/null +++ b/OCH/taxi/passenger/src/main/res/layout/taxt_p_check_startautopilot.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/layout/taxt_p_start_autopilot_view.xml b/OCH/taxi/passenger/src/main/res/layout/taxt_p_start_autopilot_view.xml new file mode 100644 index 0000000000..2eeaa0f047 --- /dev/null +++ b/OCH/taxi/passenger/src/main/res/layout/taxt_p_start_autopilot_view.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/values/arrays.xml b/OCH/taxi/passenger/src/main/res/values/arrays.xml index 3562058139..5618673a5e 100644 --- a/OCH/taxi/passenger/src/main/res/values/arrays.xml +++ b/OCH/taxi/passenger/src/main/res/values/arrays.xml @@ -265,4 +265,74 @@ @drawable/arrive_dest_030 + + @drawable/check2startautopilt_000 + @drawable/check2startautopilt_001 + @drawable/check2startautopilt_002 + @drawable/check2startautopilt_003 + @drawable/check2startautopilt_004 + @drawable/check2startautopilt_005 + @drawable/check2startautopilt_006 + @drawable/check2startautopilt_007 + @drawable/check2startautopilt_008 + @drawable/check2startautopilt_009 + + @drawable/check2startautopilt_010 + @drawable/check2startautopilt_011 + @drawable/check2startautopilt_012 + @drawable/check2startautopilt_013 + @drawable/check2startautopilt_014 + @drawable/check2startautopilt_015 + @drawable/check2startautopilt_016 + @drawable/check2startautopilt_017 + @drawable/check2startautopilt_018 + @drawable/check2startautopilt_019 + + @drawable/check2startautopilt_020 + @drawable/check2startautopilt_021 + @drawable/check2startautopilt_022 + @drawable/check2startautopilt_023 + @drawable/check2startautopilt_024 + @drawable/check2startautopilt_025 + @drawable/check2startautopilt_026 + @drawable/check2startautopilt_027 + @drawable/check2startautopilt_028 + @drawable/check2startautopilt_029 + + + @drawable/check2startautopilt_030 + @drawable/check2startautopilt_031 + @drawable/check2startautopilt_032 + @drawable/check2startautopilt_033 + @drawable/check2startautopilt_034 + @drawable/check2startautopilt_035 + @drawable/check2startautopilt_036 + @drawable/check2startautopilt_037 + @drawable/check2startautopilt_038 + @drawable/check2startautopilt_039 + + @drawable/check2startautopilt_040 + @drawable/check2startautopilt_041 + @drawable/check2startautopilt_042 + @drawable/check2startautopilt_043 + @drawable/check2startautopilt_044 + @drawable/check2startautopilt_045 + @drawable/check2startautopilt_046 + @drawable/check2startautopilt_047 + @drawable/check2startautopilt_048 + + @drawable/check2startautopilt_050 + @drawable/check2startautopilt_051 + @drawable/check2startautopilt_052 + @drawable/check2startautopilt_053 + @drawable/check2startautopilt_054 + @drawable/check2startautopilt_055 + @drawable/check2startautopilt_056 + @drawable/check2startautopilt_057 + @drawable/check2startautopilt_058 + + @drawable/check2startautopilt_060 + + + \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/values/colors.xml b/OCH/taxi/passenger/src/main/res/values/colors.xml index 0387cdbdeb..aa7d70085f 100644 --- a/OCH/taxi/passenger/src/main/res/values/colors.xml +++ b/OCH/taxi/passenger/src/main/res/values/colors.xml @@ -43,6 +43,13 @@ #B37E90BF + #464646 + #191E3C + + #378EFB + #876E788B + + #333333 \ No newline at end of file