[fea]
[ui 结构变更]
This commit is contained in:
yangyakun
2024-10-09 17:40:17 +08:00
parent 48f3fa80a3
commit dc610845c3
15 changed files with 345 additions and 181 deletions

View File

@@ -19,8 +19,6 @@ import com.mogo.och.unmanned.taxi.R
import com.mogo.och.unmanned.taxi.TaxiUnmannedDriverProvider
import com.mogo.och.unmanned.taxi.constant.TaxiDriverEventConst
import kotlinx.android.synthetic.main.unmanned_switch_biz.view.loading_biz
import kotlinx.android.synthetic.main.unmanned_switch_biz.view.order_operation_change
import kotlinx.android.synthetic.main.unmanned_switch_biz.view.taxiServerSelector
class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallback {
@@ -52,26 +50,9 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
private fun initView(){
fragment = TaxiUnmannedDriverProvider.getFragmentInfo()
loading_biz.setEmptyText(ResourcesUtils.getString(R.string.common_biz_loading))
order_operation_change.onClick {
if (MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode) {
ToastUtils.showLong("退出验证模式后再接单吧")
return@onClick
}
viewModel?.changeOperationStatus()
}
}
private fun initEventBus() {
fragment?.let {
FlowBus.with<Boolean>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT)
.register(it) { show ->
taxiServerSelector.setNextItineraryRedBagVisable( if (show) View.VISIBLE else View.GONE)
}
// FlowBus.with<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED)
// .register(it) { taskWithOrder ->
// nextTaskFragment?.onTaskDataChanged(taskWithOrder)
// }
}
}
@@ -92,45 +73,4 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
loading_biz.visibility = GONE
}
/**
* 初始化数据
*/
override fun loadLineData() {
}
// 展示选择任务页面
override fun showSwitchTaskInfo() {
val endLoading = System.currentTimeMillis()
val dex = (100-(endLoading - startLoading)).takeIf { it>=0 }?:0
CallerLogger.d(TAG,"展示任务 lading 展示了 ${dex}毫秒")
ThreadUtils.runOnUiThreadDelayed({
loading_biz.visibility = GONE
},dex,ThreadUtils.MODE.QUEUE)
}
// 展示选择线路页面
override fun showSwtichLineView() {
val endLoading = System.currentTimeMillis()
val dex = (100-(endLoading - startLoading)).takeIf { it>=0 }?:0
CallerLogger.d(TAG,"展示线路 lading 展示了 ${dex}毫秒")
ThreadUtils.runOnUiThreadDelayed({
loading_biz.visibility = GONE
},dex,ThreadUtils.MODE.QUEUE)
}
// 展示正在进行的任务
override fun loadRunningTask() {
val endLoading = System.currentTimeMillis()
val dex = (100-(endLoading - startLoading)).takeIf { it>=0 }?:0
CallerLogger.d(TAG,"展示运行中任务 lading 展示了 ${dex}毫秒")
ThreadUtils.runOnUiThreadDelayed({
loading_biz.visibility = GONE
},dex,ThreadUtils.MODE.QUEUE)
}
}

View File

@@ -29,11 +29,7 @@ class SwtichBizeModel : ViewModel() {
}
interface SwtichLineViewCallback {
fun showSwtichLineView()
fun showLoadingView()
fun showSwitchTaskInfo()
fun loadLineData()
fun loadRunningTask()
}
}

View File

@@ -1,52 +0,0 @@
package com.mogo.och.unmanned.taxi.ui.bizswitch
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.map.listener.IMogoMapListener
import com.mogo.och.unmanned.taxi.R
import kotlinx.android.synthetic.main.taxi_select_view_group.view.textNextItinerary
class TaxiSelectViewGroup @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr),IMogoMapListener {
companion object {
const val TAG = "LoadingMapStatusView"
}
init {
LayoutInflater.from(context).inflate(R.layout.taxi_select_view_group, this, true)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerLogger.d(TAG,"onAttachedToWindow")
}
override fun onVisibilityAggregated(isVisible: Boolean) {
super.onVisibilityAggregated(isVisible)
if(isVisible){
}else{
}
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CallerLogger.d(TAG,"onDetachedFromWindow")
}
fun setNextItineraryRedBagVisable(visibility: Int) {
textNextItinerary.setRedBagVisable(visibility)
}
}

View File

@@ -0,0 +1,33 @@
package com.mogo.och.unmanned.taxi.ui.task
import androidx.lifecycle.ViewModel
/**
* @author XuXinChao
* @description BadCase录包管理页面
* @since: 2022/12/15
*/
class ItinerarySwitchModel : ViewModel() {
private val TAG = ItinerarySwitchModel::class.java.simpleName
private var viewCallback: SwtichLineViewCallback? = null
override fun onCleared() {
}
fun changeOperationStatus(){
TaxiTaskModel.updateCarServingStatus()
}
fun setDistanceCallback(viewCallback: SwtichLineViewCallback) {
this.viewCallback = viewCallback
}
interface SwtichLineViewCallback {
}
}

