diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index 19c1c57876..2230cdcfa2 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -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 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 // 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 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 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 if (!HmiBuildConfig.isShowBadCaseView) { CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG); } + EventBus.getDefault().unregister(this); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 8decd3ba90..529d48ebbb 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -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 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 */ 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(); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index a7351b572f..6ea7f617c4 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -60,7 +60,7 @@ public class BusPresenter extends Presenter @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 BusOrderModel.getInstance().queryBusRoutes(); } + public void queryOperationStatus(){ + BusOrderModel.getInstance().queryOperationStatus(); + } + public void resetCurrentLineStatus() { BusOrderModel.getInstance().resetCurrentLineStatus(); } diff --git a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml index 29f8777ef4..852c5db483 100644 --- a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml @@ -94,22 +94,22 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" /> - + + + + + + + + + + + + + + + + + app:layout_constraintLeft_toLeftOf="parent"/> { actvLoginout.visibility = View.VISIBLE } "fPadLenovoOchBus" ->{ - ochBusOperationRL.visibility = View.VISIBLE + CallerHmiManager.setBusOperationView(toolBusOperationView) + EventBus.getDefault().post(EventBusOperation(0)) } else -> { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt new file mode 100644 index 0000000000..69c93a4e25 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt @@ -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)) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml index cd0509392c..1173d0e572 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml @@ -255,49 +255,12 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/viewSystemVersion" /> - - - - - - - - - + app:layout_constraintStart_toStartOf="parent"/> + + + + + + + + \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/temp/EventBusOperation.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/temp/EventBusOperation.kt new file mode 100644 index 0000000000..3aefda4737 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/temp/EventBusOperation.kt @@ -0,0 +1,10 @@ +package com.mogo.eagle.core.data.temp + +/** + * @author: wangmingjun + * @date: 2022/8/23 + */ +class EventBusOperation constructor(var id:Int +) { + +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IOchBusView.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IOchBusView.kt new file mode 100644 index 0000000000..0de213f495 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IOchBusView.kt @@ -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){} +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt index cce8a617e1..8caf4e8cbb 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt @@ -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,warningReportList: ArrayList,reportLevel: Int) fun showVideoDialog(infList: List) + + fun changeBusOperationStatus(isOut:Boolean) + + fun setBusOperationView(view:IOchBusView) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index 1389e47700..9e2174391c 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -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) { waringProviderApi?.showVideoDialog(infList) } + + /** + * bus出车/收车状态设置 + * true : 显示收车; false:显示出车 + */ + fun changeBusOperationStatus(isOut:Boolean){ + waringProviderApi?.changeBusOperationStatus(isOut) + } + + /** + * 设置 bus出车/收车View + * @param view + */ + fun setBusOperationView(view: IOchBusView) { + waringProviderApi?.setBusOperationView(view) + } } \ No newline at end of file