diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/BigFrameAnimatorContainer.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/BigFrameAnimatorContainer.kt new file mode 100644 index 0000000000..22c8cf6ca2 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/BigFrameAnimatorContainer.kt @@ -0,0 +1,239 @@ +package com.mogo.och.common.module.utils + +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.drawable.BitmapDrawable +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.widget.ImageView +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import java.lang.ref.SoftReference +import java.util.concurrent.ArrayBlockingQueue +import java.util.concurrent.Future + +class BigFrameAnimatorContainer (resId: Int, + fps: Int, + imageView: ImageView, + isOnce: Boolean = false,// 一次性的 true 值播放一次 false 重复播放 + initFirstFrame:Boolean = true, + width:Int = -1, + height:Int = -1){ + private val TAG = "BigFrameAnimatorContainer" + private lateinit var mFrames: IntArray // 帧数组 + private var mIndex = 0 // 当前帧 + private var mShouldRun = false // 开始/停止播放用 + private var mIsRunning = false // 动画是否正在播放,防止重复播放 + private var mSoftReferenceImageView: SoftReference? = null // 软引用ImageView,以便及时释放掉 + private var mHandler: Handler? = null + private var mDelayMillis = 0 + private var mOnAnimationStoppedListener: OnAnimationStoppedListener? = null//播放停止监听 + var isOnce:Boolean = false + + private val readQueue = ArrayBlockingQueue>(8,true) + private val writeQueue = ArrayBlockingQueue>(8,true) + + private var currentPoll:Pair?=null + + private var decodeImage: Future<*>?=null + + + init { + createAnimation(imageView, getData(resId), fps,initFirstFrame,width,height) + this.isOnce = isOnce + } + + private fun createAnimation( + imageView: ImageView, + frames: IntArray, + fps: Int, + initFirstFrame: Boolean, + width: Int, + height: Int + ) { + mHandler = object: Handler(Looper.myLooper()!!){ + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + CallerLogger.d(TAG,"消息类型:${msg.what}") + if(msg.what==0){ + val imageView = mSoftReferenceImageView!!.get() + if (!mShouldRun || imageView == null) { + mIsRunning = false + if (mOnAnimationStoppedListener != null) { + mOnAnimationStoppedListener!!.AnimationStopped() + } + return + } + mIsRunning = true + //新开线程去读下一帧 + if (imageView.isShown) { + if (!mShouldRun) { + mIsRunning = false + CallerLogger.d(TAG,"暂停播放") + if (mOnAnimationStoppedListener != null) { + mOnAnimationStoppedListener!!.AnimationStopped() + } + return + } + mHandler?.sendEmptyMessageDelayed(0,mDelayMillis.toLong()) + if(currentPoll!=null){ + writeQueue.offer(currentPoll) + currentPoll = null + } + currentPoll = readQueue.poll() + if(currentPoll!=null){ + val bitmap = currentPoll!!.first + imageView.setImageBitmap(bitmap) + }else{ + CallerLogger.d(TAG,"加载过慢了") + } + } + } + } + } + mFrames = frames + mIndex = -1 + mSoftReferenceImageView = SoftReference(imageView) + mShouldRun = false + mIsRunning = false + mDelayMillis = 1000 / fps //帧动画时间间隔,毫秒 + CallerLogger.d(TAG,"两帧时间:${mDelayMillis}") + if(initFirstFrame) { + imageView.setImageResource(mFrames[0]) + } + var widthImage = -1 + var heightImage = -1 + var config = Bitmap.Config.ARGB_8888 + if(width>0&&height>0){ + widthImage = width + heightImage = height + }else{ + try { + val bmp = (imageView.drawable as BitmapDrawable).bitmap + widthImage = bmp.width + heightImage = bmp.height + config = bmp.config + }catch (e:Exception){ + throw RuntimeException("请设置图片或传递大小") + } + } + // 当图片大小类型相同时进行复用,避免频繁GC + + for (i in 0..7) { + val mBitmap = Bitmap.createBitmap(widthImage, heightImage, config) + val mBitmapOptions = BitmapFactory.Options() + //设置Bitmap内存复用 + mBitmapOptions.inBitmap = mBitmap //Bitmap复用内存块,类似对象池,避免不必要的内存分配和回收 + mBitmapOptions.inMutable = true //解码时返回可变Bitmap + mBitmapOptions.inSampleSize = 1 //缩放比例 + writeQueue.add(Pair(mBitmap,mBitmapOptions)) + } + + decodeImage = ThreadUtils.getIoPool().submit { + while (true) { + val startTime = System.currentTimeMillis() + val (bitmap1, options) = writeQueue.take() + val index: Int = next + val imageRes: Int = mFrames[index] + var bitmap: Bitmap? = null + try { + bitmap = BitmapFactory.decodeResource( + imageView.resources, + imageRes, + options + ) + options.inBitmap = bitmap + } catch (e: Exception) { + e.printStackTrace() + } + if (bitmap != null) { + readQueue.put(Pair(bitmap, options)) + } + val dexTime = System.currentTimeMillis() - startTime + CallerLogger.d(TAG, "decode用时:${dexTime}ms index ${index}") + } + } + } + + //循环读取下一帧 + private val next: Int + get() { + mIndex++ + if (mIndex >= mFrames.size){ + mIndex = 0 + } + return mIndex + } + + @Synchronized + fun reStart(){ + mIndex = 0 + mIsRunning = false + start() + } + + fun release(){ + mShouldRun = false + decodeImage?.cancel(true) + } + + /** + * 播放动画,同步锁防止多线程读帧时,数据安全问题 + */ + @Synchronized + fun start() { + mShouldRun = true + if (mIsRunning) return + mHandler?.removeCallbacksAndMessages(null) + mHandler?.sendEmptyMessage(0) + } + + /** + * 停止播放 + */ + @Synchronized + fun stop() { + mShouldRun = false + } + + fun isPlaying():Boolean{ + return mShouldRun + } + + /** + * 设置停止播放监听 + * @param listener 设置监听 + */ + fun setOnAnimStopListener(listener: OnAnimationStoppedListener?) { + mOnAnimationStoppedListener = listener + } + + /** + * 从xml中读取帧数组 + * @param resId + * @return + */ + fun getData(resId: Int): IntArray { + val array = AbsMogoApplication.getApp().resources.obtainTypedArray(resId) + val len = array.length() + val intArray = IntArray(array.length()) + for (i in 0 until len) { + intArray[i] = array.getResourceId(i, 0) + } + array.recycle() + return intArray + } + + fun setData(mFrames: IntArray){ + this.mFrames = mFrames + } + + /** + * 停止播放监听 + */ + interface OnAnimationStoppedListener { + fun AnimationStopped() + } +} \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt index c2e5e832e6..5ea50da4ad 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -63,8 +63,8 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : when (TaxiPassengerModel.curOrderStatus) { TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { // 10 接驾中 - mView?.showOrHideStartAutopilotView(isShow = false) - mView?.showOrHidePressengerCheckPager(isShow = false) + mView?.showOrHideCheckAndStartAutopilotView(2) + mView?.showOrHideArrivedEndLayout(isShow = false) overMapViewClear() } @@ -72,55 +72,56 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : TaxiPassengerOrderStatusEnum.ArriveAtStart -> { // 20 司机到达上车点 mView?.showOrHideArrivedEndLayout(isShow = false) - mView?.showOrHidePressengerCheckPager(true) - 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() } TaxiPassengerOrderStatusEnum.None -> { // 00 默认状态,在不同任务之间切换时使用 - mView?.showOrHideStartAutopilotView(isShow = false) - mView?.showOrHidePressengerCheckPager(isShow = false) + mView?.showOrHideCheckAndStartAutopilotView(2) + mView?.showOrHideArrivedEndLayout(isShow = false) overMapViewClear() } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/provider/StatusViewManager.java b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/provider/StatusViewManager.java index 97c9108e3a..8104aaee3d 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/provider/StatusViewManager.java +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/provider/StatusViewManager.java @@ -19,15 +19,15 @@ import com.mogo.och.taxi.passenger.ui.statusview.StatusBarView; @Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER ) public class StatusViewManager implements IStatusViewLayout { - + private StatusBarView statusBarView; @NonNull @Override public View getStatusView(Context context) { - return new StatusBarView(context); + return statusBarView; } @Override public void init(Context context) { - + statusBarView = new StatusBarView(context); } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index 25e0feb2a2..a1f770f638 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -2,15 +2,17 @@ package com.mogo.och.taxi.passenger.ui import android.os.Bundle import android.view.View +import com.alibaba.android.arouter.launcher.ARouter import com.mogo.commons.mvp.MvpFragment import com.mogo.commons.voice.AIAssist +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager 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.OverlayViewUtils import com.mogo.map.listener.IMogoMapListener import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.och.common.module.utils.FrameAnimatorContainer @@ -19,10 +21,11 @@ import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.R import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter 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.startautopilot.StartAutopilotView +import com.mogo.och.taxi.passenger.ui.statusview.StatusBarView +import io.reactivex.disposables.Disposable import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.arrivedView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.bottom +import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.chekAndStartAutopilotView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.ck_setting import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.clSettingView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.infoVideoView @@ -33,7 +36,6 @@ import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.pcnActionView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.romaDistanceView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.romaPView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.rv_location_center -import java.lang.ref.WeakReference /** * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况 @@ -47,18 +49,13 @@ class TaxiPassengerBaseFragment() : MvpFragment(), IMogoMapListener, TaxiPassengerTaxiView { - /** - * 手机号后四位验证 - */ - private var mArrivedCheckView: WeakReference? = null - - /** - * 启动自驾页面 - */ - private var mStartAutopilotView: WeakReference? = null - private var createProgressDialogAnim: FrameAnimatorContainer?=null + private var tipXiaoZhiDelay: Disposable?=null + + private var statusBarView: StatusBarView? = null + + override fun getLayoutId(): Int { return R.layout.taxt_u_p_base_fragment } @@ -77,6 +74,14 @@ class TaxiPassengerBaseFragment() : overMapView.onCreateView(savedInstanceState) overMapView.hideResetView() + (ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_VIEW_MANAGER) + .navigation() as? IStatusViewLayout)?.apply { + val statusView = getStatusView(requireContext()) + if (statusView is StatusBarView) { + statusBarView = statusView + } + } + // createProgressDialogAnim = FrameAnimatorContainer(R.array.xiaozhi_normal, 20,aciv_xiaozhi_normal) // createProgressDialogAnim?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener{ // override fun AnimationStopped() { @@ -242,34 +247,39 @@ class TaxiPassengerBaseFragment() : overMapView.setDebugMode(true) } - /** - * 显示或者隐藏乘客可点击自动驾驶页面 - * 乘客验证成功,页面显示,按钮置于不可点击 - * 司机端确认可点击开启自动驾驶, 按钮置为可点击 - * 订单前往目的地,页面消失 - * - * @param isShow - */ - fun showOrHideStartAutopilotView(isShow: Boolean) { - if (isShow) { - exitFullVideoScreen(false) - if (mStartAutopilotView == null || mStartAutopilotView!!.get() == null) { - mStartAutopilotView = WeakReference(StartAutopilotView(requireContext())) + fun showOrHideCheckAndStartAutopilotView(status:Int){ + when (status) { + 0 -> { + chekAndStartAutopilotView.visibility = View.VISIBLE + statusBarView?.visibility = View.GONE + chekAndStartAutopilotView.resetCheckView() } - mStartAutopilotView?.get()?.let { - OverlayViewUtils.showOverlayView(activity, it) + 1 -> { + chekAndStartAutopilotView.visibility = View.VISIBLE + statusBarView?.visibility = View.GONE + chekAndStartAutopilotView.startAnimation2StartAutopilit() } - } else { - mStartAutopilotView?.get()?.let { - OverlayViewUtils.dismissOverlayView(it) - RxUtils.createSubscribe(30_000) { - VoiceNotice.showNotice("想和我对话的时候可以直接戳我,也可以对我说\\'你好小智\\'!", AIAssist.LEVEL2) - } + 2 -> { + chekAndStartAutopilotView.visibility = View.GONE + statusBarView?.visibility = View.VISIBLE + chekAndStartAutopilotView.resetCheckView() } - mStartAutopilotView = null + else -> {} } } + fun tipXiaoZhi(){ + RxUtils.disposeSubscribe(tipXiaoZhiDelay) + tipXiaoZhiDelay = RxUtils.createSubscribe(30_000) { + VoiceNotice.showNotice( + "想和我对话的时候可以直接戳我,也可以对我说\\'你好小智\\'!", + AIAssist.LEVEL2 + ) + } + } + + + /** * 显示或者隐藏到达乘客站点的洁面 * ① 取消订单 可有可无 @@ -302,33 +312,6 @@ class TaxiPassengerBaseFragment() : overMapView?.clearCustomPolyline() } - /** - * ① 取消订单 到达上车点后乘客取消订单 隐藏乘客验证页面 - * ② 司机到达上车点 到达上车点 展示乘客验证页面 - * ③ 乘客到达上车点 手机号验证成功后 隐藏乘客验证页面 - * ④ debug 使用 - */ - fun showOrHidePressengerCheckPager( - isShow: Boolean, - ) { - try { - if (isShow) { - exitFullVideoScreen(false) - if (mArrivedCheckView == null || mArrivedCheckView!!.get() == null) { - mArrivedCheckView = WeakReference(TaxiPassengerCheckView(context)) - } - 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/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt index f05a2df57e..0867f74bd6 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/arrived/ArrivedView.kt @@ -5,20 +5,18 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import androidx.lifecycle.ViewModelProvider -import com.mogo.commons.AbsMogoApplication 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.FrameAnimatorContainer import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.taxi.passenger.R import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout -import com.shuyu.gsyvideoplayer.GSYVideoManager import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack import io.reactivex.disposables.Disposable +import kotlinx.android.synthetic.main.taxt_u_p_arrived_end_panel.view.aciv_bg import kotlinx.android.synthetic.main.taxt_u_p_arrived_end_panel.view.aciv_close import kotlinx.android.synthetic.main.taxt_u_p_arrived_end_panel.view.actv_endstation -import kotlinx.android.synthetic.main.taxt_u_p_arrived_end_panel.view.svp_frame import kotlinx.android.synthetic.main.taxt_u_p_arrived_end_panel.view.v_video_right_rear_view /** @@ -40,24 +38,23 @@ class ArrivedView : WindowRelativeLayout, ArrivedViewModel.ArrivedViewCallback { private val gsyVideoOptionBuilder = GSYVideoOptionBuilder() + private var taxiPxiaozhiLove: FrameAnimatorContainer?=null + + private fun initView() { d(SceneConstant.M_TAXI_P + TAG, "initView") LayoutInflater.from(context).inflate(R.layout.taxt_u_p_arrived_end_panel, this, true) - svp_frame.setBackgroundResource(R.drawable.tail_ani_0000) - svp_frame.setIsTouchWiget(false) - svp_frame.setIsTouchWigetFull(false) - svp_frame.enableshowProgressDialog = false - svp_frame.enableDoubleClick = false - GSYVideoManager.instance().enableRawPlay(AbsMogoApplication.getApp()) - val url = "android.resource://" + context.packageName + "/" + R.raw.end_video - gsyVideoOptionBuilder.setUrl(url) - .setCacheWithPlay(false) - .setPlayTag("TaxiPassengerArrivedView") - .build(svp_frame) aciv_close.onClick { visibility = View.GONE } + + taxiPxiaozhiLove = FrameAnimatorContainer(R.array.arrived_dest, 18,aciv_bg) + taxiPxiaozhiLove?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener{ + override fun AnimationStopped() { + d(SceneConstant.M_TAXI_P + TAG, "动画暂停") + } + }) } override fun onVisibilityAggregated(isVisible: Boolean) { @@ -65,12 +62,10 @@ class ArrivedView : WindowRelativeLayout, ArrivedViewModel.ArrivedViewCallback { d(SceneConstant.M_TAXI_P + TAG, "展示---:${isVisible}") if(isVisible){ v_video_right_rear_view.resetView() + taxiPxiaozhiLove?.reStart() }else{ - svp_frame.setBackgroundResource(R.drawable.tail_ani_0000) - svp_frame.setVideoAllCallBack(null) - svp_frame.onVideoReset() - svp_frame.release() v_video_right_rear_view.resetView() + taxiPxiaozhiLove?.stop() RxUtils.disposeSubscribe(subscribe) } } @@ -89,12 +84,6 @@ class ArrivedView : WindowRelativeLayout, ArrivedViewModel.ArrivedViewCallback { * 设置目的地重置星星状态 */ fun setDataAndStartAnimation() { - svp_frame.setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onAutoComplete(url: String?, vararg objects: Any?) { - svp_frame.setBackgroundResource(R.drawable.tail_ani_0090) - } - }) - svp_frame.startPlayLogic() subscribe = RxUtils.createSubscribe(60_000) { visibility = View.GONE } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt new file mode 100644 index 0000000000..7c57146120 --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotView.kt @@ -0,0 +1,110 @@ +package com.mogo.och.taxi.passenger.ui.checkstartautopilot + +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_u_p_check_startautopilot.view.aciv_check_autopilot +import kotlinx.android.synthetic.main.taxt_u_p_check_startautopilot.view.checkPhoneNumber +import kotlinx.android.synthetic.main.taxt_u_p_check_startautopilot.view.startAutopilotClose +import kotlinx.android.synthetic.main.taxt_u_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 + + private fun initView(context: Context) { + d(SceneConstant.M_TAXI_P + TAG, "initView") + LayoutInflater.from(context).inflate(R.layout.taxt_u_p_check_startautopilot, this, true) + aniCheck2StartAutopilotView = + BigFrameAnimatorContainer(R.array.check2startautopilt, 32, aciv_check_autopilot, false) + + startAutopilotClose.onClick { + visibility = View.GONE + } + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if (isVisible) { + //aniCheck2StartAutopilotView?.start() + } else { + //aniCheck2StartAutopilotView?.stop() + } + } + + 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 + } + +} \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt new file mode 100644 index 0000000000..e1a04314dd --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt @@ -0,0 +1,48 @@ +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 + +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: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) { + 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/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/CheckView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/CheckView.kt new file mode 100644 index 0000000000..25d3926962 --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/CheckView.kt @@ -0,0 +1,106 @@ +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_u_p_check.view.numberCheckView +import kotlinx.android.synthetic.main.taxt_u_p_check.view.tv_passenger_count +import kotlinx.android.synthetic.main.taxt_u_p_check.view.tv_passenger_end +import kotlinx.android.synthetic.main.taxt_u_p_check.view.tv_passenger_start + +/** + * V2X预警事件view:通过FloatWindow呈现,无需加入到自定义layout中 + * + * Created on 2022/3/16 + */ +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_u_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/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/check/ChekViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt similarity index 66% rename from OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/check/ChekViewModel.kt rename to OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt index a7ca88b125..9588ecd2a2 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/check/ChekViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/check/ChekViewModel.kt @@ -1,4 +1,4 @@ -package com.mogo.och.taxi.passenger.ui.check +package com.mogo.och.taxi.passenger.ui.checkstartautopilot.check import androidx.lifecycle.ViewModel import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean @@ -6,25 +6,23 @@ 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(), IOCHTaxiPassengerOrderStatusCallback { +class ChekViewModel : ViewModel() { private val TAG = ChekViewModel::class.java.simpleName private var viewCallback: CheckCallback? = null init { - TaxiPassengerModel.setOrderStatusCallback(TAG,this) } fun setStartAutopilotCallback(viewCallback: CheckCallback) { this.viewCallback = viewCallback - setOrderInfo() } fun checkAndUpdateStatus(phone: String) { TaxiPassengerModel.checkPhoneAndUpdateStatus(phone) } - private fun setOrderInfo() { + fun setOrderInfo() { val currentOCHOrder = TaxiPassengerModel.currentOCHOrder currentOCHOrder?.let { order -> viewCallback?.setOrderInfo(order.orderStartSite?.siteName, @@ -32,17 +30,9 @@ class ChekViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback { } } - override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) { - super.onCurrentOrderStatusChanged(order) - if(order == null || order.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.code) { - this.viewCallback?.dismissWindow() - } - } - override fun onCleared() { super.onCleared() this.viewCallback = null - TaxiPassengerModel.setOrderStatusCallback(TAG, null) } interface CheckCallback { @@ -50,8 +40,6 @@ class ChekViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback { endSiteAddr: String?, passengerNum: String?, phone: String?) - - fun dismissWindow() } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/startautopilot/StartAutopilotView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt similarity index 77% rename from OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/startautopilot/StartAutopilotView.kt rename to OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt index 85d09231ea..b6b5f2cd77 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/startautopilot/StartAutopilotView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.taxi.passenger.ui.startautopilot +package com.mogo.och.taxi.passenger.ui.checkstartautopilot.startautopilot import android.content.Context import android.util.AttributeSet @@ -6,11 +6,9 @@ import android.view.LayoutInflater import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider -import com.mogo.eagle.core.data.config.HdMapBuildConfig 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.eagle.core.utilcode.util.OverlayViewUtils 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 @@ -21,12 +19,9 @@ import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.actv_fr import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.actv_orderinfo import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.actv_rear_left_door import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.actv_rear_right_door -import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.iv_xiaozhi_belt -import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.starting_autopilot_view_close import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.taxi_p_autopilot_btn_bg import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.taxi_p_autopilot_starting import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.taxi_p_start_autopilot -import kotlinx.android.synthetic.main.taxt_u_p_start_autopilot_view.view.cl_car_type /** * @author: yangyakun @@ -44,25 +39,15 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( - context, - attributeSet, - defStyleAttr + context, attributeSet, defStyleAttr ) - constructor( - context: Context, - attributeSet: AttributeSet, - defStyleAttr: Int, - defStyleRes: Int - ) : super(context, attributeSet, defStyleAttr, defStyleRes) - companion object { private val TAG = StartAutopilotView::class.java.simpleName } private var taxiPStartAutopilot: FrameAnimatorContainer? = null private var taxiPStartAutopilotCar: FrameAnimatorContainer? = null - private var taxiPXiaozhiBelt: FrameAnimatorContainer? = null init { @@ -72,9 +57,7 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu private fun initView() { LayoutInflater.from(context).inflate(R.layout.taxt_u_p_start_autopilot_view, this, true) taxiPStartAutopilotCar = FrameAnimatorContainer( - R.array.taxi_p_start_autopilot_car, - 20, - taxi_p_autopilot_starting + R.array.taxi_p_start_autopilot_car, 20, taxi_p_autopilot_starting ) taxiPStartAutopilotCar?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener { @@ -83,10 +66,7 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu } }) taxiPStartAutopilot = FrameAnimatorContainer( - R.array.taxi_p_start_autopilot, - 15, - taxi_p_autopilot_btn_bg, - false + R.array.taxi_p_start_autopilot, 15, taxi_p_autopilot_btn_bg, true ) taxiPStartAutopilot?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener { @@ -94,13 +74,6 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "可以启动自驾动画暂停") } }) - taxiPXiaozhiBelt = FrameAnimatorContainer(R.array.xiaozhi_belt, 20, iv_xiaozhi_belt) - taxiPXiaozhiBelt?.setOnAnimStopListener(object : - FrameAnimatorContainer.OnAnimationStoppedListener { - override fun AnimationStopped() { - CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "小智动画暂停") - } - }) } override fun setOrderInfo(show: String) { @@ -155,18 +128,6 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu } } - override fun onVisibilityChanged(changedView: View, visibility: Int) { - super.onVisibilityChanged(changedView, visibility) - if (changedView != this) { - return - } - if (HdMapBuildConfig.currentCarVrIconRes == R.raw.hq_h9) { - cl_car_type.setBackgroundResource(R.drawable.taxt_u_p_start_panel__hq_bg) - } else { - cl_car_type.setBackgroundResource(R.drawable.taxt_u_p_start_panel__df_bg) - } - } - override fun onAttachedToWindow() { super.onAttachedToWindow() CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "onAttachedToWindow") @@ -177,11 +138,6 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu startAutopiloting() viewModel.startAutopilot() } - starting_autopilot_view_close.onClick { - unableStartAutopilot() - OverlayViewUtils.dismissOverlayView(this) - } - taxiPXiaozhiBelt?.start() } /** @@ -235,7 +191,7 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu ableStartAutopilot() } - private fun goneAllDoorState(){ + private fun goneAllDoorState() { actv_front_left_door.visibility = GONE actv_front_right_door.visibility = GONE actv_rear_left_door.visibility = GONE @@ -245,7 +201,6 @@ class StartAutopilotView : WindowRelativeLayout, StartAutopilotViewModel.StartAu override fun onDetachedFromWindow() { CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "onDetachedFromWindow") unableStartAutopilot() - taxiPXiaozhiBelt?.stop() goneAllDoorState() super.onDetachedFromWindow() } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/startautopilot/StartAutopilotViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotViewModel.kt similarity index 98% rename from OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/startautopilot/StartAutopilotViewModel.kt rename to OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotViewModel.kt index deef98392e..05f49aa724 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/startautopilot/StartAutopilotViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/startautopilot/StartAutopilotViewModel.kt @@ -1,4 +1,4 @@ -package com.mogo.och.taxi.passenger.ui.startautopilot +package com.mogo.och.taxi.passenger.ui.checkstartautopilot.startautopilot import androidx.lifecycle.ViewModel import com.mogo.commons.voice.AIAssist diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt index 45833c0703..9b806bfa8b 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugView.kt @@ -54,10 +54,10 @@ class DebugView @JvmOverloads constructor( fragment?.showOrHideArrivedEndLayout(true) } tv_show_phone_check.onClick { - fragment?.showOrHidePressengerCheckPager(isShow = true) + 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/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/check/TaxiPassengerCheckView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/NumberCheckView.kt similarity index 56% rename from OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/check/TaxiPassengerCheckView.kt rename to OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/NumberCheckView.kt index c1383e05b0..52e10e7c17 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/check/TaxiPassengerCheckView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/NumberCheckView.kt @@ -1,88 +1,79 @@ -package com.mogo.och.taxi.passenger.ui.check +package com.mogo.och.taxi.passenger.widget 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 android.view.View +import android.widget.FrameLayout import android.widget.TextView +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import androidx.lifecycle.ViewModelProvider import com.mogo.commons.voice.AIAssist -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.eagle.core.utilcode.util.OverlayViewUtils import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.common.module.utils.FrameAnimatorContainer import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.ui.arrived.ArrivedView -import com.mogo.och.taxi.passenger.widget.WindowRelativeLayout -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.iv_zhi_normal -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_passenger_count -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_passenger_end -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_passenger_start -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_back -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_eight -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_first -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_five -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_four -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_fourth -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_nine -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_one -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_second -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_seven -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_six -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_submit -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_third -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_three -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_two -import kotlinx.android.synthetic.main.taxt_u_p_passenger_check_panel.view.tv_taxi_passenger_number_zero +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_back +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_eight +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_first +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_five +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_four +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_fourth +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_nine +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_one +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_second +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_seven +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_six +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_submit +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_third +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_three +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_two +import kotlinx.android.synthetic.main.taxt_u_p_check_number.view.tv_taxi_passenger_number_zero -/** - * V2X预警事件view:通过FloatWindow呈现,无需加入到自定义layout中 - * - * Created on 2022/3/16 - */ -class TaxiPassengerCheckView : WindowRelativeLayout, View.OnClickListener, - ChekViewModel.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) +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) - private lateinit var viewModel:ChekViewModel - private var taxiPxiaozhiCheck: FrameAnimatorContainer?=null + 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_u_p_passenger_check_panel, this, true) + LayoutInflater.from(context).inflate(R.layout.taxt_u_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 - - taxiPxiaozhiCheck = FrameAnimatorContainer(R.array.xiaozhi_normal, 12,iv_zhi_normal) - taxiPxiaozhiCheck?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener{ - override fun AnimationStopped() { - CallerLogger.d(SceneConstant.M_TAXI_P + ArrivedView.TAG, "动画暂停") - } - }) } private fun keyBoardLogic() { @@ -135,19 +126,7 @@ class TaxiPassengerCheckView : WindowRelativeLayout, View.OnClickListener, VoiceNotice.showNotice("验证失败!再检查一下吧~", AIAssist.LEVEL2) return } - viewModel.checkAndUpdateStatus(numberStr) - } - - override fun onAttachedToWindow() { - super.onAttachedToWindow() - viewModel = ViewModelProvider(this).get(ChekViewModel::class.java) - viewModel.setStartAutopilotCallback(this) - taxiPxiaozhiCheck?.start() - } - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - taxiPxiaozhiCheck?.stop() + submitListener?.trySubmit(numberStr) } private fun selectIndex(i: Int) { @@ -235,41 +214,9 @@ class TaxiPassengerCheckView : WindowRelativeLayout, View.OnClickListener, ) } } - } - 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( - TextAppearanceSpan("default", - Typeface.NORMAL,100, - ContextCompat.getColorStateList(context,R.color.taxi_p_check_passenger_number) ,null ), - 4, 5, Spannable.SPAN_INCLUSIVE_INCLUSIVE) - tv_passenger_count.text = sb - tv_passenger_start.text = "起 点 : $startSiteAddr" - tv_passenger_end.text = "终 点 : $endSiteAddr" - for(i in numSelect.indices){ - numSelect[i] = null - } - numSelectTextView.forEach { - it?.text = "" - } - } - - override fun dismissWindow() { - OverlayViewUtils.dismissOverlayView(this) + interface SubmitListener { + fun trySubmit(number: String) } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_000.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_000.png new file mode 100755 index 0000000000..74a4c5e4af Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_000.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_001.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_001.png new file mode 100755 index 0000000000..b7f21f36fe Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_001.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_002.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_002.png new file mode 100755 index 0000000000..38a3136774 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_002.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_003.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_003.png new file mode 100755 index 0000000000..6b2907e603 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_003.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_004.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_004.png new file mode 100755 index 0000000000..7fcee78355 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_004.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_005.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_005.png new file mode 100755 index 0000000000..5e9288feb3 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_005.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_006.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_006.png new file mode 100755 index 0000000000..36c1ec59c0 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_006.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_007.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_007.png new file mode 100755 index 0000000000..62ad267832 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_007.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_008.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_008.png new file mode 100755 index 0000000000..18792970b7 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_008.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_009.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_009.png new file mode 100755 index 0000000000..0030431924 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_009.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_010.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_010.png new file mode 100755 index 0000000000..fc2e148799 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_010.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_011.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_011.png new file mode 100755 index 0000000000..7e6ab36853 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_011.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_012.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_012.png new file mode 100755 index 0000000000..243fd76de6 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_012.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_013.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_013.png new file mode 100755 index 0000000000..54a9ead48f Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_013.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_014.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_014.png new file mode 100755 index 0000000000..1621f6c3c0 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_014.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_015.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_015.png new file mode 100755 index 0000000000..5e05685b23 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_015.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_016.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_016.png new file mode 100755 index 0000000000..d92df4dae1 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_016.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_017.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_017.png new file mode 100755 index 0000000000..fc00c1663a Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_017.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_018.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_018.png new file mode 100755 index 0000000000..6cdbc829a7 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_018.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_019.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_019.png new file mode 100755 index 0000000000..f6000a6ecb Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_019.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_020.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_020.png new file mode 100755 index 0000000000..919d7c7eb0 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_020.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_021.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_021.png new file mode 100755 index 0000000000..8dd2931f67 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_021.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_022.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_022.png new file mode 100755 index 0000000000..7a20d4323a Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_022.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_023.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_023.png new file mode 100755 index 0000000000..50619ff795 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_023.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_024.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_024.png new file mode 100755 index 0000000000..155e2be21c Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_024.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_025.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_025.png new file mode 100755 index 0000000000..c593e58003 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_025.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_026.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_026.png new file mode 100755 index 0000000000..df82030191 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_026.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_027.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_027.png new file mode 100755 index 0000000000..3a0cde8527 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_027.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_028.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_028.png new file mode 100755 index 0000000000..365984024c Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_028.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_029.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_029.png new file mode 100755 index 0000000000..a75ccba67d Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_029.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_030.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_030.png new file mode 100755 index 0000000000..837184707c Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_030.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_031.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_031.png new file mode 100755 index 0000000000..f8839167d3 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_031.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_032.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_032.png new file mode 100755 index 0000000000..a9bb3dea99 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_032.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_033.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_033.png new file mode 100755 index 0000000000..57f2ca8c8a Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_033.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_034.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_034.png new file mode 100755 index 0000000000..a79e282695 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_034.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_035.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_035.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_035.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_036.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_036.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_036.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_037.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_037.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_037.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_038.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_038.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_038.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_039.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_039.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_039.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_040.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_040.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_040.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_041.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_041.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_041.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_042.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_042.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_042.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_043.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_043.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_043.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_044.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_044.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_044.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_045.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_045.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_045.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_046.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_046.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_046.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_047.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_047.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_047.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_048.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_048.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_048.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_049.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_049.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_049.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_050.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_050.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_050.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_051.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_051.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_051.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_052.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_052.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_052.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_053.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_053.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_053.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_054.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_054.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_054.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_055.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_055.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_055.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_056.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_056.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_056.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_057.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_057.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_057.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_058.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_058.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_058.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_059.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_059.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_059.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_060.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_060.png new file mode 100755 index 0000000000..4283785414 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/check2startautopilt_060.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxt_u_p_check_input_bg.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxt_u_p_check_input_bg.png index 72c0f0fc40..705ec70021 100644 Binary files a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxt_u_p_check_input_bg.png and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxt_u_p_check_input_bg.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_arrived_end_panel.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_arrived_end_panel.xml index a4a287641e..4743a49e13 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_arrived_end_panel.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_arrived_end_panel.xml @@ -7,8 +7,8 @@ android:layout_height="match_parent" tools:ignore="MissingDefaultResource"> - - - + + @@ -179,4 +178,12 @@ android:layout_marginBottom="-80dp" app:layout_constraintEnd_toEndOf="parent" /> + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check.xml new file mode 100644 index 0000000000..9d718cd88e --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check_number.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check_number.xml new file mode 100644 index 0000000000..cb866a480e --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check_number.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check_startautopilot.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check_startautopilot.xml new file mode 100644 index 0000000000..77b0238ba9 --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_check_startautopilot.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_start_autopilot_view.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_start_autopilot_view.xml index 76df41eaeb..acf089a793 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_start_autopilot_view.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_start_autopilot_view.xml @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/cl_car_type" - android:background="@drawable/taxt_u_p_start_panel__df_bg" tools:ignore="MissingDefaultResource"> - - - - - - - - - - - - - - - - - - @drawable/xiaozhi_belt_048 + + + + @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_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/unmanned-passenger/src/main/res/values/colors.xml b/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml index 0a3d6c731f..94e732c3f5 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml @@ -45,9 +45,13 @@ #76D7FF #255BAA #80F8FF + #464646 + #378EFB + #191E3C #2B364B #005D6A8C #5D6A8C + #333333 #995D6A8C #B37E90BF