[2.10.0]bus司机端"出/收车"按钮

This commit is contained in:
wangmingjun
2022-08-23 15:24:56 +08:00
parent 325949b0ed
commit 54f5ddd662
13 changed files with 213 additions and 70 deletions

View File

@@ -8,6 +8,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.LinearInterpolator;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -50,6 +51,7 @@ import com.mogo.och.bus.model.BusOrderModel;
import com.mogo.och.bus.util.BDRouteDataTestUtils;
import com.mogo.och.bus.view.SlidePanelView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.ThreadMode;
import mogo.telematics.pad.MessagePad;
@@ -71,7 +73,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
private ImageView ctvAutopilotStatusIv;
private TextView ctvAutopilotStatusTv;
protected TextView tvArrived;
protected TextView tvOperationStatus;
// protected TextView tvOperationStatus;
protected RelativeLayout mSettingBtn;
protected RelativeLayout mBadcaseBtn;
protected RelativeLayout mAICollectBtn;
@@ -123,7 +125,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
// mTrafficLightView = findViewById(R.id.bus_traffic_light_view);
// CallerHmiManager.INSTANCE.setProxyTrafficLightView(mTrafficLightView);
tvOperationStatus = findViewById(R.id.module_mogo_och_operation_status);
// tvOperationStatus = findViewById(R.id.module_mogo_och_operation_status);
tvArrived = findViewById(R.id.module_mogo_och_arrived_tv);
flSpeed = (FrameLayout) findViewById(R.id.fl_speed);
@@ -200,9 +202,9 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
findViewById(R.id.btnAutopilotRoute).setOnClickListener(view -> debugArrivedRoute());
tvOperationStatus.setOnClickListener(view -> {
onChangeOperationStatus();
});
// tvOperationStatus.setOnClickListener(view -> {
// onChangeOperationStatus();
// });
tvArrived.setOnClickListener(view -> {
onArriveStation();
@@ -234,6 +236,15 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
CallerDevaToolsManager.INSTANCE.initAiCollect(mAICollectBtn);
}
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container
, @Nullable Bundle savedInstanceState) {
EventBus.getDefault().register(this);
return super.onCreateView(inflater, container, savedInstanceState);
}
protected abstract void onArriveStation();
private void updateSwitchMapIcon(){
@@ -256,6 +267,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
if (!HmiBuildConfig.isShowBadCaseView) {
CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG);
}
EventBus.getDefault().unregister(this);
}

View File