View File

@@ -0,0 +1,108 @@
package com.mogo.och.unmanned.taxi.ui.task
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.utils.FlowBus
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.unmanned.taxi.R
import com.mogo.och.unmanned.taxi.TaxiUnmannedDriverProvider
import com.mogo.och.unmanned.taxi.constant.TaxiDriverEventConst
import com.mogo.och.unmanned.taxi.wigets.TaxiSelectViewGroup
import kotlinx.android.synthetic.main.unmanned_switch_itinerary.view.currentItinerary
import kotlinx.android.synthetic.main.unmanned_switch_itinerary.view.nextItinerary
import kotlinx.android.synthetic.main.unmanned_switch_itinerary.view.order_operation_change
import kotlinx.android.synthetic.main.unmanned_switch_itinerary.view.taxiServerSelector
class ItinerarySwitchView: ConstraintLayout, ItinerarySwitchModel.SwtichLineViewCallback {
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)
companion object {
const val TAG = "SwitchBizView"
}
private var viewModel: ItinerarySwitchModel?=null
private var fragment: LifecycleOwner?=null
init {
LayoutInflater.from(context).inflate(R.layout.unmanned_switch_itinerary, this, true)
initView()
initEventBus()
}
private fun initView(){
fragment = TaxiUnmannedDriverProvider.getFragmentInfo()
order_operation_change.onClick {
if (MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode) {
ToastUtils.showLong("退出验证模式后再接单吧")
return@onClick
}
viewModel?.changeOperationStatus()
}
taxiServerSelector.checkChangeListener = object : TaxiSelectViewGroup.CheckChangeListener{
override fun changeCheck(newCheck: TaxiSelectViewGroup.ServerType?) {
when (newCheck) {
TaxiSelectViewGroup.ServerType.currentItinerary -> {
currentItinerary.visibility = View.VISIBLE
nextItinerary.visibility = View.GONE
}
TaxiSelectViewGroup.ServerType.nextItinerary -> {
currentItinerary.visibility = View.GONE
nextItinerary.visibility = View.VISIBLE
}
else ->{
currentItinerary.visibility = View.GONE
nextItinerary.visibility = View.GONE
}
}
}
}
}
private fun initEventBus() {
fragment?.let {
FlowBus.with<Boolean>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_SHOW_RED_POINT)
.register(it) { show ->
taxiServerSelector.setNextItineraryRedBagVisable( if (show) View.VISIBLE else View.GONE)
}
// FlowBus.with<QueryCurrentTaskRespBean.Result?>(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED)
// .register(it) { taskWithOrder ->
// nextTaskFragment?.onTaskDataChanged(taskWithOrder)
// }
}
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(ItinerarySwitchModel::class.java)
}
viewModel?.setDistanceCallback(this)
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.unmanned.taxi.ui.itinerarycurrent
package com.mogo.och.unmanned.taxi.ui.task.itinerarycurrent
import android.content.Context
import android.util.AttributeSet
@@ -9,6 +9,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.och.unmanned.taxi.R
import com.mogo.och.unmanned.taxi.TaxiUnmannedDriverProvider
import com.mogo.och.unmanned.taxi.ui.itinerarycurrent.ItineraryCurrentModel
class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineViewCallback {
@@ -37,7 +38,6 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi
}
private fun initView(){
setBackgroundResource(R.drawable.shape_itinerary_bg_default)
fragment = TaxiUnmannedDriverProvider.getFragmentInfo()
}

View File

