[m1]
[1.1.2] [结束订单跳转到还车页面]
This commit is contained in:
@@ -27,6 +27,7 @@ import com.mogo.eagle.core.utilcode.util.CoordinateUtils
|
||||
import com.mogo.eagle.core.utilcode.util.CountDownTimer
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.bus.passenger.bean.LoopInfo
|
||||
import com.mogo.och.bus.passenger.bean.response.*
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback
|
||||
@@ -87,7 +88,9 @@ object CharterPassengerModel {
|
||||
|
||||
private var orderStatus: OrderStatusEnum = OrderStatusEnum.NoOrderUnuse
|
||||
|
||||
private var orderStatusChangeListener: IOrderStatusChangeListener? = null
|
||||
private val orderStatusChangeListeners =
|
||||
ConcurrentHashMap<String, IOrderStatusChangeListener>()
|
||||
|
||||
|
||||
private var iDistanceTimeCallback: IDistanceTimeCallback? = null
|
||||
|
||||
@@ -250,8 +253,13 @@ object CharterPassengerModel {
|
||||
mRoutePoints.addAll(latLngModels)
|
||||
}
|
||||
|
||||
fun setStatusChangeListener(orderStatusChangeListener: IOrderStatusChangeListener?) {
|
||||
this.orderStatusChangeListener = orderStatusChangeListener
|
||||
fun setStatusChangeListener(tag:String,orderStatusChangeListener: IOrderStatusChangeListener?) {
|
||||
if (tag.isBlank()) return
|
||||
if (orderStatusChangeListener == null) {
|
||||
orderStatusChangeListeners.remove(tag)
|
||||
return
|
||||
}
|
||||
orderStatusChangeListeners[tag] = orderStatusChangeListener
|
||||
}
|
||||
fun setCarTypeChangeListener(carTypeChageListener: ICarTypeCallback?){
|
||||
this.carTypeChageListener = carTypeChageListener
|
||||
@@ -597,10 +605,18 @@ object CharterPassengerModel {
|
||||
private fun setOrderStatus(orderStatus: OrderStatusEnum) {
|
||||
if (this.orderStatus != orderStatus) {
|
||||
this.orderStatus = orderStatus
|
||||
orderStatusChangeListener?.onStatusChange(this.orderStatus)
|
||||
for (callback in orderStatusChangeListeners.values) {
|
||||
callback.onStatusChange(this.orderStatus)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun setEndOrderStatus(){
|
||||
UiThreadHandler.postDelayed({
|
||||
setOrderStatus(OrderStatusEnum.NoOrderUse)
|
||||
},1000)
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算需要禁用的站点
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.mogo.och.bus.passenger.presenter
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
||||
import com.mogo.och.bus.passenger.model.VoiceManager
|
||||
import com.mogo.och.bus.passenger.ui.M1CarUserNoOrderFragment
|
||||
import com.mogo.och.bus.passenger.ui.M1ContainFragment
|
||||
import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager
|
||||
import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import io.reactivex.disposables.Disposable
|
||||
|
||||
class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) :
|
||||
BusBasePassengerFunctionDevicePresenter<M1CarUserNoOrderFragment?>(view),
|
||||
OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback {
|
||||
companion object {
|
||||
private const val TAG = "BusPassengerFunctionPresenter"
|
||||
}
|
||||
|
||||
private var subscribe: Disposable? = null
|
||||
private var subscribeDoorStatus: Disposable? = null
|
||||
private var gnssSpeed = 0.0
|
||||
|
||||
override fun onCreate(owner: LifecycleOwner) {
|
||||
super.onCreate(owner)
|
||||
OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this)
|
||||
CharterPassengerModel.setControllerStatusCallback(TAG) { location ->
|
||||
location?.let {
|
||||
gnssSpeed = it.gnssInfo.vehicleSpeed
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy(owner: LifecycleOwner) {
|
||||
super.onDestroy(owner)
|
||||
OCHM1LightAirconditionDoorStatusManager.removeListener(TAG)
|
||||
disposeSubscribe(subscribe)
|
||||
disposeSubscribe(subscribeDoorStatus)
|
||||
}
|
||||
|
||||
override fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) {
|
||||
if (!isFirst) {
|
||||
if (isOpen) {
|
||||
ToastUtils.showShort("已开启车门")
|
||||
} else {
|
||||
ToastUtils.showShort("已关门车门")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun openDoor() {
|
||||
val canOpenOrCloseDoor = canOpenOrCloseDoor()
|
||||
if (!canOpenOrCloseDoor.isNullOrEmpty()) {
|
||||
ToastUtils.showShort(canOpenOrCloseDoor)
|
||||
return
|
||||
}
|
||||
disposeSubscribe(subscribe)
|
||||
subscribe = createSubscribe(1000) {
|
||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
|
||||
}
|
||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1)
|
||||
disposeSubscribe(subscribeDoorStatus)
|
||||
subscribeDoorStatus = createSubscribe {
|
||||
if (!OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
|
||||
ToastUtils.showShort("车门无法开启,请使用车内物理按钮")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun closeDoor() {
|
||||
val canOpenOrCloseDoor = canOpenOrCloseDoor()
|
||||
if (!canOpenOrCloseDoor.isNullOrBlank()) {
|
||||
ToastUtils.showShort(canOpenOrCloseDoor)
|
||||
return
|
||||
}
|
||||
disposeSubscribe(subscribe)
|
||||
subscribe = createSubscribe(1000) {
|
||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
|
||||
}
|
||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2)
|
||||
disposeSubscribe(subscribeDoorStatus)
|
||||
subscribeDoorStatus = createSubscribe {
|
||||
if (OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
|
||||
ToastUtils.showShort("车门无法关闭,请使用车内物理按钮")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun canOpenOrCloseDoor(): String? {
|
||||
if (gnssSpeed < 0.01) {
|
||||
return null
|
||||
} else {
|
||||
return "车辆正在运行、请稍后再试"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,7 +3,9 @@ package com.mogo.och.bus.passenger.presenter
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
||||
import com.mogo.och.bus.passenger.model.OrderStatusEnum
|
||||
import com.mogo.och.bus.passenger.ui.M1EarlyEndOrderFragment
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
|
||||
@@ -28,6 +30,7 @@ class BusPassengerFunctionEarlyEndOrderPresenter(view: M1EarlyEndOrderFragment?)
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (null != data && 0 == data.code) {
|
||||
ToastUtils.showShort("结束成功")
|
||||
CharterPassengerModel.setEndOrderStatus()
|
||||
mView?.closeDialogContaion()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,13 @@ import com.mogo.och.bus.passenger.ui.M1OrderFragment
|
||||
class BusPassengerFunctionOrderPresenter(view: M1OrderFragment?) :
|
||||
BusBasePassengerFunctionDevicePresenter<M1OrderFragment?>(view), IOrderStatusChangeListener {
|
||||
|
||||
companion object{
|
||||
const val TAG = "BusPassengerFunctionOrderPresenter"
|
||||
}
|
||||
|
||||
override fun onCreate(owner: LifecycleOwner) {
|
||||
super.onCreate(owner)
|
||||
CharterPassengerModel.setStatusChangeListener(this)
|
||||
CharterPassengerModel.setStatusChangeListener(TAG,this)
|
||||
}
|
||||
|
||||
override fun onResume(owner: LifecycleOwner) {
|
||||
@@ -21,7 +25,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderFragment?) :
|
||||
|
||||
override fun onDestroy(owner: LifecycleOwner) {
|
||||
super.onDestroy(owner)
|
||||
CharterPassengerModel.setStatusChangeListener(null)
|
||||
CharterPassengerModel.setStatusChangeListener(TAG,null)
|
||||
}
|
||||
override fun onStatusChange(currentStatus: OrderStatusEnum) {
|
||||
mView?.setViewByOrderStatus(currentStatus)
|
||||
|
||||
@@ -17,6 +17,8 @@ import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback
|
||||
import com.mogo.och.bus.passenger.callback.ICarTypeCallback
|
||||
import com.mogo.och.bus.passenger.callback.IDistanceTimeCallback
|
||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
||||
import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener
|
||||
import com.mogo.och.bus.passenger.model.OrderStatusEnum
|
||||
import com.mogo.och.bus.passenger.ui.MainFragment
|
||||
import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg
|
||||
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
|
||||
@@ -28,7 +30,8 @@ import java.util.*
|
||||
|
||||
class BusPassengerPresenter(view: MainFragment?) :
|
||||
BusBasePassengerFunctionDevicePresenter<MainFragment?>(view),
|
||||
IBusPassengerControllerStatusCallback, IDistanceTimeCallback, ICarTypeCallback {
|
||||
IBusPassengerControllerStatusCallback, IDistanceTimeCallback, ICarTypeCallback,
|
||||
IOrderStatusChangeListener {
|
||||
|
||||
private var subscribe: Disposable? = null
|
||||
private var gnssSpeed = 0.0f
|
||||
@@ -39,6 +42,7 @@ class BusPassengerPresenter(view: MainFragment?) :
|
||||
CharterPassengerModel.setControllerStatusCallback(TAG,this)
|
||||
CharterPassengerModel.setiDistanceTimeCallback(this)
|
||||
CharterPassengerModel.setCarTypeChangeListener(this)
|
||||
CharterPassengerModel.setStatusChangeListener(TAG,this)
|
||||
CallerTelematicListenerManager.addListener(TAG, msgReceived)
|
||||
setCarChangeListener(R.raw.aiqinghao)
|
||||
//BusPassengerModel.setMoGoAutopilotPlanningListener(this)
|
||||
@@ -174,4 +178,18 @@ class BusPassengerPresenter(view: MainFragment?) :
|
||||
fun haveOrder():Boolean {
|
||||
return CharterPassengerModel.hasOrder()
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: OrderStatusEnum) {
|
||||
when (currentStatus) {
|
||||
OrderStatusEnum.Nothing -> {}
|
||||
OrderStatusEnum.NoOrderUnuse -> {
|
||||
mView?.closeOpenAndCloseDoor()
|
||||
}
|
||||
OrderStatusEnum.OrderNoLine -> {}
|
||||
OrderStatusEnum.OrdersWithLine -> {}
|
||||
OrderStatusEnum.NoOrderUse -> {
|
||||
mView?.showOpenAndCloseDoor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.mogo.och.bus.passenger.ui
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.widget.CompoundButton
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.mogo.commons.mvp.MvpDialogFragment
|
||||
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_BUS_P
|
||||
import com.mogo.eagle.core.utilcode.util.BarUtils
|
||||
import com.mogo.eagle.core.utilcode.util.SharedPrefs
|
||||
import com.mogo.och.bus.passenger.R
|
||||
import com.mogo.och.bus.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter
|
||||
import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter
|
||||
import kotlinx.android.synthetic.m1.m1_contain_fragment.*
|
||||
import kotlinx.android.synthetic.m1.m1_order_end.*
|
||||
|
||||
/**
|
||||
* @author: yangyakun
|
||||
* @date: 2023/1/28
|
||||
*/
|
||||
class M1CarUserNoOrderFragment :
|
||||
MvpDialogFragment<M1CarUserNoOrderFragment?, BusPassengerCarUseAndNoOrderPresenter?>() {
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏
|
||||
}
|
||||
|
||||
private fun initFragment() {
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.m1_order_end
|
||||
|
||||
override fun getTagName(): String = TAG
|
||||
|
||||
override fun initViews() {
|
||||
dialog?.setCancelable(false)
|
||||
iv_end_order_opendoor.onClick {
|
||||
mPresenter?.openDoor()
|
||||
}
|
||||
iv_end_order_closedoor.onClick {
|
||||
mPresenter?.closeDoor()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
dialog?.window?.let {
|
||||
BarUtils.hideStatusBarAndSticky(it)
|
||||
it.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
|
||||
dialog?.setOnShowListener { _ ->
|
||||
it.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
|
||||
BarUtils.hideStatusBarAndSticky(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(outState: Bundle) {
|
||||
super.onSaveInstanceState(outState)
|
||||
}
|
||||
|
||||
override fun createPresenter(): BusPassengerCarUseAndNoOrderPresenter =
|
||||
BusPassengerCarUseAndNoOrderPresenter(this)
|
||||
|
||||
/**
|
||||
* 重写父类show()方法
|
||||
* 避免出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
|
||||
*/
|
||||
override fun show(manager: FragmentManager, tag: String?) {
|
||||
try {
|
||||
var cls = this.javaClass.superclass ?: return
|
||||
while (true) {
|
||||
if (cls.name == "java.lang.Object") {
|
||||
break
|
||||
}
|
||||
cls = cls.superclass!!
|
||||
if (cls == DialogFragment::class.java) {
|
||||
break
|
||||
}
|
||||
}
|
||||
val mDismissed = cls.getDeclaredField("mDismissed")
|
||||
val mShownByMe = cls.getDeclaredField("mShownByMe")
|
||||
mDismissed.isAccessible = true
|
||||
mShownByMe.isAccessible = true
|
||||
mDismissed.setBoolean(this, false)
|
||||
mShownByMe.setBoolean(this, true)
|
||||
if (isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
|
||||
return
|
||||
}
|
||||
val ft: FragmentTransaction = manager.beginTransaction()
|
||||
ft.add(this, tag)
|
||||
ft.commitAllowingStateLoss()
|
||||
} catch (e: Exception) {
|
||||
Log.e("DialogFragment", "show", e.fillInStackTrace())
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewStateRestored(savedInstanceState: Bundle?) {
|
||||
CallerLogger.d(M_BUS_P+TAG, "onViewStateRestored")
|
||||
super.onViewStateRestored(savedInstanceState)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "BusPassengerFunctionFragment"
|
||||
@JvmStatic
|
||||
fun newInstance(): M1CarUserNoOrderFragment {
|
||||
val args = Bundle()
|
||||
val fragment = M1CarUserNoOrderFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,6 +18,7 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.bus.passenger.R
|
||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
||||
import com.mogo.och.bus.passenger.model.VoiceManager
|
||||
import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import kotlinx.android.synthetic.m1.m1_main_fragment.*
|
||||
@@ -31,6 +32,7 @@ class MainFragment :
|
||||
MvpFragment<MainFragment?, BusPassengerPresenter?>() {
|
||||
|
||||
private var bpFunctionGroupDialogFragment: WeakReference<M1ContainFragment>? = null
|
||||
private var m1CarUserNoOrderFragment: WeakReference<M1CarUserNoOrderFragment>? = null
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.m1_main_fragment
|
||||
@@ -70,7 +72,7 @@ class MainFragment :
|
||||
}
|
||||
ll_car_speed.onClick {
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
// TODO: 结束订单
|
||||
VoiceManager.endOrder()
|
||||
CharterPassengerModel.arriveDest()
|
||||
}else{
|
||||
ToastUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver))
|
||||
@@ -196,6 +198,50 @@ class MainFragment :
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
fun showOpenAndCloseDoor() {
|
||||
val fragmentByTag: Fragment? = childFragmentManager.findFragmentByTag(M1ContainFragment.TAG)
|
||||
if (fragmentByTag is DialogFragment) {
|
||||
if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) {
|
||||
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "正在展示")
|
||||
return
|
||||
}
|
||||
if (fragmentByTag.dialog != null && fragmentByTag.isAdded) {
|
||||
if (AppStateManager.currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用
|
||||
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "权限验证")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (m1CarUserNoOrderFragment?.get() == null) {
|
||||
m1CarUserNoOrderFragment = WeakReference(M1CarUserNoOrderFragment.newInstance())
|
||||
}
|
||||
val bpFunctionGroup = m1CarUserNoOrderFragment?.get()
|
||||
if (bpFunctionGroup != null) {
|
||||
if (bpFunctionGroup.dialog != null && bpFunctionGroup.dialog!!.isShowing) {
|
||||
return
|
||||
}
|
||||
if (bpFunctionGroup.isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
|
||||
parentFragmentManager.beginTransaction().remove(bpFunctionGroup)
|
||||
.commitAllowingStateLoss()
|
||||
}
|
||||
if (ClickUtils.isFastClick()) {
|
||||
bpFunctionGroup.show(parentFragmentManager, TAG)
|
||||
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "展示开关门")
|
||||
} else {
|
||||
CallerLogger.d(
|
||||
SceneConstant.M_BUS_P + TAG, "dialog 1s内执行一次"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
fun closeOpenAndCloseDoor(){
|
||||
val bpFunctionGroup = m1CarUserNoOrderFragment?.get()
|
||||
bpFunctionGroup?.let {
|
||||
bpFunctionGroup.dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "BusPassengerRouteFragment"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/m1_order_closedoor_press" android:state_pressed="true"/>
|
||||
<item android:drawable="@drawable/m1_order_closedoor_press" android:state_pressed="false"/>
|
||||
<item android:drawable="@drawable/m1_order_closedoor_normal" android:state_pressed="false"/>
|
||||
<item android:drawable="@drawable/m1_order_closedoor_normal"/>
|
||||
</selector>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/m1_order_opendoor_press" android:state_pressed="true"/>
|
||||
<item android:drawable="@drawable/m1_order_opendoor_press" android:state_pressed="false"/>
|
||||
<item android:drawable="@drawable/m1_order_opendoor_normal" android:state_pressed="false"/>
|
||||
<item android:drawable="@drawable/m1_order_opendoor_normal"/>
|
||||
</selector>
|
||||
@@ -1,85 +1,99 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/m1_function_bg"
|
||||
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
|
||||
<!-- 结束包车 后展示的界面 根据车辆状态来显示 -->
|
||||
<ImageView
|
||||
android:id="@+id/iv_early_end"
|
||||
android:layout_width="@dimen/dp_252"
|
||||
android:layout_height="@dimen/dp_172"
|
||||
android:layout_marginTop="@dimen/dp_63"
|
||||
android:layout_marginStart="@dimen/dp_56"
|
||||
android:src="@drawable/m1_order_end_car"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_end_title"
|
||||
android:text="本次包车旅程已结束。"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintVertical_chainStyle="packed"
|
||||
android:textColor="@color/bus_p_m1_23293b"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_early_end"
|
||||
app:layout_constraintTop_toTopOf="@+id/iv_early_end"
|
||||
app:layout_constraintBottom_toTopOf="@+id/tv_next_cloud"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_next_cloud"
|
||||
android:text="蘑菇车联祝您旅途愉快,欢迎下次乘坐!"
|
||||
android:textSize="@dimen/dp_31"
|
||||
android:textColor="@color/bus_p_m1_485173"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_early_end"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/iv_early_end"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_end_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_end_order_opendoor"
|
||||
android:layout_width="@dimen/dp_108"
|
||||
android:layout_height="@dimen/dp_108"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/bus_p_function_setting_soft_b_shape"
|
||||
android:clickable="true"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/m1_order_end_opendoor_selecotr"
|
||||
android:layout_marginBottom="@dimen/dp_100"
|
||||
app:layout_constraintEnd_toStartOf="@+id/iv_end_order_closedoor"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_end_order_closedoor"
|
||||
android:layout_width="@dimen/dp_108"
|
||||
android:layout_height="@dimen/dp_108"
|
||||
android:layout_marginBottom="@dimen/dp_100"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/m1_order_end_closedoor_selecotr"
|
||||
app:layout_constraintDimensionRatio="1031:500"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_end_order_opendoor" />
|
||||
android:layout_marginBottom="@dimen/dp_179"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintWidth_percent="0.53698">
|
||||
<!-- 结束包车 后展示的界面 根据车辆状态来显示 -->
|
||||
<ImageView
|
||||
android:id="@+id/iv_early_end"
|
||||
android:layout_width="@dimen/dp_252"
|
||||
android:layout_height="@dimen/dp_172"
|
||||
android:layout_marginStart="@dimen/dp_56"
|
||||
android:layout_marginTop="@dimen/dp_63"
|
||||
android:src="@drawable/m1_order_end_car"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:text="开车门"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:textColor="@color/bus_p_m1_23293b"
|
||||
app:layout_constraintStart_toStartOf="@+id/iv_end_order_opendoor"
|
||||
app:layout_constraintEnd_toEndOf="@+id/iv_end_order_opendoor"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_end_order_opendoor"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
<TextView
|
||||
android:id="@+id/tv_end_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="本次包车旅程已结束。"
|
||||
android:textColor="@color/bus_p_m1_23293b"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toTopOf="@+id/tv_next_cloud"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_early_end"
|
||||
app:layout_constraintTop_toTopOf="@+id/iv_early_end"
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
|
||||
<TextView
|
||||
android:text="关车门"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:textColor="@color/bus_p_m1_23293b"
|
||||
app:layout_constraintStart_toStartOf="@+id/iv_end_order_closedoor"
|
||||
app:layout_constraintEnd_toEndOf="@+id/iv_end_order_closedoor"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_end_order_closedoor"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
<TextView
|
||||
android:id="@+id/tv_next_cloud"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="蘑菇车联祝您旅途愉快,欢迎下次乘坐!"
|
||||
android:textColor="@color/bus_p_m1_485173"
|
||||
android:textSize="@dimen/dp_31"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/iv_early_end"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_early_end"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_end_title" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_end_order_opendoor"
|
||||
android:layout_width="@dimen/dp_108"
|
||||
android:layout_height="@dimen/dp_108"
|
||||
android:layout_marginBottom="@dimen/dp_100"
|
||||
android:src="@drawable/m1_order_end_opendoor_selecotr"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/iv_end_order_closedoor"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_end_order_closedoor"
|
||||
android:layout_width="@dimen/dp_108"
|
||||
android:layout_height="@dimen/dp_108"
|
||||
android:layout_marginBottom="@dimen/dp_100"
|
||||
android:src="@drawable/m1_order_end_closedoor_selecotr"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_end_order_opendoor" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:text="开车门"
|
||||
android:textColor="@color/bus_p_m1_23293b"
|
||||
android:textSize="@dimen/dp_28"
|
||||
app:layout_constraintEnd_toEndOf="@+id/iv_end_order_opendoor"
|
||||
app:layout_constraintStart_toStartOf="@+id/iv_end_order_opendoor"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_end_order_opendoor" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:text="关车门"
|
||||
android:textColor="@color/bus_p_m1_23293b"
|
||||
android:textSize="@dimen/dp_28"
|
||||
app:layout_constraintEnd_toEndOf="@+id/iv_end_order_closedoor"
|
||||
app:layout_constraintStart_toStartOf="@+id/iv_end_order_closedoor"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_end_order_closedoor" />
|
||||
|
||||
|
||||
</merge>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
Reference in New Issue
Block a user