@@ -9,11 +9,12 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.map.CenterLine;
import com.mogo.eagle.core.data.temp.EventBusOperation;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
@@ -28,6 +29,9 @@ import com.mogo.och.bus.ui.BusSwitchLineActivity;
import com.mogo.och.bus.view.SlidePanelView;
import com.mogo.och.common.module.utils.OCHThreadPoolManager;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
import mogo.telematics.pad.MessagePad;
@@ -106,6 +110,16 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
mSwitchLine.setOnClickListener(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onClickChangeOperationStatus(EventBusOperation eventBusOperation){
if (eventBusOperation.getId() == 0){ // 查询
mPresenter.queryOperationStatus();
}else if (eventBusOperation.getId() == 1){ // 出车/收车切换
CallerLogger.INSTANCE.d(M_BUS + TAG,"bus出车/收车");
onChangeOperationStatus();
}
}
@Override
protected void onArriveStation() {
mPresenter.onAutopilotArriveAtStation(null);
@@ -306,15 +320,18 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
*/
public void changeOperationStatus(boolean launch) {
isOperationStatus = launch;
CallerHmiManager.INSTANCE.changeBusOperationStatus(launch);
if (launch) {
// 出车的时候重制站点状态
mPresenter.queryBusRoutes();
tvOperationStatus.setText("收车");
// tvOperationStatus.setText("收车");
tvArrived.setVisibility(View.VISIBLE);
showPanel();
} else {
AIAssist.getInstance(getContext()).speakTTSVoice("已收车");
tvOperationStatus.setText("出车");
// tvOperationStatus.setText("出车");
tvArrived.setVisibility(View.GONE);
hideSlidePanel();
hidPanel();

View File

@@ -60,7 +60,7 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void onCreate(@NonNull LifecycleOwner owner) {
super.onCreate(owner);
BusOrderModel.getInstance().queryOperationStatus();
queryOperationStatus();
BusOrderModel.getInstance().queryBusRoutes();
initModelListener();
}
@@ -90,6 +90,10 @@ public class BusPresenter extends Presenter<BusFragment>
BusOrderModel.getInstance().queryBusRoutes();
}
public void queryOperationStatus(){
BusOrderModel.getInstance().queryOperationStatus();
}
public void resetCurrentLineStatus() {
BusOrderModel.getInstance().resetCurrentLineStatus();
}

View File

@@ -94,22 +94,22 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<CheckedTextView
android:id="@+id/module_mogo_och_operation_status"
android:layout_width="@dimen/module_mogo_och_operation_status_bg_width"
android:layout_height="@dimen/module_mogo_och_operation_status_bg_height"
android:background="@drawable/bus_operation_status_bg"
android:elevation="@dimen/dp_10"
android:gravity="center"
android:text="出车"
android:textAlignment="center"
android:textColor="@color/bus_autopilot_text_color_selector"
android:textSize="@dimen/module_mogo_och_autopilot_status_text_size"
android:textStyle="bold"
android:layout_marginLeft="@dimen/module_mogo_och_margin_left"
android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"/>
<!-- <CheckedTextView-->
<!-- android:id="@+id/module_mogo_och_operation_status"-->
<!-- android:layout_width="@dimen/module_mogo_och_operation_status_bg_width"-->
<!-- android:layout_height="@dimen/module_mogo_och_operation_status_bg_height"-->
<!-- android:background="@drawable/bus_operation_status_bg"-->
<!-- android:elevation="@dimen/dp_10"-->
<!-- android:gravity="center"-->
<!-- android:text="出车"-->
<!-- android:textAlignment="center"-->
<!-- android:textColor="@color/bus_autopilot_text_color_selector"-->
<!-- android:textSize="@dimen/module_mogo_och_autopilot_status_text_size"-->
<!-- android:textStyle="bold"-->
<!-- android:layout_marginLeft="@dimen/module_mogo_och_margin_left"-->
<!-- android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintLeft_toLeftOf="parent"/>-->
<TextView
android:id="@+id/module_mogo_och_arrived_tv"
@@ -125,7 +125,7 @@
android:layout_marginLeft="@dimen/module_mogo_och_margin_left"
android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/module_mogo_och_operation_status"/>
app:layout_constraintLeft_toLeftOf="parent"/>
<RelativeLayout
android:id="@+id/module_mogo_och_setting_layout"

View File

@@ -40,6 +40,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy
import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy.IViewNotificationProvider
import com.mogo.eagle.core.function.api.hmi.view.IOchBusView
import com.mogo.eagle.core.function.api.hmi.view.IViewLimitingVelocity
import com.mogo.eagle.core.function.api.hmi.view.IViewNotification
import com.mogo.eagle.core.function.api.hmi.view.IViewTrafficLight
@@ -87,8 +88,10 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.module.common.enums.*
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
import kotlinx.android.synthetic.main.fragment_hmi.*
import kotlinx.android.synthetic.main.view_auto_pilot_check.view.*
import kotlinx.coroutines.*
import mogo_msg.MogoReportMsg
import org.greenrobot.eventbus.EventBus
import record_cache.RecordPanelOuterClass
import java.util.*
@@ -150,6 +153,8 @@ import java.util.*
private var showingV2XTip: IReminder? = null
private var roadVideoDialog: RoadVideoDialog? = null
private var busOperationStatus: IOchBusView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
@@ -327,6 +332,14 @@ import java.util.*
}
}
override fun changeBusOperationStatus(isOut: Boolean) {
busOperationStatus?.changerOperationStatus(isOut)
}
override fun setBusOperationView(view: IOchBusView) {
busOperationStatus = view
}
/**
* 设置 红绿灯 代理View
*/

View File

@@ -13,12 +13,14 @@ import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.temp.EventBusOperation
import com.mogo.eagle.core.data.temp.EventLogout
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.utils.KeyBoardUtil
import com.mogo.eagle.core.utilcode.kotlin.onClick
@@ -154,15 +156,13 @@ class AutoPilotAndCheckView @JvmOverloads constructor(
EventBus.getDefault().post(EventLogout())
}
ochBusOperationStatus.onClick {
EventBus.getDefault().post(EventLogout())
}
when (DebugConfig.getProductFlavor()) {
"fPadLenovoOchTaxi" -> {
actvLoginout.visibility = View.VISIBLE
}
"fPadLenovoOchBus" ->{
ochBusOperationRL.visibility = View.VISIBLE
CallerHmiManager.setBusOperationView(toolBusOperationView)
EventBus.getDefault().post(EventBusOperation(0))
}
else -> {

View File

@@ -0,0 +1,43 @@
package com.mogo.eagle.core.function.hmi.ui.tools
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import com.mogo.eagle.core.data.temp.EventBusOperation
import com.mogo.eagle.core.function.api.hmi.view.IOchBusView
import com.mogo.eagle.core.function.hmi.R
import kotlinx.android.synthetic.main.view_och_bus_operation.view.*
import org.greenrobot.eventbus.EventBus
/**
* @author: wangmingjun
* @date: 2022/8/23
*/
class BusOperationView @JvmOverloads constructor(
context: Context?,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0)
: IOchBusView(context, attrs, defStyleAttr), View.OnClickListener {
init {
LayoutInflater.from(context).inflate(R.layout.view_och_bus_operation,this,true)
ochBusOperationStatus.setOnClickListener(this)
}
override fun showBusOperation() {
ochBusOperationStatus.visibility = View.VISIBLE
}
override fun changerOperationStatus(isOut: Boolean) {
if (isOut){
ochBusOperationStatusCTV.setText("收车")
}else{
ochBusOperationStatusCTV.setText("出车")
}
}
override fun onClick(v: View?) {
EventBus.getDefault().post(EventBusOperation(1))
}
}

View File

@@ -255,49 +255,12 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/viewSystemVersion" />
<RelativeLayout
android:id="@+id/ochBusOperationRL"
<com.mogo.eagle.core.function.hmi.ui.tools.BusOperationView
android:id="@+id/toolBusOperationView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40px"
android:layout_marginBottom="40px"
app:layout_constraintTop_toBottomOf="@+id/systemVersionView"
app:layout_constraintStart_toStartOf="parent"
android:visibility="gone">
<View android:id="@+id/bus_operation_view"
android:layout_width="14px"
android:layout_height="50px"
android:layout_marginStart="80px"
android:background="@color/color_FF2966EC"/>
<TextView
android:id="@+id/tv_bus_operation_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="113px"
android:gravity="center"
android:text="@string/bus_operation_title"
android:textColor="@color/color_FFFFFF"
android:textSize="42px" />
<CheckedTextView
android:id="@+id/ochBusOperationStatus"
android:layout_width="@dimen/och_bus_operation_status_bg_width"
android:layout_height="@dimen/och_bus_operation_status_bg_height"
android:background="@drawable/bus_operation_status_bg"
android:elevation="@dimen/dp_10"
android:gravity="center"
android:text="出车"
android:textAlignment="center"
android:layout_marginStart="113px"
android:layout_marginTop="40px"
android:textColor="@drawable/bus_autopilot_text_color_selector"
android:textSize="@dimen/module_mogo_och_autopilot_status_text_size"
android:textStyle="bold"
android:layout_below="@+id/tv_bus_operation_title"/>
</RelativeLayout>
app:layout_constraintStart_toStartOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actvLoginout"

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ochBusOperationStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40px"
android:paddingBottom="40px"
tools:ignore="DuplicateIds">
<View
android:id="@+id/bus_operation_view"
android:layout_width="14px"
android:layout_height="50px"
android:layout_marginStart="80px"
android:background="@color/color_FF2966EC" />
<TextView
android:id="@+id/tv_bus_operation_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="113px"
android:gravity="center"
android:text="@string/bus_operation_title"
android:textColor="@color/color_FFFFFF"
android:textSize="42px" />
<CheckedTextView
android:id="@+id/ochBusOperationStatusCTV"
android:layout_width="@dimen/och_bus_operation_status_bg_width"
android:layout_height="@dimen/och_bus_operation_status_bg_height"
android:layout_below="@+id/tv_bus_operation_title"
android:layout_marginStart="113px"
android:layout_marginTop="40px"
android:background="@drawable/bus_operation_status_bg"
android:elevation="@dimen/dp_10"
android:gravity="center"
android:text="出车"
android:textAlignment="center"
android:textColor="@drawable/bus_autopilot_text_color_selector"
android:textSize="@dimen/module_mogo_och_autopilot_status_text_size"
android:textStyle="bold" />
</RelativeLayout>

View File

@@ -0,0 +1,10 @@
package com.mogo.eagle.core.data.temp
/**
* @author: wangmingjun
* @date: 2022/8/23
*/
class EventBusOperation constructor(var id:Int
) {
}

View File

@@ -0,0 +1,16 @@
package com.mogo.eagle.core.function.api.hmi.view
import android.content.Context
import android.util.AttributeSet
import android.widget.LinearLayout
/**
* 定义红绿灯View具备的功能接口
*/
abstract class IOchBusView(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) :
LinearLayout(context, attrs, defStyleAttr) {
open fun showBusOperation(){}
open fun changerOperationStatus(isOut:Boolean){}
}

View File

@@ -8,6 +8,7 @@ import com.mogo.eagle.core.data.notice.NoticeNormalData
import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData
import com.mogo.eagle.core.data.report.ReportEntity
import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy
import com.mogo.eagle.core.function.api.hmi.view.IOchBusView
/**
* @author xiaoyuzhou
@@ -251,4 +252,8 @@ interface IMoGoWaringProvider : IMoGoHmiViewProxy {
fun showIPCReportWindow(errorReportList: ArrayList<ReportEntity>,warningReportList: ArrayList<ReportEntity>,reportLevel: Int)
fun showVideoDialog(infList: List<Infrastructure>)
fun changeBusOperationStatus(isOut:Boolean)
fun setBusOperationView(view:IOchBusView)
}

View File

@@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.notice.NoticeNormalData
import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData
import com.mogo.eagle.core.data.report.ReportEntity
import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy.IViewNotificationProvider
import com.mogo.eagle.core.function.api.hmi.view.IOchBusView
import com.mogo.eagle.core.function.api.hmi.view.IViewLimitingVelocity
import com.mogo.eagle.core.function.api.hmi.view.IViewNotification
import com.mogo.eagle.core.function.api.hmi.view.IViewTrafficLight
@@ -364,4 +365,20 @@ object CallerHmiManager : CallerBase() {
fun showVideoDialog(infList: List<Infrastructure>) {
waringProviderApi?.showVideoDialog(infList)
}
/**
* bus出车/收车状态设置
* true : 显示收车; false显示出车
*/
fun changeBusOperationStatus(isOut:Boolean){
waringProviderApi?.changeBusOperationStatus(isOut)
}
/**
* 设置 bus出车/收车View
* @param view
*/
fun setBusOperationView(view: IOchBusView) {
waringProviderApi?.setBusOperationView(view)
}
}