@@ -1,25 +1,27 @@
package com.mogo.och.unmanned.taxi.ui.itinerarynext
package com.mogo.och.unmanned.taxi.ui.task.itinerarynext
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.unmanned.taxi.R
import com.mogo.och.unmanned.taxi.TaxiUnmannedDriverProvider
import com.mogo.och.unmanned.taxi.ui.itinerarynext.ItineraryNextModel
class ItineraryNextView: WindowRelativeLayout, ItineraryNextModel.SwtichLineViewCallback {
class ItineraryNextView: ConstraintLayout, ItineraryNextModel.SwtichLineViewCallback {
constructor(context: Context?) : super(context)
constructor(context: Context) : super(context)
constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet)
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) : super(context, attributeSet, defStyleAttr)
constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
companion object {

View File

@@ -1,11 +1,10 @@
package com.mogo.och.unmanned.taxi.wigets
import android.content.Context
import android.content.res.TypedArray
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.map.listener.IMogoMapListener
import com.mogo.och.unmanned.taxi.R
@@ -24,6 +23,8 @@ class TaxiSelectView @JvmOverloads constructor(
private lateinit var taxiServerTitle:String
var checkChangeListener:CheckChangeListener?=null
init {
LayoutInflater.from(context).inflate(R.layout.taxi_select_view, this, true)
try {
@@ -40,19 +41,28 @@ class TaxiSelectView @JvmOverloads constructor(
super.onAttachedToWindow()
CallerLogger.d(TAG,"onAttachedToWindow")
actv_server_name.text = taxiServerTitle
actv_server_name.setOnCheckedChangeListener { buttonView, isChecked ->
if(buttonView.id==R.id.actv_server_name){
if(isChecked){
aciv_check_state.visibility = VISIBLE
}else{
aciv_check_state.visibility = GONE
}
onClick {
if (actv_server_name.isChecked) {
return@onClick
}else{
actv_server_name.isChecked = true
aciv_check_state.visibility = VISIBLE
checkChangeListener?.onCheckChangeListener(actv_server_name.isChecked)
}
}
}
fun setCheck(isCheck:Boolean){
actv_server_name.isChecked = isCheck
if (isCheck) {
actv_server_name.isChecked = true
aciv_check_state.visibility = VISIBLE
checkChangeListener?.onCheckChangeListener(actv_server_name.isChecked)
}else{
actv_server_name.isChecked = false
aciv_check_state.visibility = GONE
checkChangeListener?.onCheckChangeListener(actv_server_name.isChecked)
}
}
override fun onVisibilityAggregated(isVisible: Boolean) {
@@ -74,5 +84,9 @@ class TaxiSelectView @JvmOverloads constructor(
wait_order_num.visibility = visibility
}
interface CheckChangeListener{
fun onCheckChangeListener(isCheck: Boolean)
}
}

View File

@@ -0,0 +1,90 @@
package com.mogo.och.unmanned.taxi.wigets
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.map.listener.IMogoMapListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager.M_LISTENERS
import com.mogo.och.unmanned.taxi.R
import kotlinx.android.synthetic.main.taxi_select_view_group.view.textCurrentItinerary
import kotlinx.android.synthetic.main.taxi_select_view_group.view.textNextItinerary
import kotlin.properties.Delegates
class TaxiSelectViewGroup @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr),IMogoMapListener {
companion object {
const val TAG = "LoadingMapStatusView"
}
private var checkType:ServerType? by Delegates.observable(null) { _, oldValue, newValue ->
if (oldValue != newValue) {
checkChangeListener?.changeCheck(newValue)
}
}
var checkChangeListener:CheckChangeListener?=null
init {
LayoutInflater.from(context).inflate(R.layout.taxi_select_view_group, this, true)
initView()
}
private fun initView() {
textCurrentItinerary.checkChangeListener = object : TaxiSelectView.CheckChangeListener{
override fun onCheckChangeListener(isCheck: Boolean) {
if(isCheck){
checkType = ServerType.currentItinerary
textNextItinerary.setCheck(false)
}
}
}
textNextItinerary.checkChangeListener = object : TaxiSelectView.CheckChangeListener{
override fun onCheckChangeListener(isCheck: Boolean) {
if(isCheck){
checkType = ServerType.nextItinerary
textCurrentItinerary.setCheck(false)
}
}
}
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerLogger.d(TAG,"onAttachedToWindow")
}
override fun onVisibilityAggregated(isVisible: Boolean) {
super.onVisibilityAggregated(isVisible)
if(isVisible){
}else{
}
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CallerLogger.d(TAG,"onDetachedFromWindow")
}
fun setNextItineraryRedBagVisable(visibility: Int) {
textNextItinerary.setRedBagVisable(visibility)
}
enum class ServerType{
currentItinerary,
nextItinerary
}
interface CheckChangeListener{
fun changeCheck(newCheck:ServerType?)
}
}

View File

@@ -17,7 +17,7 @@
app:layout_constraintBottom_toBottomOf="parent"
android:src="@drawable/taxi_selected_head" />
<androidx.appcompat.widget.AppCompatCheckBox
<androidx.appcompat.widget.AppCompatCheckedTextView
android:id="@+id/actv_server_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -4,13 +4,23 @@
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
android:layout_width="@dimen/dp_774"
android:layout_height="@dimen/dp_300"
android:background="@drawable/shape_itinerary_bg_default"
xmlns:tools="http://schemas.android.com/tools">
<View
android:id="@+id/v_next_itinerary_bg"
android:background="@drawable/shape_itinerary_bg_default"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="@dimen/dp_54"
android:layout_marginEnd="@dimen/dp_52"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_300"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_order_phone"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/v_next_itinerary_bg"
app:layout_constraintStart_toStartOf="@+id/v_next_itinerary_bg"
android:layout_marginTop="@dimen/dp_26"
android:layout_marginStart="@dimen/dp_30"
android:textSize="@dimen/dp_40"
@@ -46,6 +56,16 @@
android:layout_width="@dimen/dp_120"
android:layout_height="@dimen/dp_50"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_order_close"
app:layout_constraintTop_toTopOf="@+id/aciv_task_type_order"
app:layout_constraintBottom_toBottomOf="@+id/aciv_task_type_order"
app:layout_constraintEnd_toEndOf="@+id/v_next_itinerary_bg"
android:layout_marginEnd="@dimen/dp_30"
android:src="@drawable/taxi_task_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.constraintlayout.widget.Group
android:id="@+id/group_order_info"
app:constraint_referenced_ids="aciv_task_type_order,actv_order_count,actv_order_phone"
@@ -54,8 +74,8 @@
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_task_type_exercise"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/v_next_itinerary_bg"
app:layout_constraintStart_toStartOf="@+id/v_next_itinerary_bg"
android:layout_marginTop="@dimen/dp_29"
android:src="@drawable/taxi_task_exercise"
android:layout_marginStart="@dimen/dp_30"
@@ -66,8 +86,8 @@
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_next_start_station_point"
android:src="@drawable/taxi_task_start_station_point"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@+id/v_next_itinerary_bg"
app:layout_constraintTop_toTopOf="@+id/v_next_itinerary_bg"
android:layout_marginTop="@dimen/dp_113"
android:layout_marginStart="@dimen/dp_30"
android:layout_width="@dimen/dp_30"
@@ -120,7 +140,4 @@
android:lineSpacingMultiplier="1.2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</merge>

View File

@@ -36,6 +36,12 @@
android:layout_width="@dimen/dp_856"
android:layout_height="@dimen/dp_100"/>
<com.mogo.och.unmanned.taxi.ui.task.ItinerarySwitchView
app:layout_constraintTop_toTopOf="@+id/guideline_h_top"
app:layout_constraintStart_toStartOf="@+id/guideline_v_left"
app:layout_constraintEnd_toEndOf="@+id/guideline_v_right"
android:layout_width="@dimen/dp_880"
android:layout_height="@dimen/dp_966"/>
<com.mogo.och.common.module.wigets.loading.LoadingViewBig
android:id="@+id/loading_biz"
@@ -47,40 +53,4 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.mogo.och.unmanned.taxi.ui.bizswitch.TaxiSelectViewGroup
android:id="@+id/taxiServerSelector"
app:layout_constraintTop_toBottomOf="@+id/guideline_h_top"
app:layout_constraintStart_toEndOf="@+id/guideline_v_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.mogo.och.common.module.wigets.map.orderstatus.OrderStatusView
android:id="@+id/order_operation_change"
app:layout_constraintTop_toTopOf="@+id/guideline_h_top"
android:layout_marginTop="@dimen/dp_30"
app:layout_constraintEnd_toEndOf="@+id/guideline_v_right"
android:layout_marginEnd="@dimen/dp_47"
android:layout_width="@dimen/dp_118"
android:layout_height="@dimen/dp_50"/>
<com.mogo.och.unmanned.taxi.ui.itinerarycurrent.ItineraryCurrentView
android:id="@+id/currentItinerary"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_28"
app:layout_constraintEnd_toEndOf="parent"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/taxiServerSelector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.mogo.och.unmanned.taxi.ui.itinerarynext.ItineraryNextView
android:id="@+id/nextItinerary"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_87"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/taxiServerSelector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="@dimen/dp_880"
android:layout_height="@dimen/dp_966"
xmlns:tools="http://schemas.android.com/tools"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
<com.mogo.och.unmanned.taxi.wigets.TaxiSelectViewGroup
android:id="@+id/taxiServerSelector"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.mogo.och.common.module.wigets.map.orderstatus.OrderStatusView
android:id="@+id/order_operation_change"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/dp_30"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_47"
android:layout_width="@dimen/dp_118"
android:layout_height="@dimen/dp_50"/>
<com.mogo.och.unmanned.taxi.ui.task.itinerarycurrent.ItineraryCurrentView
android:id="@+id/currentItinerary"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_28"
app:layout_constraintEnd_toEndOf="parent"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/taxiServerSelector"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.mogo.och.unmanned.taxi.ui.task.itinerarynext.ItineraryNextView
android:id="@+id/nextItinerary"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_87"
app:layout_constraintEnd_toEndOf="parent"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/taxiServerSelector"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</merge>