From a215ccc112da4c2a0881a188d74b624a95f34201 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Wed, 18 Oct 2023 19:35:49 +0800 Subject: [PATCH] =?UTF-8?q?[sweeper=E8=BF=90=E8=90=A5&=E4=BA=91=E6=8E=A7?= =?UTF-8?q?=E5=90=88=E5=B9=B6]refactor:=20SweeperOperate=20&=20SweeperClou?= =?UTF-8?q?d=20=E7=9B=B8=E5=90=8C=E7=9A=84=E4=BB=A3=E7=A0=81=E6=8F=90?= =?UTF-8?q?=E5=8F=96common,=20=E7=B1=BB=E5=90=8D=E3=80=81layout=E3=80=81?= =?UTF-8?q?=E5=8C=85=E5=90=8D=E7=AD=89=E5=8A=A0=E4=B8=8Aoperate/cloud?= =?UTF-8?q?=E5=89=8D=E7=BC=80=E5=8C=BA=E5=88=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/sweeper/SweeperProvider.java | 25 +- ....java => BaseSweeperCloudTabFragment.java} | 15 +- ...perFragment.kt => SweeperCloudFragment.kt} | 12 +- ...kModel.java => SweeperCloudTaskModel.java} | 15 +- ...senter.java => SweeperCloudPresenter.java} | 42 +- .../popwindow/SweeperOperatePanelPopWindow.kt | 59 - .../cloud/util/SweeperAnalyticsManager.java | 149 --- .../cloud/util/SweeperCloudTaskUtils.kt | 19 +- ....kt => SweeperCloudCurrentTaskInfoView.kt} | 4 +- ...View.kt => SweeperCloudTrafficDataView.kt} | 2 +- ...odeView.kt => SweeperCloudWorkModeView.kt} | 16 +- .../cloud/view/SweeperTrafficLightView.kt | 148 --- .../callback/IWeltMapSwitchToSmallCallback.kt | 2 +- .../fragment/BaseSweeperUIFragment.java | 2 +- .../fragment/SweeperAmapNaviFragment.java | 2 +- .../fragment/WeltMapOverViewFragment.kt | 13 +- .../util/SweeperAnalyticsManager.java | 2 +- .../view}/SweeperManualDrivingDialog.kt | 2 +- .../view}/SweeperNoTitleCommonDialog.kt | 2 +- .../view}/SweeperOperatePanelPopWindow.kt | 4 +- .../view}/SweeperOperatePanelView.java | 2 +- .../view/SweeperTrafficLightView.kt | 2 +- ...back.kt => ISweeperOperateTaskCallback.kt} | 2 +- .../sweeper/operate/event/WeltDataEvent.java | 58 - ...ava => BaseSweeperOperateTabFragment.java} | 18 +- .../fragment/BaseSweeperUIFragment.java | 50 - .../fragment/SweeperAmapNaviFragment.java | 230 ---- ...rFragment.kt => SweeperOperateFragment.kt} | 23 +- .../fragment/WeltMapOverViewFragment.kt | 129 -- ...odel.java => SweeperOperateTaskModel.java} | 44 +- ...ce.java => ISweeperOperateApiService.java} | 2 +- ...ger.kt => SweeperOperateServiceManager.kt} | 10 +- ...nter.java => SweeperOperatePresenter.java} | 76 +- .../operate/ui/SweeperOperatePanelView.java | 1094 ----------------- .../operate/ui/adapter/TaskListAdapter.kt | 2 +- .../ui/dialog/SweeperManualDrivingDialog.kt | 70 -- .../ui/dialog/SweeperNoTitleCommonDialog.kt | 85 -- .../operate/ui/popwindow/MenuPopWindow.kt | 2 +- ...t => SweeperOperateCurrentTaskInfoView.kt} | 16 +- ...skView.kt => SweeperOperateSubTaskView.kt} | 6 +- ...ew.kt => SweeperOperateTrafficDataView.kt} | 4 +- ...eView.kt => SweeperOperateWorkModeView.kt} | 7 +- .../res/layout/fragment_och_sweeper_cloud.xml | 4 +- ...r.xml => fragment_och_sweeper_operate.xml} | 8 +- .../main/res/layout/sweeper_base_fragment.xml | 2 +- .../layout/sweeper_cloud_base_fragment.xml | 2 +- .../sweeper_cloud_popwindow_operate_panel.xml | 8 - .../res/layout/sweeper_cloud_traffic_data.xml | 2 +- ... => sweeper_operate_current_task_info.xml} | 6 +- ...xml => sweeper_operate_item_task_info.xml} | 0 ...> sweeper_operate_no_data_common_view.xml} | 0 ...w.xml => sweeper_operate_subtask_view.xml} | 0 ...menu.xml => sweeper_operate_task_menu.xml} | 0 ...a.xml => sweeper_operate_traffic_data.xml} | 2 +- .../sweeper_popwindow_operate_panel.xml | 4 +- 55 files changed, 211 insertions(+), 2294 deletions(-) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/{BaseSweeperTabFragment.java => BaseSweeperCloudTabFragment.java} (97%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/{SweeperFragment.kt => SweeperCloudFragment.kt} (98%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/{SweeperTaskModel.java => SweeperCloudTaskModel.java} (98%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/presenter/{SweeperPresenter.java => SweeperCloudPresenter.java} (82%) delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/popwindow/SweeperOperatePanelPopWindow.kt delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperAnalyticsManager.java rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/{SweeperCurrentTaskInfoView.kt => SweeperCloudCurrentTaskInfoView.kt} (98%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/{SweeperTrafficDataView.kt => SweeperCloudTrafficDataView.kt} (99%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/{SweeperWorkModeView.kt => SweeperCloudWorkModeView.kt} (90%) delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperTrafficLightView.kt rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{operate => common}/callback/IWeltMapSwitchToSmallCallback.kt (62%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{cloud => common}/fragment/BaseSweeperUIFragment.java (96%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{cloud => common}/fragment/SweeperAmapNaviFragment.java (99%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{cloud => common}/fragment/WeltMapOverViewFragment.kt (90%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{operate => common}/util/SweeperAnalyticsManager.java (99%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{cloud/ui/dialog => common/view}/SweeperManualDrivingDialog.kt (97%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{cloud/ui/dialog => common/view}/SweeperNoTitleCommonDialog.kt (97%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{operate/ui/popwindow => common/view}/SweeperOperatePanelPopWindow.kt (94%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{cloud/ui => common/view}/SweeperOperatePanelView.java (99%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/{operate => common}/view/SweeperTrafficLightView.kt (99%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/{ISweeperTaskCallback.kt => ISweeperOperateTaskCallback.kt} (96%) delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/event/WeltDataEvent.java rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/{BaseSweeperTabFragment.java => BaseSweeperOperateTabFragment.java} (96%) delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/BaseSweeperUIFragment.java delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/SweeperAmapNaviFragment.java rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/{SweeperFragment.kt => SweeperOperateFragment.kt} (96%) delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/WeltMapOverViewFragment.kt rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/{SweeperTaskModel.java => SweeperOperateTaskModel.java} (95%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/{ISweeperApiService.java => ISweeperOperateApiService.java} (98%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/{SweeperServiceManager.kt => SweeperOperateServiceManager.kt} (95%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/{SweeperPresenter.java => SweeperOperatePresenter.java} (84%) delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/SweeperOperatePanelView.java delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperManualDrivingDialog.kt delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperNoTitleCommonDialog.kt rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/{SweeperCurrentTaskInfoView.kt => SweeperOperateCurrentTaskInfoView.kt} (94%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/{SubTaskView.kt => SweeperOperateSubTaskView.kt} (90%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/{SweeperTrafficDataView.kt => SweeperOperateTrafficDataView.kt} (97%) rename OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/{SweeperWorkModeView.kt => SweeperOperateWorkModeView.kt} (96%) rename OCH/sweeper/driver/src/main/res/layout/{fragment_och_sweeper.xml => fragment_och_sweeper_operate.xml} (95%) delete mode 100644 OCH/sweeper/driver/src/main/res/layout/sweeper_cloud_popwindow_operate_panel.xml rename OCH/sweeper/driver/src/main/res/layout/{sweeper_current_task_info.xml => sweeper_operate_current_task_info.xml} (97%) rename OCH/sweeper/driver/src/main/res/layout/{sweeper_item_task_info.xml => sweeper_operate_item_task_info.xml} (100%) rename OCH/sweeper/driver/src/main/res/layout/{sweeper_no_data_common_view.xml => sweeper_operate_no_data_common_view.xml} (100%) rename OCH/sweeper/driver/src/main/res/layout/{sweeper_subtask_view.xml => sweeper_operate_subtask_view.xml} (100%) rename OCH/sweeper/driver/src/main/res/layout/{sweeper_task_menu.xml => sweeper_operate_task_menu.xml} (100%) rename OCH/sweeper/driver/src/main/res/layout/{sweeper_traffic_data.xml => sweeper_operate_traffic_data.xml} (99%) diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java index 703b86f0f6..b44c16cc04 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java @@ -9,8 +9,9 @@ import androidx.fragment.app.FragmentManager; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment; import com.mogo.och.sweeper.common.constant.SweeperConst; -import com.mogo.och.sweeper.operate.fragment.SweeperFragment; +import com.mogo.och.sweeper.operate.fragment.SweeperOperateFragment; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -25,7 +26,7 @@ public class SweeperProvider implements IMogoOCH { private static final String TAG = "SweeperProvider"; - private SweeperFragment sweeperFragment; + private SweeperOperateFragment sweeperOperateFragment; private int containerId; private FragmentActivity activity; @@ -34,26 +35,26 @@ public class SweeperProvider implements IMogoOCH { } private void showFragment() { FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); - if (sweeperFragment == null) { + if (sweeperOperateFragment == null) { CallerLogger.d(TAG, "准备add fragment======"); - Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(sweeperFragment.TAG); - if (fragmentByTag instanceof SweeperFragment) { - sweeperFragment = (SweeperFragment) fragmentByTag; + Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(sweeperOperateFragment.TAG); + if (fragmentByTag instanceof SweeperCloudFragment) { + sweeperOperateFragment = (SweeperOperateFragment) fragmentByTag; } else { - sweeperFragment = new SweeperFragment(); + sweeperOperateFragment = new SweeperOperateFragment(); } - if(!sweeperFragment.isAdded()) { - supportFragmentManager.beginTransaction().add(containerId, sweeperFragment, sweeperFragment.TAG).commitAllowingStateLoss(); + if(!sweeperOperateFragment.isAdded()) { + supportFragmentManager.beginTransaction().add(containerId, sweeperOperateFragment, sweeperOperateFragment.TAG).commitAllowingStateLoss(); } return; } CallerLogger.d(TAG, "准备show fragment"); - supportFragmentManager.beginTransaction().show(sweeperFragment).commitAllowingStateLoss(); + supportFragmentManager.beginTransaction().show(sweeperOperateFragment).commitAllowingStateLoss(); } private void hideFragment() { - if (sweeperFragment != null) { + if (sweeperOperateFragment != null) { CallerLogger.d(TAG, "准备hide fragment"); - activity.getSupportFragmentManager().beginTransaction().hide(sweeperFragment).commitAllowingStateLoss(); + activity.getSupportFragmentManager().beginTransaction().hide(sweeperOperateFragment).commitAllowingStateLoss(); } } diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperTabFragment.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java similarity index 97% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperTabFragment.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java index b841045dfe..896fcd1907 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperTabFragment.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java @@ -44,11 +44,12 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.sweeper.R; import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean; import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback; -import com.mogo.och.sweeper.operate.callback.IWeltMapSwitchToSmallCallback; +import com.mogo.och.sweeper.common.callback.IWeltMapSwitchToSmallCallback; import com.mogo.och.sweeper.common.database.bean.WeltDataBean; import com.mogo.och.sweeper.cloud.util.AutopilotModeConfigManager; import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils; -import com.mogo.och.sweeper.cloud.view.SweeperTrafficDataView; +import com.mogo.och.sweeper.cloud.view.SweeperCloudTrafficDataView; +import com.mogo.och.sweeper.common.fragment.WeltMapOverViewFragment; import com.mogo.och.sweeper.common.view.WeltSmallMapView; import com.zhjt.mogo.adas.data.AiCloudTask; @@ -65,7 +66,7 @@ import mogo.telematics.pad.MessagePad; * * @author tongchenfei */ -public abstract class BaseSweeperTabFragment> extends MvpFragment implements IMogoMapListener, +public abstract class BaseSweeperCloudTabFragment> extends MvpFragment implements IMogoMapListener, IWeltMapSwitchToSmallCallback, View.OnTouchListener { private static final String TAG = "BaseSweeperTabFragment"; @@ -82,7 +83,7 @@ public abstract class BaseSweeperTabFragment() { +class SweeperCloudFragment : BaseSweeperCloudTabFragment() { companion object { const val TAG = "SweeperFragment" @@ -80,8 +80,8 @@ class SweeperFragment : BaseSweeperTabFragment * 清扫车任务管理 */ -public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IMoGoAutopilotStatusListener, IMoGoSweeperFutianCleanSystemListener { - private final String TAG = SweeperTaskModel.class.getSimpleName(); - private static volatile SweeperTaskModel sInstance; +public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListener, IMoGoAutopilotStatusListener, IMoGoSweeperFutianCleanSystemListener { + private final String TAG = SweeperCloudTaskModel.class.getSimpleName(); + private static volatile SweeperCloudTaskModel sInstance; public double mLongitude = 0; public double mLatitude = 0; private Context mContext; @@ -112,18 +111,18 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM //用于对应messageType和reqNo绑定在一起,保证请求的reqNo和响应的reqNo一致 private HashMap msgTypeAndReqNo = new HashMap<>(); - public static SweeperTaskModel getInstance() { + public static SweeperCloudTaskModel getInstance() { if (sInstance == null) { - synchronized (SweeperTaskModel.class) { + synchronized (SweeperCloudTaskModel.class) { if (sInstance == null) { - sInstance = new SweeperTaskModel(); + sInstance = new SweeperCloudTaskModel(); } } } return sInstance; } - private SweeperTaskModel() { + private SweeperCloudTaskModel() { } diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/presenter/SweeperPresenter.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/presenter/SweeperCloudPresenter.java similarity index 82% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/presenter/SweeperPresenter.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/presenter/SweeperCloudPresenter.java index 896a46e293..2d98852ecf 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/presenter/SweeperPresenter.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/presenter/SweeperCloudPresenter.java @@ -15,8 +15,8 @@ import com.mogo.och.sweeper.cloud.callback.ISweeperCloudTaskCallback; import com.mogo.och.sweeper.cloud.callback.ISweeperControllerStatusCallback; import com.mogo.och.sweeper.common.callback.ISweeperTaskRouteCallback; import com.mogo.och.sweeper.common.database.bean.WeltDataBean; -import com.mogo.och.sweeper.cloud.fragment.SweeperFragment; -import com.mogo.och.sweeper.cloud.model.SweeperTaskModel; +import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment; +import com.mogo.och.sweeper.cloud.model.SweeperCloudTaskModel; import com.zhjt.mogo.adas.data.AiCloudTask; import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable; import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon; @@ -34,15 +34,15 @@ import chassis.ChassisStatesOuterClass; * * @author tongchenfei */ -public class SweeperPresenter extends Presenter +public class SweeperCloudPresenter extends Presenter implements ISweeperControllerStatusCallback, ISweeperCloudTaskCallback, ISweeperTaskRouteCallback { private static final String TAG = "SweeperPresenter"; - public SweeperPresenter(SweeperFragment view) { + public SweeperCloudPresenter(SweeperCloudFragment view) { super(view); - SweeperTaskModel.getInstance().init(); + SweeperCloudTaskModel.getInstance().init(); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); } @@ -55,18 +55,18 @@ public class SweeperPresenter extends Presenter @Override public void onDestroy(@NonNull LifecycleOwner owner) { super.onDestroy(owner); - SweeperTaskModel.getInstance().release(); + SweeperCloudTaskModel.getInstance().release(); releaseListener(); } public void initModelListener() { - SweeperTaskModel.getInstance().setControllerStatusCallback(this); - SweeperTaskModel.getInstance().setSweeperTaskCallback(this); + SweeperCloudTaskModel.getInstance().setControllerStatusCallback(this); + SweeperCloudTaskModel.getInstance().setSweeperTaskCallback(this); } public void releaseListener() { - SweeperTaskModel.getInstance().setControllerStatusCallback(null); - SweeperTaskModel.getInstance().setSweeperTaskCallback(null); + SweeperCloudTaskModel.getInstance().setControllerStatusCallback(null); + SweeperCloudTaskModel.getInstance().setSweeperTaskCallback(null); CallerSweeperFutianCleanSystemListenerManager.INSTANCE.removeListener(TAG); } @@ -94,28 +94,28 @@ public class SweeperPresenter extends Presenter * @return */ public int getAutopilotState() { - return SweeperTaskModel.getInstance().getAutopilotState(); + return SweeperCloudTaskModel.getInstance().getAutopilotState(); } /** * 清除路线缓存数据 */ public void clearRouteList() { - SweeperTaskModel.getInstance().clearRouteList(); + SweeperCloudTaskModel.getInstance().clearRouteList(); } /** * 设置当前子任务信息 */ public void setSubtask(String subTaskId, SweeperTask.TaskModel subTaskType, int currentLineId) { - SweeperTaskModel.getInstance().setSubtask(subTaskId, subTaskType, currentLineId); + SweeperCloudTaskModel.getInstance().setSubtask(subTaskId, subTaskType, currentLineId); } /** * 判断是否有任务数据 */ public void isHasTaskInfo(boolean isHasTaskInfo) { - SweeperTaskModel.getInstance().isHasTaskInfo(isHasTaskInfo); + SweeperCloudTaskModel.getInstance().isHasTaskInfo(isHasTaskInfo); } /** @@ -123,14 +123,14 @@ public class SweeperPresenter extends Presenter * @param preLineId */ public void setPreLineId(int preLineId) { - SweeperTaskModel.getInstance().setPreLineId(preLineId); + SweeperCloudTaskModel.getInstance().setPreLineId(preLineId); } /** * 获取当前正在执行的任务 */ public void getCurrentTask() { - SweeperTaskModel.getInstance().getCurrentTask(); + SweeperCloudTaskModel.getInstance().getCurrentTask(); } /** @@ -140,7 +140,7 @@ public class SweeperPresenter extends Presenter * @param code */ public void sendSweeperStartTaskResp(String taskId, SweeperTask.StartTaskCode code) { - SweeperTaskModel.getInstance().sendSweeperStartTaskResp(taskId, code); + SweeperCloudTaskModel.getInstance().sendSweeperStartTaskResp(taskId, code); } /** @@ -151,7 +151,7 @@ public class SweeperPresenter extends Presenter * @param code */ public void sendSweeperTaskConfirmResp(String taskId, String subTaskId, SweeperTaskConfirm.TaskConfirmCode code) { - SweeperTaskModel.getInstance().sendSweeperTaskConfirmResp(taskId, subTaskId, code); + SweeperCloudTaskModel.getInstance().sendSweeperTaskConfirmResp(taskId, subTaskId, code); } /** @@ -161,7 +161,7 @@ public class SweeperPresenter extends Presenter * @param code */ public void sendSweeperStopTaskResp(String taskId, SweeperTaskStop.StopTaskCode code) { - SweeperTaskModel.getInstance().sendSweeperStopTaskResp(taskId, code); + SweeperCloudTaskModel.getInstance().sendSweeperStopTaskResp(taskId, code); } /** @@ -172,7 +172,7 @@ public class SweeperPresenter extends Presenter * @param lineId */ public void sendSweeperAutopilotBootable(String taskId, String subTaskId, long lineId) { - SweeperTaskModel.getInstance().sendSweeperAutopilotBootable(taskId, subTaskId, lineId); + SweeperCloudTaskModel.getInstance().sendSweeperAutopilotBootable(taskId, subTaskId, lineId); } /** @@ -181,7 +181,7 @@ public class SweeperPresenter extends Presenter * @param code */ public void sendSweeperSuspendResumeTaskResp(String taskId, SweeperTaskCloudSuspendResume.Code code) { - SweeperTaskModel.getInstance().sendSweeperSuspendResumeTaskResp(taskId, code); + SweeperCloudTaskModel.getInstance().sendSweeperSuspendResumeTaskResp(taskId, code); } @Override diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/popwindow/SweeperOperatePanelPopWindow.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/popwindow/SweeperOperatePanelPopWindow.kt deleted file mode 100644 index 347a69610d..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/popwindow/SweeperOperatePanelPopWindow.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.mogo.och.sweeper.cloud.ui.popwindow - -import android.content.Context -import android.graphics.Color -import android.graphics.drawable.ColorDrawable -import android.view.LayoutInflater -import android.view.ViewGroup -import android.widget.PopupWindow -import chassis.ChassisStatesOuterClass -import com.mogo.och.sweeper.R -import com.mogo.och.sweeper.common.constant.OperateStateEnum -import com.mogo.och.sweeper.cloud.ui.SweeperOperatePanelView -import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback - -/** - * 清扫车面板浮窗 - */ -class SweeperOperatePanelPopWindow : PopupWindow{ - - private var mOperatePanelView: SweeperOperatePanelView? = null - - constructor(context: Context) : super(context) { - init(context) - } - private fun init(context: Context) { - setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) - mOperatePanelView = LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_popwindow_operate_panel, null) as SweeperOperatePanelView? - width = ViewGroup.LayoutParams.WRAP_CONTENT - height = ViewGroup.LayoutParams.WRAP_CONTENT - contentView = mOperatePanelView - } - - /** - * 设置清扫模式数据 - */ - fun setCleanSystemState( - cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates?, - cleaningModeStateCallback: ICleaningModeStateCallback - ) { - mOperatePanelView?.setSweeperFutianCleanSystemState(cleanSystemState, cleaningModeStateCallback) - } - - /**. - * - * 设置是否让popWindow消失 - */ - fun setIsOutsideTouchable(isOutsideTouchable:Boolean){ - this.isFocusable = isOutsideTouchable - this.isOutsideTouchable = isOutsideTouchable - this.isTouchable=isOutsideTouchable - } - - /** - * 设置是否展示状态同步中 - */ - fun showSyncing(operateState: OperateStateEnum){ - mOperatePanelView?.showSyncing(operateState) - } -} \ No newline at end of file diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperAnalyticsManager.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperAnalyticsManager.java deleted file mode 100644 index 16222c5f0f..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperAnalyticsManager.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.mogo.och.sweeper.cloud.util; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER; - -import android.os.Build; -import android.text.TextUtils; - -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -import com.mogo.commons.debug.DebugConfig; -import com.mogo.commons.utils.MogoAnalyticUtils; -import com.mogo.eagle.core.data.app.AppConfigInfo; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.DateTimeUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.sweeper.common.constant.SweeperConst; - -import java.util.HashMap; - -/** - * OCH sweeper埋点工具 - * - * Created on 2022/3/24 - */ -public class SweeperAnalyticsManager { - - private static final class SingletonHolder { - private static final SweeperAnalyticsManager INSTANCE = new SweeperAnalyticsManager(); - } - - public static SweeperAnalyticsManager getInstance() { - return SweeperAnalyticsManager.SingletonHolder.INSTANCE; - } - - private String mStartAutopilotKey; - private HashMap mStartAutopilotParams = new HashMap<>(); - - private Runnable startAutopilotRunnable = () -> { - // 15s内未开启,上报失败埋点 - triggerStartAutopilotFailureEvent("", "15s后app等待超时"); - }; - - public void triggerStartAutopilotFailureEventByAdas(String failCode, String failMsg){ - removeWaitingCallback(); - triggerStartAutopilotFailureEvent(failCode, failMsg); - } - - private void triggerStartAutopilotFailureEvent(String failCode, String failMsg){ - if (mStartAutopilotParams.isEmpty()) return; - - CallerLogger.e( M_SWEEPER + "triggerStartAutopilotFailureEvent", failMsg ); - - if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() != - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_FAILURE_CODE, failCode); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_FAILURE_MSG, failMsg); - } - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_RESULT - , CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - - MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); - - clearStartAutopilotParams();//清空参数数据,防止误传 - } - - private void removeWaitingCallback() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - if (startAutopilotRunnable != null) { - UiThreadHandler.removeCallbacks(startAutopilotRunnable); - } - } - } - - public void clearStartAutopilotFailureMSG(){ - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_FAILURE_CODE, ""); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_FAILURE_MSG, ""); - } - - private void clearStartAutopilotParams(){ - mStartAutopilotParams.clear(); - } - - /** - * 触发'开启自动驾驶'埋点流程 - * 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点 - * @param restart false(点击'滑动出发'启动)/true(接管后点击'自动驾驶'按钮启动) - * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) - */ - public void triggerStartAutopilotEvent( - boolean restart, boolean send, String startName, String endName, int lineId) { - mStartAutopilotKey = restart ? - SweeperConst.EVENT_KEY_RESTART_AUTOPILOT : SweeperConst.EVENT_KEY_START_SERVICE; - String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); - String dateTime = DateTimeUtils.getTimeText( - System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); - - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_SN, sn); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_ENV_ONLINE, - DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_TIME, dateTime); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_NAME, startName); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_END_NAME, endName); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_LINE_ID, lineId); - - if (send) { - if (mStartAutopilotParams.isEmpty()) return; - // 开启成功,上报埋点 - clearStartAutopilotFailureMSG(); - removeWaitingCallback(); - mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_RESULT, true); - MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); - - clearStartAutopilotParams();//清空参数数据,防止误传 - } else { - UiThreadHandler.postDelayed(startAutopilotRunnable, SweeperConst.LOOP_PERIOD_15S); - } - } - - /** - * 触发"无法开启自驾已知异常"埋点 - * @param startName - * @param endName - * @param lineId - */ - public void triggerUnableStartAPReasonEvent(String startName, String endName, int lineId, - String reason) { - String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); - String dateTime = DateTimeUtils.getTimeText( - System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); - - HashMap params = new HashMap<>(); - - params.put(SweeperConst.EVENT_PARAM_SN, sn); - params.put(SweeperConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); - params.put(SweeperConst.EVENT_PARAM_ENV_ONLINE, - DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); - params.put(SweeperConst.EVENT_PARAM_TIME, dateTime); - params.put(SweeperConst.EVENT_PARAM_START_NAME, startName); - params.put(SweeperConst.EVENT_PARAM_END_NAME, endName); - params.put(SweeperConst.EVENT_PARAM_LINE_ID, lineId); - params.put(SweeperConst.EVENT_PARAM_UNABLE_START_REASON, reason); - MogoAnalyticUtils.INSTANCE.track(SweeperConst.EVENT_KEY_AP_UNABLE_START_REASON, params); - } -} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperCloudTaskUtils.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperCloudTaskUtils.kt index 780a9b4be5..c759f2f649 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperCloudTaskUtils.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/util/SweeperCloudTaskUtils.kt @@ -15,10 +15,7 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.sweeper.R -import com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener -import com.mogo.och.sweeper.common.constant.SweeperConst -import com.mogo.och.sweeper.cloud.model.SweeperTaskModel -import com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog +import com.mogo.och.sweeper.cloud.model.SweeperCloudTaskModel import com.zhjt.mogo.adas.data.AiCloudTask import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon @@ -43,7 +40,7 @@ object SweeperCloudTaskUtils { // UiThreadHandler.getsUiHandler().postDelayed({ // mockSendCloudTaskInfo(MessageType.PadSendGetTaskReq) // },1000) - com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().getCurrentTask() + SweeperCloudTaskModel.getInstance().getCurrentTask() } /** @@ -150,7 +147,7 @@ object SweeperCloudTaskUtils { // subBuilder3.lineId = 126 // subBuilder3.lineName = "测试路线3" // builder.addSubList(subBuilder3.build()) - com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTask( + SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTask( messageType, "${System.currentTimeMillis()}", System.currentTimeMillis(), @@ -171,7 +168,7 @@ object SweeperCloudTaskUtils { builder.sn = getDriverSn() builder.taskId = "10" builder.subTaskId = "1" - com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTaskConfirm( + SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTaskConfirm( AiCloudTask.MessageType.CloudPushTaskConfirm, "${System.currentTimeMillis()}", System.currentTimeMillis(), builder.build() ) @@ -187,7 +184,7 @@ object SweeperCloudTaskUtils { builder.taskId = "10" builder.subTaskId = "1" builder.taskStatus = SweeperCommon.TaskStatus.RUNNING - com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStatus( + SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTaskStatus( AiCloudTask.MessageType.CloudPushTaskStatus, "${System.currentTimeMillis()}", System.currentTimeMillis(), builder.build() ) @@ -202,7 +199,7 @@ object SweeperCloudTaskUtils { builder.sn = getDriverSn() builder.taskId = "10" builder.type = SweeperTaskStop.StopTaskType.ADVANCE - com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStop( + SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTaskStop( AiCloudTask.MessageType.CloudPushTaskStop, "${System.currentTimeMillis()}", System.currentTimeMillis(), builder.build() ) @@ -218,7 +215,7 @@ object SweeperCloudTaskUtils { builder.taskId = "10" builder.taskStatus = SweeperCommon.TaskStatus.FINISHED builder.systemTime = System.currentTimeMillis() - com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus( + SweeperCloudTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus( AiCloudTask.MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}", System.currentTimeMillis(), builder.build() ) @@ -235,7 +232,7 @@ object SweeperCloudTaskUtils { builder.subTaskId = "1" builder.code = SweeperCommon.Code.SUCCEED UiThreadHandler.getsUiHandler().postDelayed({ - com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudBootable( + SweeperCloudTaskModel.getInstance().onSweeperFutianCloudBootable( AiCloudTask.MessageType.PadSendBootable, "${System.currentTimeMillis()}", System.currentTimeMillis(), builder.build() ) diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCurrentTaskInfoView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudCurrentTaskInfoView.kt similarity index 98% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCurrentTaskInfoView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudCurrentTaskInfoView.kt index f6f728f2e6..36e4d3b7f0 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCurrentTaskInfoView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudCurrentTaskInfoView.kt @@ -26,7 +26,7 @@ import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvTas /** * 清扫车当前任务信息展示 */ -class SweeperCurrentTaskInfoView : ConstraintLayout { +class SweeperCloudCurrentTaskInfoView : ConstraintLayout { private val TAG: String = "SweeperCurrentTaskInfoView" //当前任务操作菜单 @@ -116,7 +116,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { ) { // 更新 任务名称、任务时间 taskInfo?.apply { - this@SweeperCurrentTaskInfoView.listTask = subListList + this@SweeperCloudCurrentTaskInfoView.listTask = subListList tvTaskName.text = taskName val calendarStart = DateTimeUtil.formatLongToCalendar(taskStartTime) val calendarEnd = DateTimeUtil.formatLongToCalendar(taskEndTime) diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperTrafficDataView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudTrafficDataView.kt similarity index 99% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperTrafficDataView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudTrafficDataView.kt index 8dd0f48284..0a783ad174 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperTrafficDataView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudTrafficDataView.kt @@ -25,7 +25,7 @@ import kotlin.math.roundToInt /** * 车辆基本信息:方向盘下方的档位 转向灯 限速 速度 电量 水量 */ -class SweeperTrafficDataView : ConstraintLayout, +class SweeperCloudTrafficDataView : ConstraintLayout, IMoGoBatteryManagementSystemListener, IMoGoChassisLamplightListener, IMoGoChassisGearStateListener, diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperWorkModeView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudWorkModeView.kt similarity index 90% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperWorkModeView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudWorkModeView.kt index cc81ded731..80ef087ff8 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperWorkModeView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperCloudWorkModeView.kt @@ -12,18 +12,24 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.och.sweeper.R import com.mogo.och.sweeper.common.constant.OperateStateEnum import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil +import com.mogo.och.sweeper.common.view.SweeperOperatePanelPopWindow import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel -import kotlinx.android.synthetic.main.sweeper_work_mode.view.* +import kotlinx.android.synthetic.main.sweeper_work_mode.view.groupWorkModelPanel +import kotlinx.android.synthetic.main.sweeper_work_mode.view.ivOpenOperatePanel +import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvCleaningDirection +import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvCleaningIntensity +import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvCleaningMode +import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvNoDataDesc /** * 清扫车模式信息展示 */ -class SweeperWorkModeView : ConstraintLayout { +class SweeperCloudWorkModeView : ConstraintLayout { private var isSelectPureSweepMode: Boolean = false private val TAG = "SweeperWorkModeView" //清扫模式选择面板 - private var mOperatePanelPopWindow: com.mogo.och.sweeper.cloud.ui.popwindow.SweeperOperatePanelPopWindow? = null + private var mOperatePanelPopWindow: SweeperOperatePanelPopWindow? = null private var operateState: OperateStateEnum=OperateStateEnum.SYNCING_STATUS @@ -37,14 +43,14 @@ class SweeperWorkModeView : ConstraintLayout { private fun initView(context: Context) { LayoutInflater.from(context).inflate(R.layout.sweeper_work_mode, this) - mOperatePanelPopWindow = com.mogo.och.sweeper.cloud.ui.popwindow.SweeperOperatePanelPopWindow(context) + mOperatePanelPopWindow = SweeperOperatePanelPopWindow(context) setShowOrHideCleanSystemState(OperateStateEnum.SYNCING_STATUS,null) } /** * 设置view */ - fun setTrafficDataView(trafficDataView: com.mogo.och.sweeper.cloud.view.SweeperTrafficDataView){ + fun setTrafficDataView(trafficDataView: com.mogo.och.sweeper.cloud.view.SweeperCloudTrafficDataView){ //清扫模式选择面板打开关闭处理 ivOpenOperatePanel.setOnClickListener { if (mOperatePanelPopWindow?.isShowing != true) { diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperTrafficLightView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperTrafficLightView.kt deleted file mode 100644 index 2bcd6fb5fa..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/view/SweeperTrafficLightView.kt +++ /dev/null @@ -1,148 +0,0 @@ -package com.mogo.och.sweeper.cloud.view - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import android.widget.LinearLayout -import com.mogo.eagle.core.data.enums.DataSourceType -import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener -import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager -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.UiThreadHandler -import com.mogo.och.sweeper.R -import kotlinx.android.synthetic.main.sweeper_traffic_light_view.view.* - -/** - * 清扫车:红绿灯view- - * - * Created on 2022/3/29 - */ -class SweeperTrafficLightView @JvmOverloads constructor( - context: Context?, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr), IMoGoTrafficLightListener { - - companion object { - private const val TAG = "SweeperTrafficLightView" - } - - private var mCurrentLightId = TrafficLightEnum.BLACK - - init { - init(context) - } - - private fun init(context: Context?) { - LayoutInflater.from(context).inflate(R.layout.sweeper_traffic_light_view, this, true) - } - - override fun onAttachedToWindow() { - super.onAttachedToWindow() - CallerTrafficLightListenerManager.addListener(TAG, this) - } - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - CallerTrafficLightListenerManager.removeListener(TAG) - } - - /** - * 展示红绿灯预警 - * - * @param checkLightId 0-都是默认,1-红,2-黄,3-绿 - * @param lightSource 1:云端下发;2:自车感知 - */ - override fun showTrafficLight(checkLightId: TrafficLightEnum, lightSource: DataSourceType) { - mCurrentLightId = checkLightId - updateTrafficLightIcon(checkLightId) - CallerLogger.d(SceneConstant.M_SWEEPER + TAG,"灯态类型:"+checkLightId.name +" 灯态来源:"+DataSourceType.getName(lightSource)) - } - - /** - * 关闭红绿灯预警展示,并重制灯态 - */ - override fun disableTrafficLight() { - UiThreadHandler.post { - mCurrentLightId = TrafficLightEnum.BLACK - sweeper_traffic_light_iv.setImageResource(R.drawable.sweeper_light_gay_nor) - sweeper_traffic_light_time_tv.text = "" - this@SweeperTrafficLightView.visibility = VISIBLE - CallerLogger.d(SceneConstant.M_SWEEPER + TAG,"灯态类型:disableTrafficLight") - } - } - - /** - * @param redNum 红灯倒计时 - * @param yellowNum 黄灯倒计时 - * @param greenNum 绿灯倒计时 - */ - override fun changeCountdownTrafficLightNum(redNum: Int, yellowNum: Int, greenNum: Int) { - when (mCurrentLightId) { - TrafficLightEnum.RED -> changeCountdownRed(redNum) - TrafficLightEnum.YELLOW -> changeCountdownYellow(yellowNum) - TrafficLightEnum.GREEN -> changeCountdownGreen(greenNum) - else -> UiThreadHandler.post { sweeper_traffic_light_time_tv.text = "" } - } - } - - override fun changeCountdownRed(redNum: Int) { - UiThreadHandler.post { - if (redNum > 0) { - sweeper_traffic_light_time_tv.text = redNum.toString() - } else { - sweeper_traffic_light_time_tv.text = "" - } - } - } - - override fun changeCountdownGreen(greenNum: Int) { - UiThreadHandler.post { - if (greenNum > 0) { - sweeper_traffic_light_time_tv.text = greenNum.toString() - } else { - sweeper_traffic_light_time_tv.text = "" - } - } - } - - override fun changeCountdownYellow(yellowNum: Int) { - UiThreadHandler.post { - if (yellowNum > 0) { - sweeper_traffic_light_time_tv.text = yellowNum.toString() - } else { - sweeper_traffic_light_time_tv.text = "" - } - } - } - - /** - * 更新红绿灯icon - * - * @param lightId 0-都是默认,1-红,2-黄,3-绿 - */ - private fun updateTrafficLightIcon(lightId: TrafficLightEnum) { - UiThreadHandler.post { - when (lightId) { - TrafficLightEnum.RED -> { - sweeper_traffic_light_iv.setImageResource(R.drawable.sweeper_light_red_nor) - this@SweeperTrafficLightView.visibility = VISIBLE - } - TrafficLightEnum.YELLOW -> { - sweeper_traffic_light_iv.setImageResource(R.drawable.sweeper_lightyellow_nor) - this@SweeperTrafficLightView.visibility = VISIBLE - } - TrafficLightEnum.GREEN -> { - sweeper_traffic_light_iv.setImageResource(R.drawable.sweeper_light_green_nor) - this@SweeperTrafficLightView.visibility = VISIBLE - } - else -> { - sweeper_traffic_light_iv.setImageResource(R.drawable.sweeper_light_gay_nor) - this@SweeperTrafficLightView.visibility = VISIBLE - } - } - } - } -} \ No newline at end of file diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/IWeltMapSwitchToSmallCallback.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/callback/IWeltMapSwitchToSmallCallback.kt similarity index 62% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/IWeltMapSwitchToSmallCallback.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/callback/IWeltMapSwitchToSmallCallback.kt index c7aa05acf7..4f5497f4bd 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/IWeltMapSwitchToSmallCallback.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/callback/IWeltMapSwitchToSmallCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.operate.callback +package com.mogo.och.sweeper.common.callback interface IWeltMapSwitchToSmallCallback { fun onWeltMapSwitchToSmall() diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperUIFragment.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/BaseSweeperUIFragment.java similarity index 96% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperUIFragment.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/BaseSweeperUIFragment.java index 7fd6e16cdb..7c3a6360fa 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperUIFragment.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/BaseSweeperUIFragment.java @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.cloud.fragment; +package com.mogo.och.sweeper.common.fragment; import android.os.Bundle; import android.view.LayoutInflater; diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/SweeperAmapNaviFragment.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/SweeperAmapNaviFragment.java similarity index 99% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/SweeperAmapNaviFragment.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/SweeperAmapNaviFragment.java index f4aa6f4548..7db003e127 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/SweeperAmapNaviFragment.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/SweeperAmapNaviFragment.java @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.cloud.fragment; +package com.mogo.och.sweeper.common.fragment; import android.os.Bundle; import android.view.View; diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/WeltMapOverViewFragment.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/WeltMapOverViewFragment.kt similarity index 90% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/WeltMapOverViewFragment.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/WeltMapOverViewFragment.kt index 960deeb38d..7f73035010 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/WeltMapOverViewFragment.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/fragment/WeltMapOverViewFragment.kt @@ -1,12 +1,12 @@ -package com.mogo.och.sweeper.cloud.fragment +package com.mogo.och.sweeper.common.fragment import android.os.Bundle import com.amap.api.maps.model.LatLng import com.mogo.commons.mvp.BaseFragment import com.mogo.och.sweeper.R import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback +import com.mogo.och.sweeper.common.callback.IWeltMapSwitchToSmallCallback import com.mogo.och.sweeper.common.database.bean.WeltDataBean -import com.mogo.och.sweeper.operate.callback.IWeltMapSwitchToSmallCallback import kotlinx.android.synthetic.main.fragment_welt_map_overview.* import kotlinx.android.synthetic.main.sweeper_welt_map_overview.* @@ -15,7 +15,6 @@ import kotlinx.android.synthetic.main.sweeper_welt_map_overview.* */ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallback { private var mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback? = null - private var mFragment: SweeperFragment? = null override fun getLayoutId(): Int = R.layout.fragment_welt_map_overview override fun getTagName(): String { return "WeltMapOverViewFragment" @@ -27,10 +26,6 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba fun setWeltMapSwitchToSmallCallBack(iWeltMapSwitchToSmallCallback: IWeltMapSwitchToSmallCallback){ this.mIWeltMapSwitchToSmallCallBack=iWeltMapSwitchToSmallCallback } - fun setSweeperFragment(fragment: SweeperFragment){ - this.mFragment=fragment - mFragment?.setTaskDataToFragmentCallback(this) - } override fun initViews(savedInstanceState: Bundle?) { super.initViews(savedInstanceState) weltMapOverView?.onCreateView(savedInstanceState) @@ -71,8 +66,7 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba weltDataList: ArrayList?, latLngs: ArrayList?, routeList: ArrayList?, - progress:String?, - sweeperFragment: SweeperFragment + progress:String? ): WeltMapOverViewFragment { val args = Bundle() args.putSerializable("weltDataList", weltDataList) @@ -82,7 +76,6 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba args.putString("progress", progress) val fragment = WeltMapOverViewFragment() fragment.setWeltMapSwitchToSmallCallBack(mIWeltMapSwitchToSmallCallBack) - fragment.setSweeperFragment(sweeperFragment) fragment.arguments = args return fragment } diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/util/SweeperAnalyticsManager.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/util/SweeperAnalyticsManager.java similarity index 99% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/util/SweeperAnalyticsManager.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/util/SweeperAnalyticsManager.java index 0dfc9a3a90..5cde8aa5cd 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/util/SweeperAnalyticsManager.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/util/SweeperAnalyticsManager.java @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.operate.util; +package com.mogo.och.sweeper.common.util; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER; diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/dialog/SweeperManualDrivingDialog.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperManualDrivingDialog.kt similarity index 97% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/dialog/SweeperManualDrivingDialog.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperManualDrivingDialog.kt index 2666c1f0f1..cf843cdfde 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/dialog/SweeperManualDrivingDialog.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperManualDrivingDialog.kt @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.cloud.ui.dialog +package com.mogo.och.sweeper.common.view import android.content.Context import android.widget.TextView diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/dialog/SweeperNoTitleCommonDialog.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperNoTitleCommonDialog.kt similarity index 97% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/dialog/SweeperNoTitleCommonDialog.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperNoTitleCommonDialog.kt index c9b26a1de9..525ff7a64f 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/dialog/SweeperNoTitleCommonDialog.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperNoTitleCommonDialog.kt @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.cloud.ui.dialog +package com.mogo.och.sweeper.common.view import android.content.Context import android.widget.TextView diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/popwindow/SweeperOperatePanelPopWindow.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperOperatePanelPopWindow.kt similarity index 94% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/popwindow/SweeperOperatePanelPopWindow.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperOperatePanelPopWindow.kt index b0415e9913..941d55237e 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/popwindow/SweeperOperatePanelPopWindow.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperOperatePanelPopWindow.kt @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.operate.ui.popwindow +package com.mogo.och.sweeper.common.view import android.content.Context import android.graphics.Color @@ -10,7 +10,7 @@ import chassis.ChassisStatesOuterClass import com.mogo.och.sweeper.R import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback import com.mogo.och.sweeper.common.constant.OperateStateEnum -import com.mogo.och.sweeper.operate.ui.SweeperOperatePanelView +import com.mogo.och.sweeper.common.view.SweeperOperatePanelView /** * 清扫车面板浮窗 diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/SweeperOperatePanelView.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperOperatePanelView.java similarity index 99% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/SweeperOperatePanelView.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperOperatePanelView.java index e567508b12..92d9ee1cc4 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/ui/SweeperOperatePanelView.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperOperatePanelView.java @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.cloud.ui; +package com.mogo.och.sweeper.common.view; import android.animation.ObjectAnimator; import android.content.Context; diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperTrafficLightView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperTrafficLightView.kt similarity index 99% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperTrafficLightView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperTrafficLightView.kt index a2433f143c..7687ee8b8c 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperTrafficLightView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/common/view/SweeperTrafficLightView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.sweeper.operate.view +package com.mogo.och.sweeper.common.view import android.content.Context import android.util.AttributeSet diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/ISweeperTaskCallback.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/ISweeperOperateTaskCallback.kt similarity index 96% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/ISweeperTaskCallback.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/ISweeperOperateTaskCallback.kt index b43d46a728..f2951e5401 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/ISweeperTaskCallback.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/callback/ISweeperOperateTaskCallback.kt @@ -12,7 +12,7 @@ import java.util.ArrayList * @author: wangmingjun * @date: 2021/10/22 */ -interface ISweeperTaskCallback { +interface ISweeperOperateTaskCallback { /** * 获取主任务列表 */ diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/event/WeltDataEvent.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/event/WeltDataEvent.java deleted file mode 100644 index 774fdb071c..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/event/WeltDataEvent.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.mogo.och.sweeper.operate.event; - -import com.amap.api.maps.model.LatLng; -import com.mogo.och.sweeper.common.database.bean.WeltDataBean; - -import java.util.ArrayList; - -public class WeltDataEvent{ - private int type; //1.添加起点和终点 2.实时添加贴边数据 3.清除数据 4.任务进度 5:任务轨迹数据 - private ArrayList weltDataBeanList; - private ArrayList markers; - private String distance;//贴边数据 - private String progress;//任务进度 - - public WeltDataEvent(int type) { - this.type = type; - } - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - - public ArrayList getWeltDataBeanList() { - return weltDataBeanList; - } - - public void setWeltDataBeanList(ArrayList weltDataBeanList) { - this.weltDataBeanList = weltDataBeanList; - } - - public ArrayList getMarkers() { - return markers; - } - - public void setMarkers(ArrayList markers) { - this.markers = markers; - } - - public String getDistance() { - return distance; - } - - public void setDistance(String distance) { - this.distance = distance; - } - - public String getProgress() { - return progress; - } - - public void setProgress(String progress) { - this.progress = progress; - } -} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/BaseSweeperTabFragment.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/BaseSweeperOperateTabFragment.java similarity index 96% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/BaseSweeperTabFragment.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/BaseSweeperOperateTabFragment.java index 6a277033b4..e25b0fa61a 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/BaseSweeperTabFragment.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/BaseSweeperOperateTabFragment.java @@ -31,9 +31,11 @@ import com.mogo.och.common.module.map.AmapNaviToDestinationModel; import com.mogo.och.sweeper.R; import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean; import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback; -import com.mogo.och.sweeper.operate.callback.IWeltMapSwitchToSmallCallback; +import com.mogo.och.sweeper.common.callback.IWeltMapSwitchToSmallCallback; import com.mogo.och.sweeper.common.database.bean.WeltDataBean; -import com.mogo.och.sweeper.operate.view.SweeperTrafficDataView; +import com.mogo.och.sweeper.common.fragment.SweeperAmapNaviFragment; +import com.mogo.och.sweeper.common.fragment.WeltMapOverViewFragment; +import com.mogo.och.sweeper.operate.view.SweeperOperateTrafficDataView; import com.mogo.och.sweeper.common.view.WeltSmallMapView; import java.math.BigDecimal; @@ -52,7 +54,7 @@ import androidx.fragment.app.FragmentTransaction; * * @author tongchenfei */ -public abstract class BaseSweeperTabFragment> extends MvpFragment implements IMogoMapListener, +public abstract class BaseSweeperOperateTabFragment> extends MvpFragment implements IMogoMapListener, View.OnClickListener, IWeltMapSwitchToSmallCallback, View.OnTouchListener { private static final String TAG = "BaseSweeperTabFragment"; @@ -69,7 +71,7 @@ public abstract class BaseSweeperTabFragment - * 0xFF, 无对应车道 - * 0, 直行 - * 1, 左转 - * 2, 直行+左转 - * 3, 右转 - * 4, 直行+右转 - * 5, 左掉头 - * 6, 左转+右转 - * 7, 直行+左转+右转 - * 8, 右掉头 - * 9, 直行+左掉头 - * 10, 直行+右掉头 - * 11, 左转+左掉头 - * 12, 右转+右掉头 - * 13, 直行+扩展 - * 14, 左转+左掉头+扩展 - * 15, 保留 - * 16, 直行+左转+左掉头 - * 17, 右转+左掉头 - * 18, 左转+右转+左掉头 - * 19, 直行+右转+左掉头 - * 20, 左转+右掉头 - * 21, 公交车道 - * 22, 空车道 - * 23 可变车道 - */ - - String[] array = { - "直行车道" - , "左转车道" - , "左转或直行车道" - , "右转车道" - , "右转或直行车道" - , "左掉头车道" - , "左转或者右转车道" - , " 左转或右转或直行车道" - , "右转掉头车道" - , "直行或左转掉头车道" - , "直行或右转掉头车道" - , "左转或左掉头车道" - , "右转或右掉头车道" - , "直行并且车道扩展" - , "左转+左掉头+扩展" - , "不可以选择该车道" - , "直行+左转+左掉头车道" - , "右转+左掉头" - , "左转+右转+左掉头" - , "直行+右转+左掉头" - , "左转+右掉头" - , "公交车道" - , "空车道" - , "可变车道" - }; - - String[] actions = { - "直行" - , "左转" - , "左转或直行" - , "右转" - , "右转或这行" - , "左掉头" - , "左转或者右转" - , " 左转或右转或直行" - , "右转掉头" - , "直行或左转掉头" - , "直行或右转掉头" - , "左转或左掉头" - , "右转或右掉头" - , "直行并且车道扩展" - , "左转+左掉头+扩展" - , "不可以选择" - , "直行+左转+左掉头" - , "右转+左掉头" - , "左转+右转+左掉头" - , "直行+右转+左掉头" - , "左转+右掉头" - , "公交车道" - , "空车道" - , "可变车道" - }; -} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/SweeperFragment.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/SweeperOperateFragment.kt similarity index 96% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/SweeperFragment.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/SweeperOperateFragment.kt index af40f0b6f0..0abedd0289 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/SweeperFragment.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/fragment/SweeperOperateFragment.kt @@ -17,7 +17,6 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.sweeper.R -import com.mogo.och.sweeper.operate.bean.* import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum import com.mogo.och.sweeper.operate.constant.TaskStatusEnum import com.mogo.och.sweeper.common.database.MyDataBase @@ -25,14 +24,14 @@ import com.mogo.och.sweeper.operate.bean.SubInfo import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean -import com.mogo.och.sweeper.operate.presenter.SweeperPresenter +import com.mogo.och.sweeper.operate.presenter.SweeperOperatePresenter import com.mogo.och.sweeper.operate.ui.adapter.TaskListAdapter -import com.mogo.och.sweeper.operate.ui.dialog.SweeperManualDrivingDialog -import com.mogo.och.sweeper.operate.ui.dialog.SweeperNoTitleCommonDialog +import com.mogo.och.sweeper.common.view.SweeperManualDrivingDialog +import com.mogo.och.sweeper.common.view.SweeperNoTitleCommonDialog import com.mogo.och.sweeper.operate.ui.popwindow.MenuPopWindow -import kotlinx.android.synthetic.main.fragment_och_sweeper.* -import kotlinx.android.synthetic.main.sweeper_current_task_info.view.* -import kotlinx.android.synthetic.main.sweeper_no_data_common_view.* +import kotlinx.android.synthetic.main.fragment_och_sweeper_operate.* +import kotlinx.android.synthetic.main.sweeper_operate_current_task_info.view.* +import kotlinx.android.synthetic.main.sweeper_operate_no_data_common_view.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlin.math.roundToInt @@ -40,7 +39,7 @@ import kotlin.math.roundToInt /** * 清扫车主界面 */ -class SweeperFragment : BaseSweeperTabFragment(), MenuPopWindow.OnMenuItemOnClickListener { +class SweeperOperateFragment : BaseSweeperOperateTabFragment(), MenuPopWindow.OnMenuItemOnClickListener { companion object { const val TAG = "SweeperFragment" @@ -84,8 +83,8 @@ class SweeperFragment : BaseSweeperTabFragment - val latLng = bundle.getParcelable("subTaskEndCoordinates") - val weltDataList = bundle.getSerializable("weltDataList") as? ArrayList - val routeList = bundle.getSerializable("routeList") as? ArrayList - val progress = bundle.getString("progress") - routeList?.let { - weltMapOverView?.setRouteList(it) - } - latLng?.let { - setCurrentTaskCoordinatesLatLng(it) - } - latLngs?.let { - setTaskListCoordinatesLatLng(it) - } - weltDataList?.let { - setWeltData(it,"0.0cm") - } - progress?.let { - weltMapOverView?.setProgress(progress) - } - } - - } - - companion object { - @JvmStatic - fun newInstance( - mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback, - mCurrentTaskEndStation:LatLng?, - weltDataList: ArrayList?, - latLngs: ArrayList?, - routeList: ArrayList?, - progress:String?, - sweeperFragment: SweeperFragment - ): WeltMapOverViewFragment { - val args = Bundle() - args.putSerializable("weltDataList", weltDataList) - args.putSerializable("subTaskCoordinates", latLngs) - args.putParcelable("subTaskEndCoordinates", mCurrentTaskEndStation) - args.putSerializable("routeList", routeList) - args.putString("progress", progress) - val fragment = WeltMapOverViewFragment() - fragment.setWeltMapSwitchToSmallCallBack(mIWeltMapSwitchToSmallCallBack) - fragment.setSweeperFragment(sweeperFragment) - fragment.arguments = args - return fragment - } - } - - override fun onPause() { - super.onPause() - weltMapOverView?.onPause() - } - - override fun onResume() { - super.onResume() - weltMapOverView?.onResume() - } - - override fun onDestroy() { - super.onDestroy() - weltMapOverView?.onDestroy() - } - override fun setTaskListCoordinatesLatLng(coordinatesLatLng: java.util.ArrayList) { - weltMapOverView?.setTaskListCoordinatesLatLng(coordinatesLatLng) - } - - override fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng) { - weltMapOverView?.setCurrentTaskCoordinatesLatLng(coordinatesLatLng) - } - - override fun clearAllMarkerAndPolyline() { - weltMapOverView?.clearAllMarkerAndPolyline() - } - - override fun setProgress(progress: String) { - weltMapOverView?.setProgress(progress) - } - - override fun setRouteList(routeList: java.util.ArrayList) { - weltMapOverView?.setRouteList(routeList) - } - - override fun setWeltData(weltDatas: java.util.ArrayList?, distance: String) { - weltMapOverView?.setWeltData(weltDatas,true,distance) - } -} \ No newline at end of file diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperTaskModel.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java similarity index 95% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperTaskModel.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java index a6dd43b24e..bda98d4dc9 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperTaskModel.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java @@ -48,12 +48,12 @@ import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean; import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean; import com.mogo.och.sweeper.common.callback.ISweeperADASStatusCallback; import com.mogo.och.sweeper.operate.callback.ISweeperControllerStatusCallback; -import com.mogo.och.sweeper.operate.callback.ISweeperTaskCallback; +import com.mogo.och.sweeper.operate.callback.ISweeperOperateTaskCallback; import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum; import com.mogo.och.sweeper.common.constant.SweeperConst; import com.mogo.och.sweeper.operate.constant.TaskStatusEnum; -import com.mogo.och.sweeper.operate.net.SweeperServiceManager; -import com.mogo.och.sweeper.operate.util.SweeperAnalyticsManager; +import com.mogo.och.sweeper.operate.net.SweeperOperateServiceManager; +import com.mogo.och.sweeper.common.util.SweeperAnalyticsManager; import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager; import org.jetbrains.annotations.NotNull; @@ -73,9 +73,9 @@ import mogo.telematics.pad.MessagePad; *

* 清扫车任务管理 */ -public class SweeperTaskModel { - private final String TAG = SweeperTaskModel.class.getSimpleName(); - private static volatile SweeperTaskModel sInstance; +public class SweeperOperateTaskModel { + private final String TAG = SweeperOperateTaskModel.class.getSimpleName(); + private static volatile SweeperOperateTaskModel sInstance; public double mLongitude = 0; public double mLatitude = 0; private Context mContext; @@ -83,7 +83,7 @@ public class SweeperTaskModel { private static final int VEHICLE_TYPE = 10; private ISweeperControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等 private ISweeperADASStatusCallback mADASStatusCallback; - private ISweeperTaskCallback mSweeperTaskCallback; + private ISweeperOperateTaskCallback mSweeperTaskCallback; ArrayList points = new ArrayList<>();//全路径信息 //当前子任务详情信息包括轨迹文件信息 private SweeperSubTaskDetailBean mCurrentSubTaskDetail; @@ -105,18 +105,18 @@ public class SweeperTaskModel { //自动驾驶状态 private int mAutopilotState = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE; - public static SweeperTaskModel getInstance() { + public static SweeperOperateTaskModel getInstance() { if (sInstance == null) { - synchronized (SweeperTaskModel.class) { + synchronized (SweeperOperateTaskModel.class) { if (sInstance == null) { - sInstance = new SweeperTaskModel(); + sInstance = new SweeperOperateTaskModel(); } } } return sInstance; } - private SweeperTaskModel() { + private SweeperOperateTaskModel() { } @@ -183,7 +183,7 @@ public class SweeperTaskModel { this.mControllerStatusCallback = callback; } - public void setSweeperTaskCallback(ISweeperTaskCallback callback) { + public void setSweeperTaskCallback(ISweeperOperateTaskCallback callback) { this.mSweeperTaskCallback = callback; } @@ -538,7 +538,7 @@ public class SweeperTaskModel { * 获取当前正在执行的任务 */ public void getCurrentTask() { - SweeperServiceManager.getCurrentTask(mContext, new OchCommonServiceCallback>() { + SweeperOperateServiceManager.getCurrentTask(mContext, new OchCommonServiceCallback>() { @Override public void onSuccess(BaseResponse data) { CallerLogger.d(M_SWEEPER + TAG, "getCurrentTask:" + GsonUtil.jsonFromObject(data)); @@ -578,7 +578,7 @@ public class SweeperTaskModel { * 获取主任务列表 */ public void getMainTaskList(boolean refresh) { - SweeperServiceManager.getMainTaskList(mContext, new OchCommonServiceCallback>>() { + SweeperOperateServiceManager.getMainTaskList(mContext, new OchCommonServiceCallback>>() { @Override public void onSuccess(BaseResponse> data) { CallerLogger.d(M_SWEEPER + TAG, "getMainTaskList:" + GsonUtil.jsonFromObject(data)); @@ -614,7 +614,7 @@ public class SweeperTaskModel { * 获取子任务列表 */ public void getSubTaskList(int taskId, SweeperSubTaskBean sweeperSubTaskBean) { - SweeperServiceManager.getSubTaskList(taskId, mContext, new OchCommonServiceCallback>>() { + SweeperOperateServiceManager.getSubTaskList(taskId, mContext, new OchCommonServiceCallback>>() { @Override public void onSuccess(BaseResponse> data) { CallerLogger.d(M_SWEEPER + TAG, "getSubTaskList:" + GsonUtil.jsonFromObject(data)); @@ -655,7 +655,7 @@ public class SweeperTaskModel { * 获取子任务详情包括轨迹文件信息 */ public void getSubTaskDetail(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType, boolean isStartSubtask) { - SweeperServiceManager.getSubTaskDetail(subTaskId, mContext, new OchCommonServiceCallback>() { + SweeperOperateServiceManager.getSubTaskDetail(subTaskId, mContext, new OchCommonServiceCallback>() { @Override public void onSuccess(BaseResponse data) { CallerLogger.d(M_SWEEPER + TAG, "getSubTaskDetail:" + GsonUtil.jsonFromObject(data)); @@ -714,7 +714,7 @@ public class SweeperTaskModel { * 子任务开始上报 */ public void subTaskStart(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType) { - SweeperServiceManager.subTaskStart(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback>() { + SweeperOperateServiceManager.subTaskStart(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback>() { @Override public void onSuccess(BaseResponse data) { CallerLogger.d(M_SWEEPER + TAG, "subTaskStart:" + GsonUtil.jsonFromObject(data)); @@ -725,7 +725,7 @@ public class SweeperTaskModel { mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.START_SUBTASK, false); if (subTaskType == SubTaskTypeEnum.AUTOPILOT_SUBTYPE) {//如果是自动驾驶子任务子开启自驾 if (FunctionBuildConfig.isDemoMode) {//美化模式开启时 - SweeperTaskModel.getInstance().startBeautificationMode(); + SweeperOperateTaskModel.getInstance().startBeautificationMode(); } //ÏstartAutopilot(false); } else { @@ -764,7 +764,7 @@ public class SweeperTaskModel { * 子任务结束上报 */ public void subTaskEnd(boolean isFirst, boolean isEnd, int subTaskId) { - SweeperServiceManager.subTaskEnd(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback>() { + SweeperOperateServiceManager.subTaskEnd(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback>() { @Override public void onSuccess(BaseResponse data) { CallerLogger.d(M_SWEEPER + TAG, "subTaskEnd:" + @@ -777,7 +777,7 @@ public class SweeperTaskModel { } if (isEnd) { if (FunctionBuildConfig.isDemoMode) {//美化模式开启时 - SweeperTaskModel.getInstance().closeBeautificationMode(); + SweeperOperateTaskModel.getInstance().closeBeautificationMode(); } clearAutopilotControlParameters(); //结束自动驾驶 @@ -815,7 +815,7 @@ public class SweeperTaskModel { * 子任务跳过上报 */ public void subTaskSkip(boolean isFirst, boolean isEnd, int subTaskId) { - SweeperServiceManager.subTaskSkip(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback>() { + SweeperOperateServiceManager.subTaskSkip(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback>() { @Override public void onSuccess(BaseResponse data) { CallerLogger.d(M_SWEEPER + TAG, "subTaskSkip:" + @@ -856,7 +856,7 @@ public class SweeperTaskModel { * 主任务重置 */ public void mainTaskReset(int taskId) { - SweeperServiceManager.mainTaskReset(taskId, mContext, new OchCommonServiceCallback>() { + SweeperOperateServiceManager.mainTaskReset(taskId, mContext, new OchCommonServiceCallback>() { @Override public void onSuccess(BaseResponse data) { CallerLogger.d(M_SWEEPER + TAG, "mainTaskReset:" + GsonUtil.jsonFromObject(data)); diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/ISweeperApiService.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/ISweeperOperateApiService.java similarity index 98% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/ISweeperApiService.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/ISweeperOperateApiService.java index 1bf2476c8e..ab78c8e5ed 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/ISweeperApiService.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/ISweeperOperateApiService.java @@ -21,7 +21,7 @@ import retrofit2.http.QueryMap; /** * 清扫车相关接口 */ -public interface ISweeperApiService { +public interface ISweeperOperateApiService { /** * 获取当前正在执行的任务 * @param appId diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperServiceManager.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperOperateServiceManager.kt similarity index 95% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperServiceManager.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperOperateServiceManager.kt index 5596f0cfb0..35882d1427 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperServiceManager.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperOperateServiceManager.kt @@ -10,7 +10,7 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry -import com.mogo.och.sweeper.operate.model.SweeperTaskModel +import com.mogo.och.sweeper.operate.model.SweeperOperateTaskModel import com.mogo.och.sweeper.operate.bean.BaseResponse import com.mogo.och.sweeper.operate.bean.SubInfo import com.mogo.och.sweeper.operate.bean.SubStartRequest @@ -18,10 +18,10 @@ import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean -object SweeperServiceManager { - private val TAG = SweeperTaskModel::class.java.simpleName - private val mService: ISweeperApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getSweeperUrl()).create( - ISweeperApiService::class.java +object SweeperOperateServiceManager { + private val TAG = SweeperOperateTaskModel::class.java.simpleName + private val mService: ISweeperOperateApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getSweeperUrl()).create( + ISweeperOperateApiService::class.java ) /** diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperPresenter.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java similarity index 84% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperPresenter.java rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java index a4b1a141f4..37ba82a05b 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperPresenter.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java @@ -29,15 +29,15 @@ import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean; import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean; import com.mogo.och.sweeper.common.callback.ISweeperADASStatusCallback; import com.mogo.och.sweeper.operate.callback.ISweeperControllerStatusCallback; -import com.mogo.och.sweeper.operate.callback.ISweeperTaskCallback; +import com.mogo.och.sweeper.operate.callback.ISweeperOperateTaskCallback; import com.mogo.och.sweeper.common.callback.ISweeperTaskRouteCallback; import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum; import com.mogo.och.sweeper.common.constant.SweeperConst; import com.mogo.och.sweeper.operate.constant.TaskStatusEnum; import com.mogo.och.sweeper.common.database.MyDataBase; import com.mogo.och.sweeper.common.database.bean.WeltDataBean; -import com.mogo.och.sweeper.operate.fragment.SweeperFragment; -import com.mogo.och.sweeper.operate.model.SweeperTaskModel; +import com.mogo.och.sweeper.operate.fragment.SweeperOperateFragment; +import com.mogo.och.sweeper.operate.model.SweeperOperateTaskModel; import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil; import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager; @@ -60,9 +60,9 @@ import system_master.SystemStatusInfo; * * @author tongchenfei */ -public class SweeperPresenter extends Presenter +public class SweeperOperatePresenter extends Presenter implements IMoGoAutopilotStatusListener, ISweeperControllerStatusCallback, ISweeperADASStatusCallback, - IMoGoSweeperFutianCleanSystemListener, ISweeperTaskCallback, ISweeperTaskRouteCallback { + IMoGoSweeperFutianCleanSystemListener, ISweeperOperateTaskCallback, ISweeperTaskRouteCallback { private static final String TAG = "SweeperPresenter"; //当前子任务id @@ -80,13 +80,13 @@ public class SweeperPresenter extends Presenter private String longitude;//经度 private String latitude;//纬度 - public SweeperPresenter(SweeperFragment view) { + public SweeperOperatePresenter(SweeperOperateFragment view) { super(view); //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this); //清扫车模式和贴边数据回调监听 CallerSweeperFutianCleanSystemListenerManager.INSTANCE.addListener(TAG, this); - SweeperTaskModel.getInstance().init(); + SweeperOperateTaskModel.getInstance().init(); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); } @@ -99,20 +99,20 @@ public class SweeperPresenter extends Presenter @Override public void onDestroy(@NonNull LifecycleOwner owner) { super.onDestroy(owner); - SweeperTaskModel.getInstance().release(); + SweeperOperateTaskModel.getInstance().release(); releaseListener(); } public void initModelListener() { - SweeperTaskModel.getInstance().setControllerStatusCallback(this); - SweeperTaskModel.getInstance().setAdasStatusCallback(this); - SweeperTaskModel.getInstance().setSweeperTaskCallback(this); + SweeperOperateTaskModel.getInstance().setControllerStatusCallback(this); + SweeperOperateTaskModel.getInstance().setAdasStatusCallback(this); + SweeperOperateTaskModel.getInstance().setSweeperTaskCallback(this); } public void releaseListener() { - SweeperTaskModel.getInstance().setControllerStatusCallback(null); - SweeperTaskModel.getInstance().setAdasStatusCallback(null); - SweeperTaskModel.getInstance().setSweeperTaskCallback(null); + SweeperOperateTaskModel.getInstance().setControllerStatusCallback(null); + SweeperOperateTaskModel.getInstance().setAdasStatusCallback(null); + SweeperOperateTaskModel.getInstance().setSweeperTaskCallback(null); CallerSweeperFutianCleanSystemListenerManager.INSTANCE.removeListener(TAG); } @@ -126,34 +126,34 @@ public class SweeperPresenter extends Presenter @Override public void onAutopilotStatusResponse(int state) { - SweeperTaskModel.getInstance().setAutopilotState(state); + SweeperOperateTaskModel.getInstance().setAutopilotState(state); ThreadUtils.runOnUiThread(() -> mView.startAutoBtn(state)); switch (state) { case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE://不可自动驾驶 break; case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE://人工驾驶 - if (SweeperTaskModel.getInstance().getSubWorking()) { + if (SweeperOperateTaskModel.getInstance().getSubWorking()) { if (FunctionBuildConfig.isDemoMode) {//美化模式开启时 - SweeperTaskModel.getInstance().startBeautificationMode(); + SweeperOperateTaskModel.getInstance().startBeautificationMode(); } } else { if (FunctionBuildConfig.isDemoMode) {//美化模式开启时 //关闭美化模式 - SweeperTaskModel.getInstance().closeBeautificationMode(); + SweeperOperateTaskModel.getInstance().closeBeautificationMode(); } } break; case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING://自动驾驶中 - SweeperTaskModel.getInstance().triggerStartServiceEvent( - SweeperTaskModel.getInstance().isRestartAutopilot(), true); - if (SweeperTaskModel.getInstance().getSubWorking()) { + SweeperOperateTaskModel.getInstance().triggerStartServiceEvent( + SweeperOperateTaskModel.getInstance().isRestartAutopilot(), true); + if (SweeperOperateTaskModel.getInstance().getSubWorking()) { if (FunctionBuildConfig.isDemoMode) {//美化模式开启时 - SweeperTaskModel.getInstance().startBeautificationMode(); + SweeperOperateTaskModel.getInstance().startBeautificationMode(); } } break; case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING://平行驾驶 - if (SweeperTaskModel.getInstance().getSubWorking()) { + if (SweeperOperateTaskModel.getInstance().getSubWorking()) { if (FunctionBuildConfig.isDemoMode) {//美化模式开启时 FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;//是否强制绘制引导线 CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾 @@ -161,7 +161,7 @@ public class SweeperPresenter extends Presenter } else { if (FunctionBuildConfig.isDemoMode) {//美化模式开启时 //关闭美化模式 - SweeperTaskModel.getInstance().closeBeautificationMode(); + SweeperOperateTaskModel.getInstance().closeBeautificationMode(); } } break; @@ -191,10 +191,10 @@ public class SweeperPresenter extends Presenter * 清除路线缓存数据 */ public void clearRouteList(){ - SweeperTaskModel.getInstance().clearRouteList(); + SweeperOperateTaskModel.getInstance().clearRouteList(); } public void startAutopilot() { - SweeperTaskModel.getInstance().startAutopilot(); + SweeperOperateTaskModel.getInstance().startAutopilot(); } /** @@ -202,10 +202,10 @@ public class SweeperPresenter extends Presenter */ public void setSubtask(boolean isFirstSubtask, boolean isLastSubtask, int subTaskId,int subTaskType) { this.mSubTaskId = subTaskId; - SweeperTaskModel.getInstance().setSubtask(isFirstSubtask, isLastSubtask, subTaskId,subTaskType); + SweeperOperateTaskModel.getInstance().setSubtask(isFirstSubtask, isLastSubtask, subTaskId,subTaskType); } public void setWorking(boolean isWorking){ - SweeperTaskModel.getInstance().setWorking(isWorking); + SweeperOperateTaskModel.getInstance().setWorking(isWorking); } /** * 测试使用 @@ -236,7 +236,7 @@ public class SweeperPresenter extends Presenter @Override public void onAutopilotArriveAtStation(@Nullable MessagePad.ArrivalNotification arrivalNotification) { - SweeperTaskModel.getInstance().onArriveTaskEnd(arrivalNotification); + SweeperOperateTaskModel.getInstance().onArriveTaskEnd(arrivalNotification); } @Override @@ -248,7 +248,7 @@ public class SweeperPresenter extends Presenter } public void onArriveTaskEnd(@Nullable MessagePad.ArrivalNotification arrivalNotification) { - SweeperTaskModel.getInstance().onArriveTaskEnd(arrivalNotification); + SweeperOperateTaskModel.getInstance().onArriveTaskEnd(arrivalNotification); } @Override @@ -370,28 +370,28 @@ public class SweeperPresenter extends Presenter * 获取当前正在执行的任务 */ public void getCurrentTask() { - SweeperTaskModel.getInstance().getCurrentTask(); + SweeperOperateTaskModel.getInstance().getCurrentTask(); } /** * 获取主任务列表 */ public void getMainTaskList(boolean refresh) { - SweeperTaskModel.getInstance().getMainTaskList(refresh); + SweeperOperateTaskModel.getInstance().getMainTaskList(refresh); } /** * 获取子任务列表 */ public void getSubTaskList(int taskId, SweeperSubTaskBean sweeperSubTaskBean) { - SweeperTaskModel.getInstance().getSubTaskList(taskId, sweeperSubTaskBean); + SweeperOperateTaskModel.getInstance().getSubTaskList(taskId, sweeperSubTaskBean); } /** * 获取子任务详情包括轨迹文件信息 */ public void getSubTaskDetail(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType, boolean isStartSubtask) { - SweeperTaskModel.getInstance().getSubTaskDetail(isFirst, isEnd, subTaskId, subTaskType, isStartSubtask); + SweeperOperateTaskModel.getInstance().getSubTaskDetail(isFirst, isEnd, subTaskId, subTaskType, isStartSubtask); } /** @@ -399,7 +399,7 @@ public class SweeperPresenter extends Presenter */ public void startTask(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType, int subTaskStatus) { if (SubTaskTypeEnum.AUTOPILOT_SUBTYPE.getCode() == subTaskStatus) { - SweeperTaskModel.getInstance().subTaskStart(isFirst, isEnd, subTaskId, subTaskType); + SweeperOperateTaskModel.getInstance().subTaskStart(isFirst, isEnd, subTaskId, subTaskType); } } @@ -407,21 +407,21 @@ public class SweeperPresenter extends Presenter * 子任务结束上报 */ public void subTaskEnd(boolean isFirst, boolean isEnd, int subTaskId) { - SweeperTaskModel.getInstance().subTaskEnd(isFirst, isEnd, subTaskId); + SweeperOperateTaskModel.getInstance().subTaskEnd(isFirst, isEnd, subTaskId); } /** * 子任务跳过上报 */ public void subTaskSkip(boolean isFirst, boolean isEnd, int subTaskId) { - SweeperTaskModel.getInstance().subTaskSkip(isFirst, isEnd, subTaskId); + SweeperOperateTaskModel.getInstance().subTaskSkip(isFirst, isEnd, subTaskId); } /** * 主任务重置 */ public void mainTaskReset(int taskId) { - SweeperTaskModel.getInstance().mainTaskReset(taskId); + SweeperOperateTaskModel.getInstance().mainTaskReset(taskId); } @Override diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/SweeperOperatePanelView.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/SweeperOperatePanelView.java deleted file mode 100644 index e0976ad50a..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/SweeperOperatePanelView.java +++ /dev/null @@ -1,1094 +0,0 @@ -package com.mogo.och.sweeper.operate.ui; - -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_BOTH_SIDE; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_LEFT_SIDE; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_RIGHT_SIDE; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRAND; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRONG; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_DRAW; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_SWEEP; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_WASH; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_WASH_SWEEP; - -import android.animation.ObjectAnimator; -import android.content.Context; -import android.os.Handler; -import android.os.Message; -import android.util.AttributeSet; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.animation.LinearInterpolator; -import android.widget.CheckedTextView; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; -import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.sweeper.R; -import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback; -import com.mogo.och.sweeper.common.constant.OperateStateEnum; -import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil; -import com.mogo.och.sweeper.common.view.NoTouchConstraintLayout; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -import chassis.ChassisStatesOuterClass; -import chassis.SpecialVehicleTaskCmdOuterClass; - -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_CLOSE; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_CLOSE; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_WORK_CLOSE; -import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_WORK_OPEN; - -/** - * 清扫车操作面板View - */ -public class SweeperOperatePanelView extends LinearLayout { - - private static final String TAG = "SweeperOperatePanelView"; - private static final int CMD_EXECUTE_TIMEOUT_SECONDS = 30; - private static final int CMD_EXECUTE_MOCK_SUCCESS_SECONDS = 3; - private boolean isFirst = false; - - CheckedTextView mBtnCleanWorkOpenClose;//开关 - CheckedTextView mBtnCleanModePureSweep;//纯扫 - CheckedTextView mBtnCleanModePureWash;//纯洗 - CheckedTextView mBtnCleanModeSweepWash;//洗扫 - CheckedTextView mBtnCleanModePureAbsorption;//纯吸 - CheckedTextView mBtnCleanDirectionLeftSide;//左侧 - CheckedTextView mBtnCleanDirectionRightSide;//右侧 - CheckedTextView mBtnCleanDirectionBothSide;//两侧 - CheckedTextView mBtnCleanIntensityStandard;//普通 - CheckedTextView mBtnCleanIntensityStrong;//强力 - FrameLayout mLoadingContainer;//loading container - TextView mLoadingHint;//loading 文本提示 - ImageView mLoadingView;//loading 转圈动画 - NoTouchConstraintLayout mWorkmodePanelRootView; - - // 作业模式相关操作按钮的id - List cleanModeBtnViewIds = Arrays.asList( - R.id.btn_clean_mode_pure_sweep, - R.id.btn_clean_mode_pure_wash, - R.id.btn_clean_mode_sweep_wash, - R.id.btn_clean_mode_pure_absorption); - - // 作业模式相关操作按钮,对应命令参数值 - HashMap cleanModeBtnAndCmdValueMap = new HashMap() { - { - put(R.id.btn_clean_mode_pure_sweep, CLEAN_MODE_PURE_SWEEP); - put(R.id.btn_clean_mode_pure_wash, CLEAN_MODE_PURE_WASH); - put(R.id.btn_clean_mode_sweep_wash, CLEAN_MODE_WASH_SWEEP); - put(R.id.btn_clean_mode_pure_absorption, CLEAN_MODE_PURE_DRAW); - } - }; - - // 清扫方向相关操作按钮的id - List cleanDirectionBtnViewIds = Arrays.asList( - R.id.btn_clean_direction_left_side, - R.id.btn_clean_direction_right_side, - R.id.btn_clean_direction_both_side); - - // 清扫方向相关按钮操作,对应命令参数值 - HashMap cleanDirectionBtnAndCmdValueMap = new HashMap() { - { - put(R.id.btn_clean_direction_left_side, CLEAN_DIRECTION_LEFT_SIDE); - put(R.id.btn_clean_direction_right_side, CLEAN_DIRECTION_RIGHT_SIDE); - put(R.id.btn_clean_direction_both_side, CLEAN_DIRECTION_BOTH_SIDE); - } - }; - - // 作业强度相关按钮操作 - List cleanIntensityBtnViewIds = Arrays.asList( - R.id.btn_clean_intensity_standard, - R.id.btn_clean_intensity_strong); - - // 作业强度相关按钮操作,对应命令参数值 - HashMap cleanIntensityBtnAndCmdValueMap = new HashMap() { - { - put(R.id.btn_clean_intensity_standard, CLEAN_INTENSITY_STRAND); - put(R.id.btn_clean_intensity_strong, CLEAN_INTENSITY_STRONG); - } - }; - private boolean isSelectPureSweepMode = false;//用于标注是否选中纯扫 - - private ICleaningModeStateCallback cleaningModeStateCallback; - - private OperateStateEnum operateStateEnum = OperateStateEnum.SYNCING_STATUS; - - private ObjectAnimator objectAnimator; - - private static ChassisStatesOuterClass.SweeperFuTianTaskSystemStates mCurrentCleanSystemState;//当前作业模式 - - public SweeperOperatePanelView(Context context) { - super(context); - } - - public SweeperOperatePanelView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - initView(context); - } - - public SweeperOperatePanelView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - initView(context); - } - - public SweeperOperatePanelView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - initView(context); - } - - private void initView(Context context) { - LayoutInflater.from(context).inflate(R.layout.sweeper_operate_panel_view, this, true); - mBtnCleanWorkOpenClose = (CheckedTextView) findViewById(R.id.btn_clean_work_open_close); - mWorkmodePanelRootView = (NoTouchConstraintLayout) findViewById(R.id.work_mode_panel_root_view); - mBtnCleanModePureSweep = (CheckedTextView) findViewById(R.id.btn_clean_mode_pure_sweep); - mBtnCleanModePureWash = (CheckedTextView) findViewById(R.id.btn_clean_mode_pure_wash); - mBtnCleanModeSweepWash = (CheckedTextView) findViewById(R.id.btn_clean_mode_sweep_wash); - mBtnCleanModePureAbsorption = (CheckedTextView) findViewById(R.id.btn_clean_mode_pure_absorption); - mBtnCleanDirectionLeftSide = (CheckedTextView) findViewById(R.id.btn_clean_direction_left_side); - mBtnCleanDirectionRightSide = (CheckedTextView) findViewById(R.id.btn_clean_direction_right_side); - mBtnCleanDirectionBothSide = (CheckedTextView) findViewById(R.id.btn_clean_direction_both_side); - mBtnCleanIntensityStandard = (CheckedTextView) findViewById(R.id.btn_clean_intensity_standard); - mBtnCleanIntensityStrong = (CheckedTextView) findViewById(R.id.btn_clean_intensity_strong); - mLoadingContainer = findViewById(R.id.loading_hint_container); - mLoadingHint = findViewById(R.id.loading_hint); - mLoadingView = findViewById(R.id.loading_view); - initViewListener(); - } - - private void initViewListener() { - setClickListener(mBtnCleanWorkOpenClose, (v) -> onCleanWorkBtnClick()); - setClickListener(mBtnCleanModePureSweep, (v) -> onCleanModeBtnClick(v)); - setClickListener(mBtnCleanModePureWash, (v) -> onCleanModeBtnClick(v)); - setClickListener(mBtnCleanModeSweepWash, (v) -> onCleanModeBtnClick(v)); - setClickListener(mBtnCleanModePureAbsorption, (v) -> onCleanModeBtnClick(v)); - setClickListener(mBtnCleanDirectionLeftSide, (v) -> onCleanDirectionBtnClick(v)); - setClickListener(mBtnCleanDirectionRightSide, (v) -> onCleanDirectionBtnClick(v)); - setClickListener(mBtnCleanDirectionBothSide, (v) -> onCleanDirectionBtnClick(v)); - setClickListener(mBtnCleanIntensityStandard, (v) -> onCleanIntensityBtnClick(v)); - setClickListener(mBtnCleanIntensityStrong, (v) -> onCleanIntensityBtnClick(v)); - } - - /** - * 清扫任务开关按钮点击事件 - */ - private void onCleanWorkBtnClick() { - // 是否是 关闭 操作 - boolean isCloseAction = mBtnCleanWorkOpenClose.isChecked(); - CmdRequestCallback cmdRequestCallback = new CmdRequestCallback() { - @Override - public void onSendCmd() { - showLoadingMask(CMD_EXECUTE_TIMEOUT_SECONDS); - } - - @Override - public void onCountDownTick(int seconds) { - updateLoadingCountDown(seconds); - } - - @Override - public boolean onCheckIfCmdSuccess(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { - boolean success = false; - if (cleanSystemState == null) { - return success; - } - if (isCloseAction) { - success = !cleanSystemState.getSecuMotWorkSts(); - } else { - success = cleanSystemState.getSecuMotWorkSts(); - } - return success; - } - - @Override - public void onCmdSuccess() { - if (isCloseAction) { - mBtnCleanWorkOpenClose.setText("打开"); - mBtnCleanWorkOpenClose.setChecked(false); - toggleCleanModeBtnsStatus(false); - toggleCleanDirectionBtnsStatus(false); - toggleCleanIntensityBtnsStatus(false); - } else { - mBtnCleanWorkOpenClose.setText("关闭"); - mBtnCleanWorkOpenClose.setChecked(true); - toggleCleanModeBtnsStatus(true); - } - hideLoadingMask(); - showCmdExecuteSuccessToast(); - } - - @Override - public void onCmdFailed() { - } - - @Override - public void onCmdTimeout() { - //按钮样式恢复原样 - if (isCloseAction) { - mBtnCleanWorkOpenClose.setText("关闭"); - mBtnCleanWorkOpenClose.setChecked(true); - } else { - mBtnCleanWorkOpenClose.setText("打开"); - mBtnCleanWorkOpenClose.setChecked(false); - } - hideLoadingMask(); - showCmdExecuteTimeoutToast(); - } - }; - if (isCloseAction) { - //关闭操作,点击时需要弹框提示确认后,关闭 - sendSweeperCmd( - SweeperFutianCmdUtil.buildCleanWorkStopCmd(), - cmdRequestCallback - , CMD_EXECUTE_TIMEOUT_SECONDS); - } else { - //打开操作,点击时打开 - sendSweeperCmd( - SweeperFutianCmdUtil.buildCleanWorkStartCmd(), - cmdRequestCallback, - CMD_EXECUTE_TIMEOUT_SECONDS); - } - } - - /** - * 作业模式按钮点击事件 - * - * @param currentClickView - */ - private void onCleanModeBtnClick(final View currentClickView) { - CheckedTextView currentChoosedModeBtnView = null; - for (Integer viewId : cleanModeBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - if (view.isChecked()) { - currentChoosedModeBtnView = view; - break; - } - } - boolean isClickCurrentChoosedModeBtn = currentChoosedModeBtnView != null - && currentChoosedModeBtnView.getId() == currentClickView.getId(); - //是否纯吸View - boolean isPureAbsorptionClick = currentClickView.getId() == R.id.btn_clean_mode_pure_absorption; - //是否纯洗View - boolean isPureWashClick = currentClickView.getId() == R.id.btn_clean_mode_pure_wash; - //是否纯扫View - boolean isPureSweepClick = currentClickView.getId() == R.id.btn_clean_mode_pure_sweep; - //是否洗扫View - boolean isWashSweepClick = currentClickView.getId() == R.id.btn_clean_mode_sweep_wash; - CmdRequestCallback cmdRequestCallback = new CmdRequestCallback() { - @Override - public void onSendCmd() { - showLoadingMask(CMD_EXECUTE_TIMEOUT_SECONDS); - } - - @Override - public void onCountDownTick(int seconds) { - updateLoadingCountDown(seconds); - } - - @Override - public boolean onCheckIfCmdSuccess(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { - boolean success = false; - if (cleanSystemState == null) { - return success; - } - // 洗扫 - boolean clean_mode_wash_sweep = cleanSystemState.getSecuModWashSweepSts(); - // 纯洗 - boolean clean_mode_pure_wash = cleanSystemState.getSecuModWashSts(); - // 纯吸 - boolean clean_mode_pure_draw = cleanSystemState.getSecuWorkTonSts(); - // 纯扫 模式判断:不是另外其他3个模式,同时有清扫方向,说明开启了纯扫模式 - boolean clean_mode_pure_sweep = SweeperFutianCmdUtil.checkIfCleanModePureSweep(cleanSystemState); - // 关闭作业模式(实际执行了3个操作: 关闭作业模式 关闭清扫方向 切换标准强度,实际以关闭作业模式成功为准) - boolean clean_mode_close = !clean_mode_wash_sweep - && !clean_mode_pure_wash - && !clean_mode_pure_draw - && !clean_mode_pure_sweep; - - if (isClickCurrentChoosedModeBtn && clean_mode_close) {// 关闭放第一判断 - success = clean_mode_close; - isSelectPureSweepMode = false; - } else if (isPureSweepClick) { - //success = clean_mode_pure_sweep; - //纯扫 这个模式实际在福田清扫车上没有这个按钮,只是发送指令给特种车端,默认此命令肯定是正确的 - success = true; - isSelectPureSweepMode = true; - } else if (isPureWashClick) { - success = clean_mode_pure_wash; - isSelectPureSweepMode = false; - } else if (isWashSweepClick) { - success = clean_mode_wash_sweep; - isSelectPureSweepMode = false; - } else if (isPureAbsorptionClick) { - success = clean_mode_pure_draw; - isSelectPureSweepMode = false; - } - return success; - } - - @Override - public void onCmdSuccess() { - ((CheckedTextView) currentClickView).setChecked(!isClickCurrentChoosedModeBtn); - toggleCleanModeBtnsByChoosedViewId(currentClickView.getId(), isClickCurrentChoosedModeBtn); - if (isClickCurrentChoosedModeBtn) { - toggleCleanDirectionBtnsStatus(false); - toggleCleanIntensityBtnsStatus(false); - } else { - // 如果是纯吸,没有设置清扫方向,同时自动设置作业强度为标准 - if (isPureAbsorptionClick) { - toggleCleanDirectionBtnsStatus(false); - setCleanIntensityStandard(); - } else { - toggleCleanDirectionBtnsStatus(true); - toggleCleanIntensityBtnsStatus(false); - } - } - hideLoadingMask(); - showCmdExecuteSuccessToast(); - } - - @Override - public void onCmdFailed() { - } - - @Override - public void onCmdTimeout() { - ((CheckedTextView) currentClickView).setChecked(isClickCurrentChoosedModeBtn); - hideLoadingMask(); - showCmdExecuteTimeoutToast(); - } - }; - - if (isClickCurrentChoosedModeBtn) { - //当前已选择模式的按钮,取消当前模式,并关闭清扫方向 - sendSweeperCmd( - SweeperFutianCmdUtil.buildCleanModeCloseCmd(), - cmdRequestCallback, - CMD_EXECUTE_TIMEOUT_SECONDS); - } else { - //开启新的作业模式,直接发送命令(纯吸需要一并设置作业强度为标准) - int cmdValue = cleanModeBtnAndCmdValueMap.get(currentClickView.getId()); - sendSweeperCmd( - isPureAbsorptionClick ? SweeperFutianCmdUtil.buildCleanModePureDrawCmd() - : SweeperFutianCmdUtil.buildCleanModeCmd(cmdValue), - cmdRequestCallback, - CMD_EXECUTE_TIMEOUT_SECONDS); - } - } - - private void onCleanDirectionBtnClick(final View currentClickView) { - CheckedTextView currentChoosedDirectionBtnView = null; - for (Integer viewId : cleanDirectionBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - if (view.isChecked()) { - currentChoosedDirectionBtnView = view; - break; - } - } - boolean isClickCurrentChoosedDirectionBtn = currentChoosedDirectionBtnView != null - && currentChoosedDirectionBtnView.getId() == currentClickView.getId(); - - boolean isLeftSide = currentClickView.getId() == R.id.btn_clean_direction_left_side; - boolean isRightSide = currentClickView.getId() == R.id.btn_clean_direction_right_side; - boolean isBothSide = currentClickView.getId() == R.id.btn_clean_direction_both_side; - CmdRequestCallback cmdRequestCallback = new CmdRequestCallback() { - @Override - public void onSendCmd() { - showLoadingMask(CMD_EXECUTE_TIMEOUT_SECONDS); - } - - @Override - public void onCountDownTick(int seconds) { - updateLoadingCountDown(seconds); - } - - @Override - public boolean onCheckIfCmdSuccess(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { - boolean success = false; - if (cleanSystemState == null) { - return success; - } - // 左侧 - boolean clean_direction_left_side = cleanSystemState.getSecuWorkLeftSts(); - // 右侧 - boolean clean_direction_right_side = cleanSystemState.getSecuWorkRightSts(); - // 两侧 - boolean clean_direction_both_side = cleanSystemState.getSecuWorkOnBothsidesSts(); - // 关闭清扫方向(实际执行了2个操作:关闭清扫方向 切换标准强度,实际以关闭清扫方向成功为准) - boolean clean_direction_close = !clean_direction_left_side && !clean_direction_right_side - && !clean_direction_both_side; - - if (isClickCurrentChoosedDirectionBtn && clean_direction_close) {//关闭放第一判断 - success = clean_direction_close; - } else if (isLeftSide) { - success = clean_direction_left_side; - } else if (isRightSide) { - success = clean_direction_right_side; - } else if (isBothSide) { - success = clean_direction_both_side; - } - return success; - } - - @Override - public void onCmdSuccess() { - ((CheckedTextView) currentClickView).setChecked(!isClickCurrentChoosedDirectionBtn); - toggleCleanDirectionBtnsByChoosedViewId(currentClickView.getId(), isClickCurrentChoosedDirectionBtn); - if (isClickCurrentChoosedDirectionBtn) { - toggleCleanIntensityBtnsStatus(false); - } else { - toggleCleanIntensityBtnsStatus(true); - // 一并设置作业强度为标准 - setCleanIntensityStandard(); - } - hideLoadingMask(); - showCmdExecuteSuccessToast(); - } - - @Override - public void onCmdFailed() { - } - - @Override - public void onCmdTimeout() { - ((CheckedTextView) currentClickView).setChecked(isClickCurrentChoosedDirectionBtn); - hideLoadingMask(); - showCmdExecuteTimeoutToast(); - } - }; - if (isClickCurrentChoosedDirectionBtn) { - //当前已选择模式的按钮,取消当前模式,重置作业强度为标准,并置灰作业强度按钮 - sendSweeperCmd( - SweeperFutianCmdUtil.buildCleanDirectionCloseCmd(), - cmdRequestCallback, - CMD_EXECUTE_TIMEOUT_SECONDS); - } else { - //开启新的作业模式,直接发送命令(作业强度默认为标准) - int cmdValue = cleanDirectionBtnAndCmdValueMap.get(currentClickView.getId()); - sendSweeperCmd( - SweeperFutianCmdUtil.buildCleanDirectionCmd(cmdValue), - cmdRequestCallback, - CMD_EXECUTE_TIMEOUT_SECONDS); - } - } - - private void onCleanIntensityBtnClick(final View currentClickView) { - CheckedTextView currentChoosedModeBtnView = null; - for (Integer viewId : cleanIntensityBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - if (view.isChecked()) { - currentChoosedModeBtnView = view; - break; - } - } - boolean isClickCurrentChoosedModeBtn = currentChoosedModeBtnView != null - && currentChoosedModeBtnView.getId() == currentClickView.getId(); - //作业强度如果已经选中,则重复点击时不需要再重复发送指令 - if (isClickCurrentChoosedModeBtn) { - return; - } - boolean isStandardBtnClick = currentClickView.getId() == R.id.btn_clean_intensity_standard; - boolean isStrongBtnClick = currentClickView.getId() == R.id.btn_clean_intensity_strong; - CmdRequestCallback cmdRequestCallback = new CmdRequestCallback() { - @Override - public void onSendCmd() { - showLoadingMask(CMD_EXECUTE_TIMEOUT_SECONDS); - } - - @Override - public void onCountDownTick(int seconds) { - updateLoadingCountDown(seconds); - } - - @Override - public boolean onCheckIfCmdSuccess(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { - boolean success = false; - if (cleanSystemState == null) { - return success; - } - boolean clean_intensity_standard = cleanSystemState.getSecuWorkStandSts(); - boolean clean_intensity_strong = cleanSystemState.getSecuWorkStrongSts(); - if (isStandardBtnClick) { - success = clean_intensity_standard; - } else if (isStrongBtnClick) { - success = clean_intensity_strong; - } - return success; - } - - @Override - public void onCmdSuccess() { - ((CheckedTextView) currentClickView).setChecked(true); - if (isStandardBtnClick) { - setCleanIntensityStandard(); - } else { - setCleanIntensityStrong(); - } - hideLoadingMask(); - showCmdExecuteSuccessToast(); - } - - @Override - public void onCmdFailed() { - } - - @Override - public void onCmdTimeout() { - ((CheckedTextView) currentClickView).setChecked(false); - hideLoadingMask(); - showCmdExecuteTimeoutToast(); - } - }; - int cmdValue = cleanIntensityBtnAndCmdValueMap.get(currentClickView.getId()); - sendSweeperCmd( - SweeperFutianCmdUtil.buildCleanIntensityCmd(cmdValue), - cmdRequestCallback, - CMD_EXECUTE_TIMEOUT_SECONDS); - } - - /** - * 作业模式按钮状态切换-置灰/开启 按钮 - * - * @param enable - */ - private void toggleCleanModeBtnsStatus(boolean enable) { - for (Integer viewId : cleanModeBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - view.setEnabled(enable); - view.setChecked(false); - } - } - - /** - * 作业模式按钮状态切换-将当前点击按钮之外的其他按钮 置灰或开启 - * - * @param choosedBtnId - * @param enable - */ - private void toggleCleanModeBtnsByChoosedViewId(int choosedBtnId, boolean enable) { - for (Integer viewId : cleanModeBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - if (view.getId() != choosedBtnId) { - view.setEnabled(enable); - view.setChecked(false); - } - } - } - - /** - * 清扫方向按钮状态切换-置灰/开启 按钮 - * - * @param enable - */ - private void toggleCleanDirectionBtnsStatus(boolean enable) { - for (Integer viewId : cleanDirectionBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - view.setEnabled(enable); - view.setChecked(false); - } - } - - /** - * 清扫方向按钮状态切换-将当前点击按钮之外的其他按钮 置灰或开启 - * - * @param choosedBtnId - * @param enable - */ - private void toggleCleanDirectionBtnsByChoosedViewId(int choosedBtnId, boolean enable) { - for (Integer viewId : cleanDirectionBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - if (view.getId() != choosedBtnId) { - view.setEnabled(enable); - view.setChecked(false); - } - } - } - - /** - * 作业强度按钮状态切换-置灰/开启 按钮 - * - * @param enable - */ - private void toggleCleanIntensityBtnsStatus(boolean enable) { - for (Integer viewId : cleanIntensityBtnViewIds) { - CheckedTextView view = (CheckedTextView) findViewById(viewId); - view.setEnabled(enable); - view.setChecked(false); - } - } - - /** - * 设置作业强度-标准 - */ - private void setCleanIntensityStandard() { - mBtnCleanIntensityStandard.setChecked(true); - mBtnCleanIntensityStandard.setEnabled(true); - mBtnCleanIntensityStrong.setChecked(false); - mBtnCleanIntensityStrong.setEnabled(true); - } - - /** - * 设置作业强度-加强 - */ - private void setCleanIntensityStrong() { - mBtnCleanIntensityStandard.setChecked(false); - mBtnCleanIntensityStandard.setEnabled(true); - mBtnCleanIntensityStrong.setChecked(true); - mBtnCleanIntensityStrong.setEnabled(true); - } - - /** - * 发送命令后等待时,展示loading - * - * @param timeout - */ - private void showLoadingMask(int timeout) { - mLoadingContainer.setVisibility(View.VISIBLE); - mWorkmodePanelRootView.setInterceptTouchEvent(true); - if (timeout < 0) {//状态同步中 - mLoadingHint.setText("状态同步中,请稍后"); - mLoadingView.setVisibility(View.GONE); - } else { - mLoadingHint.setText(timeout + "s"); - mLoadingView.setVisibility(View.VISIBLE); - startRotation(); - } - if (cleaningModeStateCallback != null && timeout > 0) { - operateStateEnum = OperateStateEnum.STARTING_STATUS; - cleaningModeStateCallback.cleaningModeState(operateStateEnum, mCurrentCleanSystemState, isSelectPureSweepMode); - } - } - - /** - * 隐藏loading - */ - private void hideLoadingMask() { - mSweeperOperateCmdHandler.removeMessages(MSG_CMD_EXECUTE_COUNT_DOWN); - mLoadingContainer.setVisibility(View.GONE); - mWorkmodePanelRootView.setInterceptTouchEvent(false); - } - - /** - * 更新loading中倒计时 - * - * @param timeout - */ - private void updateLoadingCountDown(int timeout) { - mLoadingHint.setText(timeout + "s"); - } - - /** - * 命令执行成功toast - */ - private void showCmdExecuteSuccessToast() { - if (cleaningModeStateCallback != null) { - operateStateEnum = OperateStateEnum.SUCCESS_STATUS; - cleaningModeStateCallback.cleaningModeState(operateStateEnum, mCurrentCleanSystemState, isSelectPureSweepMode); - } - //停止旋转动画 - stopRotation(); - ToastUtils.showLong("设备已响应,操作成功"); - } - - /** - * 命令执行超时toast - */ - private void showCmdExecuteTimeoutToast() { - if (cleaningModeStateCallback != null) { - operateStateEnum = OperateStateEnum.FAIL_STATUS; - cleaningModeStateCallback.cleaningModeState(operateStateEnum, mCurrentCleanSystemState, isSelectPureSweepMode); - } - //停止旋转动画 - stopRotation(); - ToastUtils.showLong("超时未响应,操作失败"); - } - - private void setClickListener(View view, OnClickListener listener) { - view.setOnClickListener(new OnPreventFastClickListener() { - @Override - public void onClickImpl(View v) { - listener.onClick(v); - } - }); - } - - public void setSweeperFutianCleanSystemState(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState, - ICleaningModeStateCallback cleaningModeStateCallback) { - this.cleaningModeStateCallback = cleaningModeStateCallback; - // 有命令正在执行 - if (mCurrentCmdRequestCallback != null) { - Log.d(TAG, "getSecuWorkLeftSts = " + cleanSystemState.getSecuWorkLeftSts()); - if (mCurrentCmdRequestCallback.onCheckIfCmdSuccess(cleanSystemState)) { - mCurrentCmdRequestCallback.onCmdSuccess(); - mCurrentCmdRequestCallback = null; - } - } - //正在上装中或者上装失败,则不更新面板内容 - if (operateStateEnum == OperateStateEnum.STARTING_STATUS) { - return; - } - if (!isFirst) { - isFirst = true; - onSyncVehicleStateCallBack(cleanSystemState); - } - } - - /** - * 设置是否展示状态同步中 - * - * @param operateState - */ - public void showSyncing(OperateStateEnum operateState) { - if (operateState == OperateStateEnum.SYNCING_STATUS) { - syncVehicleStateAndRecoverOperatePanelStates(); - isFirst = false; - } else { - hideLoadingMask(); - } - } - - /** - * 等待同步底盘数据,并根据底盘数据恢复操作面板中按钮的状态 - */ - private synchronized void syncVehicleStateAndRecoverOperatePanelStates() { - // show sync loading - showLoadingMask(-1); - } - - private synchronized void onSyncVehicleStateCallBack(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { - if (cleanSystemState == null) return; - // 清扫作业开启状态(以电机状态为true代表Open成功,实际控制端控制步骤为:1.发送远程控制上装指令 2.发送电机启动指令) - boolean clean_open_requirement = cleanSystemState.getSecuMotWorkSts(); - // 作业模式状态 - // 洗扫 - boolean clean_mode_wash_sweep = cleanSystemState.getSecuModWashSweepSts(); - // 纯洗 - boolean clean_mode_pure_wash = cleanSystemState.getSecuModWashSts(); - // 纯吸 - boolean clean_mode_pure_draw = cleanSystemState.getSecuWorkTonSts(); - - // 清扫方向状态 - // 左侧 - boolean clean_direction_left_side = cleanSystemState.getSecuWorkLeftSts(); - // 右侧 - boolean clean_direction_right_side = cleanSystemState.getSecuWorkRightSts(); - // 两侧 - boolean clean_direction_both_side = cleanSystemState.getSecuWorkOnBothsidesSts(); - - // 纯扫 模式判断:不是另外其他3个模式,同时有清扫方向,说明开启了纯扫模式 - boolean clean_mode_pure_sweep = SweeperFutianCmdUtil.checkIfCleanModePureSweep(cleanSystemState); - - // 作业强度状态 - boolean clean_intensity_standard = cleanSystemState.getSecuWorkStandSts(); - boolean clean_intensity_strong = cleanSystemState.getSecuWorkStrongSts(); - if (clean_open_requirement) { - // 打开状态 - mBtnCleanWorkOpenClose.setText("关闭"); - mBtnCleanWorkOpenClose.setChecked(true); - } else { - // 关闭状态 - mBtnCleanWorkOpenClose.setText("打开"); - mBtnCleanWorkOpenClose.setChecked(false); - } - if (clean_mode_pure_sweep) { - //纯扫 - mBtnCleanModePureSweep.setChecked(true); - mBtnCleanModePureSweep.setEnabled(true); - toggleCleanModeBtnsByChoosedViewId(R.id.btn_clean_mode_pure_sweep, false); - } else if (clean_mode_pure_wash) { - //纯洗 - mBtnCleanModePureWash.setChecked(true); - mBtnCleanModePureWash.setEnabled(true); - toggleCleanModeBtnsByChoosedViewId(R.id.btn_clean_mode_pure_wash, false); - } else if (clean_mode_wash_sweep) { - //洗扫 - mBtnCleanModeSweepWash.setChecked(true); - mBtnCleanModeSweepWash.setEnabled(true); - toggleCleanModeBtnsByChoosedViewId(R.id.btn_clean_mode_sweep_wash, false); - } else if (clean_mode_pure_draw) { - //纯吸,需要disable作业方向 - mBtnCleanModePureAbsorption.setChecked(true); - mBtnCleanModePureAbsorption.setEnabled(true); - toggleCleanModeBtnsByChoosedViewId(R.id.btn_clean_mode_pure_absorption, false); - toggleCleanDirectionBtnsStatus(false); - } - - if (!clean_mode_pure_draw) {// 非纯吸模式才有清扫方向 - if (clean_direction_left_side) { - mBtnCleanDirectionLeftSide.setChecked(true); - mBtnCleanDirectionLeftSide.setEnabled(true); - toggleCleanDirectionBtnsByChoosedViewId(R.id.btn_clean_direction_left_side, false); - } else if (clean_direction_right_side) { - mBtnCleanDirectionRightSide.setChecked(true); - mBtnCleanDirectionRightSide.setEnabled(true); - toggleCleanDirectionBtnsByChoosedViewId(R.id.btn_clean_direction_right_side, false); - } else if (clean_direction_both_side) { - mBtnCleanDirectionBothSide.setChecked(true); - mBtnCleanDirectionBothSide.setEnabled(true); - toggleCleanDirectionBtnsByChoosedViewId(R.id.btn_clean_direction_both_side, false); - } - } - if (clean_intensity_standard) { - setCleanIntensityStandard(); - } else if (clean_intensity_strong) { - setCleanIntensityStrong(); - } - hideLoadingMask(); - } - - /** - * 发送清扫车相关作业命令 - * - * @param fuTianCleanCmd - * @param cmdRequestCallback - * @param timeout - */ - private void sendSweeperCmd( - SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianCleanCmd, - CmdRequestCallback cmdRequestCallback, - int timeout) { - // 设置当前请求的回调 - mCurrentCmdRequestCallback = cmdRequestCallback; - // onSendCmd - mCurrentCmdRequestCallback.onSendCmd(); - // 发送命令 - CallerAutoPilotControlManager.INSTANCE.sendSweeperFuTianTaskCmd(fuTianCleanCmd); - // log发送命令 - logSweeperCmdValue(fuTianCleanCmd); - // 开启倒计时 - Message msg = Message.obtain(); - msg.what = MSG_CMD_EXECUTE_COUNT_DOWN; - msg.obj = timeout; - mSweeperOperateCmdHandler.sendMessage(msg); - // Mock Cmd Success - //mockCleanModeSuccess(fuTianCleanCmd); - } - - private void mockSendCmdSuccess() { - Message successMsg = Message.obtain(); - successMsg.what = MSG_CMD_EXECUTE_MOCK_SUCCESS; - mSweeperOperateCmdHandler.sendMessageDelayed(successMsg, 1000L * CMD_EXECUTE_MOCK_SUCCESS_SECONDS); - } - - private void logSweeperCmdValue(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd taskCmd) { - SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd roboSweeperFutianCleanCmd = taskCmd.getRoboSweeperFutianCleanCmd(); - int clean_open_requirement = roboSweeperFutianCleanCmd.getCleanOpenRequirement(); - int clean_mode_requirement = roboSweeperFutianCleanCmd.getCleanModeRequirement(); - int clean_direction_requirement = roboSweeperFutianCleanCmd.getCleanDirectionRequirement(); - int clean_intensity_requirement = roboSweeperFutianCleanCmd.getCleanIntensityRequirement(); - Log.d(TAG, "---- sendSweeperFuTianTaskCmd ----" - + "[clean_open_requirement = " + clean_open_requirement + "]," - + "[clean_mode_requirement = " + clean_mode_requirement + "]," - + "[clean_direction_requirement = " + clean_direction_requirement + "]," - + "[clean_intensity_requirement = " + clean_intensity_requirement + "]" - ); - } - - private final static SweeperOperateCmdHandler mSweeperOperateCmdHandler = new SweeperOperateCmdHandler(); - private static CmdRequestCallback mCurrentCmdRequestCallback;//发送命令后的回调 - private static final int MSG_CMD_EXECUTE_COUNT_DOWN = 10001; - private static final int MSG_CMD_EXECUTE_MOCK_SUCCESS = 10002; - - /** - * 执行命令时倒计时的Handler - */ - static class SweeperOperateCmdHandler extends Handler { - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - if (msg.what == MSG_CMD_EXECUTE_COUNT_DOWN) { - int seconds = (int) msg.obj; - if (seconds > 0) { - if (mCurrentCmdRequestCallback != null) { - mCurrentCmdRequestCallback.onCountDownTick(seconds); - } - Message newMsg = Message.obtain(); - newMsg.what = MSG_CMD_EXECUTE_COUNT_DOWN; - newMsg.obj = seconds - 1; - mSweeperOperateCmdHandler.sendMessageDelayed(newMsg, 1000L); - } else { - if (mCurrentCmdRequestCallback != null) { - mCurrentCmdRequestCallback.onCmdTimeout(); - mCurrentCmdRequestCallback = null; - } - removeMessages(MSG_CMD_EXECUTE_COUNT_DOWN); - } - } else if (msg.what == MSG_CMD_EXECUTE_MOCK_SUCCESS) { - if (mCurrentCmdRequestCallback != null) { - if (mCurrentCmdRequestCallback.onCheckIfCmdSuccess(mCurrentCleanSystemState)) { - mCurrentCmdRequestCallback.onCmdSuccess(); - mCurrentCmdRequestCallback = null; - } - } - removeMessages(MSG_CMD_EXECUTE_COUNT_DOWN); - } - } - } - - interface CmdRequestCallback { - void onSendCmd(); - - void onCountDownTick(int senonds); - - boolean onCheckIfCmdSuccess(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState); - - void onCmdSuccess(); - - void onCmdFailed(); - - void onCmdTimeout(); - } - - /** - * 开始旋转 - */ - private void startRotation() { - if (objectAnimator == null) { - objectAnimator = ObjectAnimator.ofFloat(mLoadingView, "rotation", 0, 360f); - objectAnimator.setDuration(1500); - objectAnimator.setRepeatCount(-1); - objectAnimator.setInterpolator(new LinearInterpolator()); - objectAnimator.start(); - } - } - - /** - * 停止旋转 - */ - private void stopRotation() { - if (objectAnimator != null && objectAnimator.isRunning()) { - objectAnimator.end(); - objectAnimator = null; - } - } - - /** - * 模拟指令操作成功 - */ - private void mockCleanModeSuccess(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianTaskCmd) { - ChassisStatesOuterClass.SweeperFuTianTaskSystemStates.Builder builder = ChassisStatesOuterClass.SweeperFuTianTaskSystemStates.newBuilder(); - chassis.SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd fuTianCleanCmd = fuTianTaskCmd.getRoboSweeperFutianCleanCmd(); - if (fuTianCleanCmd.getCleanOpenRequirement() == CLEAN_WORK_OPEN) {//打开 - builder.setSecuMotWorkSts(true); - builder.setSecuModWashSweepSts(false); - builder.setSecuModWashSts(false); - builder.setSecuWorkTonSts(false); - builder.setSecuWorkOnBothsidesSts(false); - builder.setSecuWorkLeftSts(false); - builder.setSecuWorkRightSts(false); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanOpenRequirement() == CLEAN_WORK_CLOSE) {//关闭 - builder.setSecuModWashSweepSts(false); - builder.setSecuModWashSts(false); - builder.setSecuWorkTonSts(false); - builder.setSecuWorkOnBothsidesSts(false); - builder.setSecuWorkLeftSts(false); - builder.setSecuWorkRightSts(false); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - builder.setSecuMotWorkSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } - if (fuTianCleanCmd.getCleanModeRequirement() == CLEAN_MODE_PURE_SWEEP) {//纯扫 - builder.setSecuModWashSweepSts(false); - builder.setSecuModWashSts(false); - builder.setSecuWorkTonSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanModeRequirement() == CLEAN_MODE_WASH_SWEEP) {//洗扫 - builder.setSecuModWashSweepSts(!mCurrentCleanSystemState.getSecuModWashSweepSts()); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanModeRequirement() == CLEAN_MODE_PURE_WASH) {//纯洗 - builder.setSecuModWashSts(!mCurrentCleanSystemState.getSecuModWashSts()); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanModeRequirement() == CLEAN_MODE_PURE_DRAW) {//纯吸 - builder.setSecuWorkTonSts(!mCurrentCleanSystemState.getSecuWorkTonSts()); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkOnBothsidesSts(false); - builder.setSecuWorkLeftSts(false); - builder.setSecuWorkRightSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanModeRequirement() == CLEAN_MODE_CLOSE) { - builder.setSecuModWashSweepSts(false); - builder.setSecuModWashSts(false); - builder.setSecuWorkTonSts(false); - builder.setSecuWorkOnBothsidesSts(false); - builder.setSecuWorkLeftSts(false); - builder.setSecuWorkRightSts(false); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } - if (fuTianCleanCmd.getCleanDirectionRequirement() == CLEAN_DIRECTION_BOTH_SIDE) {//两侧 - builder.setSecuWorkOnBothsidesSts(!mCurrentCleanSystemState.getSecuWorkOnBothsidesSts()); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanDirectionRequirement() == CLEAN_DIRECTION_LEFT_SIDE) {//左侧 - builder.setSecuWorkLeftSts(!mCurrentCleanSystemState.getSecuWorkLeftSts()); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanDirectionRequirement() == CLEAN_DIRECTION_RIGHT_SIDE) {//右侧 - builder.setSecuWorkRightSts(!mCurrentCleanSystemState.getSecuWorkRightSts()); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanDirectionRequirement() == CLEAN_DIRECTION_CLOSE) { - builder.setSecuWorkLeftSts(false); - builder.setSecuWorkRightSts(false); - builder.setSecuWorkOnBothsidesSts(false); - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } - if (fuTianCleanCmd.getCleanIntensityRequirement() == CLEAN_INTENSITY_STRAND) { - builder.setSecuWorkStrongSts(true); - builder.setSecuWorkStandSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - return; - } else if (fuTianCleanCmd.getCleanIntensityRequirement() == CLEAN_INTENSITY_STRONG) { - builder.setSecuWorkStandSts(true); - builder.setSecuWorkStrongSts(false); - mCurrentCleanSystemState = builder.build(); - mockSendCmdSuccess(); - } - - } - -} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/adapter/TaskListAdapter.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/adapter/TaskListAdapter.kt index 132a8e4154..0798e21305 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/adapter/TaskListAdapter.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/adapter/TaskListAdapter.kt @@ -47,7 +47,7 @@ class TaskListAdapter() : RecyclerView.Adapter() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TaskViewHolder { val view = LayoutInflater.from(parent.context).inflate( - R.layout.sweeper_item_task_info, parent, false + R.layout.sweeper_operate_item_task_info, parent, false ) return TaskViewHolder(view) } diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperManualDrivingDialog.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperManualDrivingDialog.kt deleted file mode 100644 index b5458ed5de..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperManualDrivingDialog.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.mogo.och.sweeper.operate.ui.dialog - -import android.content.Context -import android.widget.TextView -import androidx.lifecycle.LifecycleObserver -import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog -import com.mogo.och.sweeper.R - -/** - * 不带带有title, tip,confirm,cancel的dialog - */ -class SweeperManualDrivingDialog: BaseFloatDialog, LifecycleObserver { - - private var commonConfirm : TextView? = null - private var commonTips : TextView? = null - - private var clickListener: ClickListener? = null - - constructor(builder: Builder, context: Context) : super(context) { - commonTips?.text = builder.tipsStr - commonConfirm?.text = builder.confirmStr - } - - init{ - setContentView(R.layout.dialog_sweeper_manual_driving) - - setCanceledOnTouchOutside(false) - - commonConfirm = findViewById(R.id.sweeper_common_confirm) - commonTips = findViewById(R.id.sweeper_common_tips) - - commonConfirm?.setOnClickListener{ - clickListener?.confirm() - dismiss() - } - } - - fun setClickListener(clickListener: ClickListener) { - this.clickListener = clickListener - } - - fun showUpgradeDialog(){ - if(isShowing){ - return - } - show() - } - - interface ClickListener{ - fun confirm() - } - - class Builder{ - var tipsStr:String = "" - var confirmStr:String = "" - fun tips(tips: String) : Builder { - this.tipsStr = tips - return this - } - - fun confirmStr(commit: String) : Builder { - this.confirmStr = commit - return this - } - fun build(context: Context): SweeperManualDrivingDialog? { - return SweeperManualDrivingDialog(this,context) - } - } - -} \ No newline at end of file diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperNoTitleCommonDialog.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperNoTitleCommonDialog.kt deleted file mode 100644 index c20a6f811a..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/dialog/SweeperNoTitleCommonDialog.kt +++ /dev/null @@ -1,85 +0,0 @@ -package com.mogo.och.sweeper.operate.ui.dialog - -import android.content.Context -import android.widget.TextView -import androidx.lifecycle.LifecycleObserver -import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog -import com.mogo.och.sweeper.R - -/** - * 不带带有title, tip,confirm,cancel的dialog - */ -class SweeperNoTitleCommonDialog: BaseFloatDialog, LifecycleObserver { - - private var commonConfirm : TextView? = null - private var commonCancel : TextView? = null - private var commonTips : TextView? = null - - private var clickListener: ClickListener? = null - - constructor(builder: Builder, context: Context) : super(context) { - commonTips?.text = builder.tipsStr - commonCancel?.text = builder.cancelStr - commonConfirm?.text = builder.confirmStr - } - - init{ - setContentView(R.layout.dialog_sweeper_no_title) - - setCanceledOnTouchOutside(true) - - commonConfirm = findViewById(R.id.sweeper_common_confirm) - commonCancel = findViewById(R.id.sweeper_common_cancel) - commonTips = findViewById(R.id.sweeper_common_tips) - - commonConfirm?.setOnClickListener{ - clickListener?.confirm() - dismiss() - } - commonCancel?.setOnClickListener { - clickListener?.cancel() - dismiss() - } - } - - fun setClickListener(clickListener: ClickListener) { - this.clickListener = clickListener - } - - fun showUpgradeDialog(){ - if(isShowing){ - return - } - show() - } - - interface ClickListener{ - fun confirm() - fun cancel() - } - - class Builder{ - var tipsStr:String = "" - var confirmStr:String = "" - var cancelStr:String = "" - fun tips(tips: String) : Builder { - this.tipsStr = tips - return this - } - - fun confirmStr(commit: String) : Builder { - this.confirmStr = commit - return this - } - - fun cancelStr(cancel: String) : Builder { - this.cancelStr = cancel - return this - } - - fun build(context: Context): SweeperNoTitleCommonDialog? { - return SweeperNoTitleCommonDialog(this,context) - } - } - -} \ No newline at end of file diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/popwindow/MenuPopWindow.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/popwindow/MenuPopWindow.kt index 88ac8dfacd..d6e8e16037 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/popwindow/MenuPopWindow.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/ui/popwindow/MenuPopWindow.kt @@ -36,7 +36,7 @@ class MenuPopWindow : PopupWindow, View.OnClickListener{ */ private fun init(context: Context) { setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) - var view: View = LayoutInflater.from(context).inflate(R.layout.sweeper_task_menu, null) + var view: View = LayoutInflater.from(context).inflate(R.layout.sweeper_operate_task_menu, null) mTvJumpOverTask = view.findViewById(R.id.tvJumpOverTask) mTaskJumpLineView = view.findViewById(R.id.taskJumpLineView) mTvEndTask = view.findViewById(R.id.tvEndTask) diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperCurrentTaskInfoView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateCurrentTaskInfoView.kt similarity index 94% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperCurrentTaskInfoView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateCurrentTaskInfoView.kt index abc1824bdc..d15f3402fc 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperCurrentTaskInfoView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateCurrentTaskInfoView.kt @@ -14,19 +14,19 @@ import com.mogo.och.sweeper.R import com.mogo.och.sweeper.operate.bean.SubInfo import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum -import com.mogo.och.sweeper.operate.presenter.SweeperPresenter +import com.mogo.och.sweeper.operate.presenter.SweeperOperatePresenter import com.mogo.och.sweeper.operate.ui.popwindow.MenuPopWindow -import kotlinx.android.synthetic.main.sweeper_current_task_info.view.* +import kotlinx.android.synthetic.main.sweeper_operate_current_task_info.view.* /** * 清扫车当前任务信息展示 */ -class SweeperCurrentTaskInfoView : ConstraintLayout { +class SweeperOperateCurrentTaskInfoView : ConstraintLayout { private val TAG: String = "SweeperCurrentTaskInfoView" //当前任务操作菜单 private var mTaskMenuPopWindow: MenuPopWindow? = null - private var presenter: SweeperPresenter? = null + private var presenter: SweeperOperatePresenter? = null private var mCurrentPosition = 0 private var listTask: List? = null private var mSubTaskType: SubTaskTypeEnum = SubTaskTypeEnum.AUTOPILOT_SUBTYPE @@ -43,7 +43,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {} private fun initView(context: Context) { - LayoutInflater.from(context).inflate(R.layout.sweeper_current_task_info, this) + LayoutInflater.from(context).inflate(R.layout.sweeper_operate_current_task_info, this) setEnableClickBtn(false) tvStartAuto.setOnClickListener { if (ClickUtils.isFastClick()){//防止重复点击 @@ -66,17 +66,17 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { * 设置当前任务数据 */ fun setData( - workModePanelView: SweeperWorkModeView, + workModePanelView: SweeperOperateWorkModeView, subTaskBean: SweeperSubTaskBean?, currentPosition: Int, menuItemClickListener: MenuPopWindow.OnMenuItemOnClickListener, - presenter: SweeperPresenter? + presenter: SweeperOperatePresenter? ) { this.presenter = presenter this.mCurrentPosition = currentPosition mTaskMenuPopWindow = MenuPopWindow(context, menuItemClickListener) subTaskBean?.apply { - this@SweeperCurrentTaskInfoView.listTask = subList + this@SweeperOperateCurrentTaskInfoView.listTask = subList tvTaskName.text = taskName val calendar = DateTimeUtil.formatLongToCalendar(taskStartTime) tvTaskTime.text = DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm) diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SubTaskView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateSubTaskView.kt similarity index 90% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SubTaskView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateSubTaskView.kt index 459b5d774e..5b84d18f5c 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SubTaskView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateSubTaskView.kt @@ -9,12 +9,12 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.sweeper.R import com.mogo.och.sweeper.operate.bean.SubInfo -import kotlinx.android.synthetic.main.sweeper_subtask_view.view.* +import kotlinx.android.synthetic.main.sweeper_operate_subtask_view.view.* /** * 子任务View */ -class SubTaskView : ConstraintLayout { +class SweeperOperateSubTaskView : ConstraintLayout { constructor(context: Context) : super(context) {} constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { initView(context) @@ -24,7 +24,7 @@ class SubTaskView : ConstraintLayout { constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {} private fun initView(context: Context) { - LayoutInflater.from(context).inflate(R.layout.sweeper_subtask_view, this) + LayoutInflater.from(context).inflate(R.layout.sweeper_operate_subtask_view, this) } /** diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperTrafficDataView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateTrafficDataView.kt similarity index 97% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperTrafficDataView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateTrafficDataView.kt index 6cd7225edc..c11778b7ce 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperTrafficDataView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateTrafficDataView.kt @@ -29,7 +29,7 @@ import kotlin.math.roundToInt /** * 车辆基本信息:方向盘下方的档位 转向灯 限速 速度 电量 水量 */ -class SweeperTrafficDataView : ConstraintLayout, +class SweeperOperateTrafficDataView : ConstraintLayout, IMoGoBatteryManagementSystemListener, IMoGoChassisLamplightListener, IMoGoChassisGearStateListener, @@ -69,7 +69,7 @@ class SweeperTrafficDataView : ConstraintLayout, constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {} private fun initView(context: Context) { - LayoutInflater.from(context).inflate(R.layout.sweeper_traffic_data, this) + LayoutInflater.from(context).inflate(R.layout.sweeper_operate_traffic_data, this) tapPositionView = findViewById(R.id.sweeperTrafficPosition) speedImage = findViewById(R.id.sweeperSpeedImage) speedTextView = findViewById(R.id.sweeperSpeedText) diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperWorkModeView.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateWorkModeView.kt similarity index 96% rename from OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperWorkModeView.kt rename to OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateWorkModeView.kt index 47d54eb38d..6eace23aee 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperWorkModeView.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/view/SweeperOperateWorkModeView.kt @@ -13,15 +13,14 @@ import com.mogo.och.sweeper.R import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback import com.mogo.och.sweeper.common.constant.OperateStateEnum import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum -import com.mogo.och.sweeper.operate.ui.popwindow.SweeperOperatePanelPopWindow +import com.mogo.och.sweeper.common.view.SweeperOperatePanelPopWindow import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil -import com.mogo.och.sweeper.operate.view.SweeperTrafficDataView import kotlinx.android.synthetic.main.sweeper_work_mode.view.* /** * 清扫车模式信息展示 */ -class SweeperWorkModeView : ConstraintLayout, +class SweeperOperateWorkModeView : ConstraintLayout, ICleaningModeStateCallback { private var isSelectPureSweepMode: Boolean = false @@ -48,7 +47,7 @@ class SweeperWorkModeView : ConstraintLayout, /** * 设置view */ - fun setTrafficDataView(trafficDataView: SweeperTrafficDataView){ + fun setTrafficDataView(trafficDataView: SweeperOperateTrafficDataView){ //清扫模式选择面板打开关闭处理 ivOpenOperatePanel.setOnClickListener { if (mOperatePanelPopWindow?.isShowing != true) { diff --git a/OCH/sweeper/driver/src/main/res/layout/fragment_och_sweeper_cloud.xml b/OCH/sweeper/driver/src/main/res/layout/fragment_och_sweeper_cloud.xml index cf7fe33c6e..6aded3b599 100644 --- a/OCH/sweeper/driver/src/main/res/layout/fragment_och_sweeper_cloud.xml +++ b/OCH/sweeper/driver/src/main/res/layout/fragment_och_sweeper_cloud.xml @@ -6,7 +6,7 @@ android:layout_gravity="center" android:orientation="vertical"> - @@ -24,7 +24,7 @@ app:xOffset="0dp" app:yOffset="0dp" android:layout_marginTop="-20dp"> - - - + tools:listitem="@layout/sweeper_operate_item_task_info" /> - \ No newline at end of file diff --git a/OCH/sweeper/driver/src/main/res/layout/sweeper_base_fragment.xml b/OCH/sweeper/driver/src/main/res/layout/sweeper_base_fragment.xml index 46421fd5b5..283719b8f2 100644 --- a/OCH/sweeper/driver/src/main/res/layout/sweeper_base_fragment.xml +++ b/OCH/sweeper/driver/src/main/res/layout/sweeper_base_fragment.xml @@ -16,7 +16,7 @@ android:layout_height="match_parent" /> - - - - - \ No newline at end of file diff --git a/OCH/sweeper/driver/src/main/res/layout/sweeper_cloud_traffic_data.xml b/OCH/sweeper/driver/src/main/res/layout/sweeper_cloud_traffic_data.xml index 78d5accfbc..182aa91c1c 100644 --- a/OCH/sweeper/driver/src/main/res/layout/sweeper_cloud_traffic_data.xml +++ b/OCH/sweeper/driver/src/main/res/layout/sweeper_cloud_traffic_data.xml @@ -90,7 +90,7 @@ app:layout_constraintBottom_toBottomOf="@+id/sweeperAutoState" android:layout_marginStart="@dimen/dp_26" android:background="#414869"/> - - - - - - - \ No newline at end of file + \ No newline at end of file