diff --git a/OCH/bus/driver/build.gradle b/OCH/bus/driver/build.gradle index 333947fc29..a0ac3cce2e 100644 --- a/OCH/bus/driver/build.gradle +++ b/OCH/bus/driver/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -15,9 +16,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" - javaCompileOptions { - annotationProcessorOptions { - arguments = [AROUTER_MODULE_NAME: project.getName()] + kapt { + useBuildCache = false + arguments { + arg("AROUTER_MODULE_NAME", "bus"+project.getName()) } } } @@ -42,21 +44,6 @@ android { } } - - flavorDimensions "vehicle" - productFlavors { - // 车型:金旅星辰、开沃 小巴业务 - jinlvvan { - dimension "vehicle" - buildConfigField 'int', 'NEW_TEST', '0' - } - // 车型:金旅m2 小巴业务 - m2 { - dimension "vehicle" - buildConfigField 'int', 'NEW_TEST', '1' - } - } - } dependencies { @@ -64,7 +51,7 @@ dependencies { implementation rootProject.ext.dependencies.kotlinstdlib implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.arouter - annotationProcessor rootProject.ext.dependencies.aroutercompiler + kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusDriverProvider.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusDriverProvider.kt new file mode 100644 index 0000000000..f2f6608ef9 --- /dev/null +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusDriverProvider.kt @@ -0,0 +1,37 @@ +package com.mogo.och.bus + +import android.content.Context +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.bus.fragment.BusFragment +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonService +import com.mogo.och.common.module.biz.provider.CommonServiceImpl + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ +@Route(path = OchCommonConst.BUS_DRIVER) +class BusDriverProvider : CommonServiceImpl() { + + private val tag = BusDriverProvider::class.java.simpleName + private var busFragment: BusFragment?=null + + override fun getFragment(): Fragment { + if(busFragment==null){ + busFragment = BusFragment() + } + return busFragment!! + } + + override fun resetFragment() { + busFragment = null + } + + override fun init(context: Context) { + CallerLogger.d(tag, "准备show fragment") + } +} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusProvider.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusProvider.java deleted file mode 100644 index 998d7b5d4b..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusProvider.java +++ /dev/null @@ -1,100 +0,0 @@ - -package com.mogo.och.bus; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import android.content.Context; - -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.bus.constant.BusConst; -import com.mogo.och.bus.fragment.BusFragment; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * 网约车小巴业务实现入口 - * - * @author tongchenfei - */ -@Route(path = BusConst.PATH) -public class BusProvider implements IMogoOCH { - - private static final String TAG = "BusProvider"; - - private BusFragment busFragment; - private int containerId; - private FragmentActivity activity; - - /** - * 进入鹰眼模式,设置手势缩放地图失效 - */ - private void stepIntoVrMode() { - CallerLogger.d(M_BUS + TAG, "进入vr模式"); - CallerMoGoUiSettingManager.INSTANCE.stepInNightMode();//夜间模式 状态栏字体颜色变黑 - } - - @Override - public void init(Context context) { - } - - private void showFragment() { - FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); - if (busFragment == null) { - CallerLogger.d(TAG, "准备add fragment======"); - Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(BusFragment.TAG); - if (fragmentByTag instanceof BusFragment) { - busFragment = (BusFragment) fragmentByTag; - } else { - busFragment = new BusFragment(); - } - if(!busFragment.isAdded()) { - supportFragmentManager.beginTransaction().add(containerId, busFragment, BusFragment.TAG).commitAllowingStateLoss(); - } - return; - } - CallerLogger.d(TAG, "准备show fragment"); - supportFragmentManager.beginTransaction().show(busFragment).commitAllowingStateLoss(); - } - - private void hideFragment() { - if (busFragment != null) { - CallerLogger.d(TAG, "准备hide fragment"); - activity.getSupportFragmentManager().beginTransaction().hide(busFragment).commitAllowingStateLoss(); - } - - } - - @Override - public void createCoverage(FragmentActivity activity, int containerId) { - - } - - @NotNull - @Override - public String getFunctionName() { - return TAG; - } - - @Nullable - @Override - public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) { - this.containerId = integer; - this.activity = fragmentActivity; - showFragment(); - return null; - } - - @Override - public void onDestroy() { - //若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 - if (activity == null) return; - activity.finish(); - } -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/IMogoOCH.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/IMogoOCH.java deleted file mode 100644 index 073f7fcc29..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/IMogoOCH.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mogo.och.bus; - -import androidx.annotation.IdRes; -import androidx.fragment.app.FragmentActivity; - -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; - -public -/** - * @author congtaowang - * @since 2021/1/15 - * - * 网约车抽象接口 - */ -interface IMogoOCH extends IMoGoFunctionProvider { - - /** - * 初始化网约车容器 - * - * @param activity - * @param containerId 容器ID - */ - void createCoverage(FragmentActivity activity, @IdRes int containerId); -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java index e10afc44e7..8e4528feba 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java @@ -8,8 +8,6 @@ import com.mogo.eagle.core.data.map.MogoLocation; * Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等) */ public interface IBusControllerStatusCallback { - // 是否vr map模式 - void onVRModeChanged(boolean isVRMode); // 自车定位 void onCarLocationChanged(MogoLocation location); //开始开启自动驾驶 diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index 7c570bd3f3..7be540a61c 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -19,10 +19,12 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.Group; +import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; @@ -46,6 +48,7 @@ import com.mogo.och.bus.util.BDRouteDataTestUtils; import com.mogo.och.bus.view.BizMapView; import com.mogo.och.bus.view.SlidePanelView; import com.mogo.och.common.module.utils.SoundPoolHelper; +import com.mogo.och.common.module.utils.ResourcesUtils; import org.greenrobot.eventbus.EventBus; @@ -74,7 +77,7 @@ public abstract class BaseBusTabFragment private FrameLayout flStationPanelContainer; private BizMapView mapBizView; private Group groupTestPanel; - private TrafficDataView mTrafficDataView; +// private TrafficDataView mTrafficDataView; // private BusTrafficLightView mTrafficLightView; //远景和中景的切换 @@ -92,6 +95,7 @@ public abstract class BaseBusTabFragment public boolean isAnimateRunning = false; + /** * 滑动按钮触发的事件 */ @@ -123,7 +127,15 @@ public abstract class BaseBusTabFragment // tvOperationStatus = findViewById(R.id.module_mogo_och_operation_status); tvArrived = findViewById(R.id.module_mogo_och_arrived_tv); - mTrafficDataView = (TrafficDataView) findViewById(R.id.bus_arc); +// mTrafficDataView = (TrafficDataView) findViewById(R.id.bus_arc); + + + FrameLayout flSpeed = findViewById(R.id.fl_speed); + if (flSpeed != null) { + CallerDevaToolsManager.INSTANCE.attachAutopilotBeforeLaunchView(flSpeed.getContext(), flSpeed); + } + + LayoutInflater.from(getContext()).inflate(getStationPanelViewId(), flStationPanelContainer); slidePanelView.setOnSlidePanelMoveToEndListener(onSlideToEndListener); @@ -157,7 +169,7 @@ public abstract class BaseBusTabFragment }); initListener(); - setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState()); + setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() { @Override @@ -205,7 +217,7 @@ public abstract class BaseBusTabFragment mBadcaseBtn = findViewById(R.id.module_mogo_och_badcase_rl); if (mBadcaseBtn != null) { - CallerDevaToolsManager.INSTANCE.initBadCase(mBadcaseBtn); + CallerDevaToolsManager.INSTANCE.reportWorkOrder(mBadcaseBtn); } //消息盒子 @@ -293,9 +305,12 @@ public abstract class BaseBusTabFragment @Override public void onDestroyView() { mapBizView.onDestroy(); - super.onDestroyView(); + if(smallMapView != null){ + smallMapView.onDestroy(); + } CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG); EventBus.getDefault().unregister(this); + super.onDestroyView(); } /** @@ -313,10 +328,13 @@ public abstract class BaseBusTabFragment * @param text 指定的文字 */ public void showSlidePanel(String text) { - getActivity().runOnUiThread(() -> { - slidePanelView.setText(text); - slidePanelView.setVisibility(View.VISIBLE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setText(text); + slidePanelView.setVisibility(View.VISIBLE); + } + },UiThreadHandler.MODE.QUEUE); setArrivedClickable(false); } @@ -326,23 +344,29 @@ public abstract class BaseBusTabFragment * @param isClickable */ public void setArrivedClickable(boolean isClickable) { - getActivity().runOnUiThread(() -> { - tvArrived.setEnabled(isClickable); - if (isClickable) { - tvArrived.setTextColor(getResources().getColor(R.color.bus_white)); - } else { - tvArrived.setTextColor(getResources().getColor(R.color.bus_arrived_btn_un_clickable_color)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + tvArrived.setEnabled(isClickable); + if (isClickable) { + tvArrived.setTextColor(ResourcesUtils.getColor(R.color.bus_white)); + } else { + tvArrived.setTextColor(ResourcesUtils.getColor(R.color.bus_arrived_btn_un_clickable_color)); + } } - }); + },UiThreadHandler.MODE.QUEUE); } /** * 隐藏滑动按钮 */ public void hideSlidePanel() { - getActivity().runOnUiThread(() -> { - slidePanelView.setVisibility(View.GONE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setVisibility(View.GONE); + } + },UiThreadHandler.MODE.QUEUE); } public void playDI() { @@ -354,40 +378,46 @@ public abstract class BaseBusTabFragment * * @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中 */ - public void onAutopilotStatusChanged(int autopilotStatus) { - getActivity().runOnUiThread(() -> { - changeAutopilotBtnView(autopilotStatus, isAnimateRunning); - }); + public void onAutopilotStatusChanged(int autopilotStatus,boolean canStartAutopilt) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + changeAutopilotBtnView(autopilotStatus, isAnimateRunning,canStartAutopilt); + } + },UiThreadHandler.MODE.QUEUE); } - public void setAutopilotBtnStatus(int autopilotStatus) { + public void setAutopilotBtnStatus(int autopilotStatus,boolean canStartAutopilt) { if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == autopilotStatus) {//0不可用 - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable)); + ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_disable)); ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv)); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon); -// ctvAutopilotStatus.setSelected(false); ctvAutopilotStatus.setClickable(true); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg)); - + ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg); } else { - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); + ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot); if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用 -// ctvAutopilotStatus.setSelected(false); - ctvAutopilotStatus.setClickable(true); - ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv)); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg)); + ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_runnig_tv)); + if(canStartAutopilt){ + ctvAutopilotStatus.setClickable(true); + ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg); + }else { + ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_disable)); + ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon); + ctvAutopilotStatus.setClickable(true); + ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg); + } } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) { ctvAutopilotStatusTv.setText(R.string.bus_loading_autopilot_runnig_tv); ctvAutopilotStatus.setClickable(true); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_2_status_bg)); -// ctvAutopilotStatus.setSelected(true); + ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_2_status_bg); } else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING == autopilotStatus) { ctvAutopilotStatusTv.setText(R.string.bus_pingxing_driver); ctvAutopilotStatus.setClickable(false); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.pingxingjiashi)); + ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_pxjs); } } @@ -397,21 +427,21 @@ public abstract class BaseBusTabFragment if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) {//2 running ctvAutopilotStatusIv.setImageResource(R.drawable.bus_right_autopilot_icon); - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); - ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_success_tv)); + ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_normal)); + ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_success_tv)); // ctvAutopilotStatus.setSelected(false); ctvAutopilotStatus.setClickable(false); } else { ctvAutopilotStatusIv.setImageResource(R.drawable.bus_wrong_autopilot_icon); - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); - ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_failure_tv)); + ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_normal)); + ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_failure_tv)); ctvAutopilotStatus.setClickable(false); // ctvAutopilotStatus.setSelected(false); } - UiThreadHandler.postDelayed(() -> setAutopilotBtnStatus(autopilotStatus), 1000); + UiThreadHandler.postDelayed(() -> setAutopilotBtnStatus(autopilotStatus,CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)), 1000); } - private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning) { + private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning, boolean canStartAutopilt) { if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != autopilotStatus) { // 主动开启自动驾驶中,不为2(为0、1)则继续loading @@ -420,7 +450,7 @@ public abstract class BaseBusTabFragment if (isAnimateRunning) { stopAnimAndUpdateBtnStatus(); } else { - setAutopilotBtnStatus(autopilotStatus); + setAutopilotBtnStatus(autopilotStatus,canStartAutopilt); } } @@ -434,19 +464,12 @@ public abstract class BaseBusTabFragment * 隐藏【自动驾驶】按钮 */ public void hideAutopilotBiz() { - getActivity().runOnUiThread(() -> { -// ctvAutopilotStatus.setVisibility(View.GONE); -// slidePanelView.setVisibility(View.GONE); - }); } /** * 展示【自动驾驶】按钮 */ public void showAutopilotBiz() { -// getActivity().runOnUiThread(() -> { -// ctvAutopilotStatus.setVisibility(View.VISIBLE); -// }); } public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() { @@ -477,9 +500,8 @@ public abstract class BaseBusTabFragment */ public void startAutopilotAnimation() { isAnimateRunning = true; - ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_tv)); - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); -// ctvAutopilotStatus.setSelected(false); + ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_tv)); + ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatus.setClickable(true); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_loading_autopilot_icon); if (autopilotLoadingAnimator == null) { @@ -517,22 +539,19 @@ public abstract class BaseBusTabFragment } } - /** - * 迈速表实时更新 - */ - public void updateSpeedView(float newSpeed) { - int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值 - if (mTrafficDataView != null) { - mTrafficDataView.updateSpeedWithValue(speed); - } - } +// /** +// * 迈速表实时更新 +// */ +// public void updateSpeedView(float newSpeed) { +// int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值 +// if (mTrafficDataView != null) { +// mTrafficDataView.updateSpeedWithValue(speed); +// } +// } @Override public void onDestroy() { super.onDestroy(); - if(smallMapView != null){ - smallMapView.onDestroy(); - } MogoMapListenerHandler.Companion.getMogoMapListenerHandler().unregisterHostMapListener(TAG); } diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index e015160501..54547608bb 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -15,7 +15,6 @@ import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.Group; -import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.storage.SharedPrefsMgr; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.temp.EventLogout; @@ -26,22 +25,21 @@ 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.ActivityUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.overlay.IMoGoOverlayManager; import com.mogo.map.overlay.core.Level; import com.mogo.map.overlay.point.Point; import com.mogo.och.bus.R; import com.mogo.och.bus.bean.BusStationBean; import com.mogo.och.bus.constant.BusConst; -import com.mogo.och.bus.net.login.LoginBusImpl; import com.mogo.och.bus.presenter.BusPresenter; import com.mogo.och.bus.ui.BusStationCommonItem; import com.mogo.och.bus.ui.BusSwitchLineActivity; import com.mogo.och.bus.view.SlidePanelView; -import com.mogo.och.common.module.biz.constant.OchCommonConst; -import com.mogo.och.common.module.biz.provider.LoginService; import com.mogo.och.common.module.utils.BlinkAnimationUtil; import com.mogo.och.common.module.utils.OCHThreadPoolManager; import com.mogo.och.common.module.utils.QRUtilsKt; +import com.mogo.och.common.module.utils.ResourcesUtils; import com.mogo.och.common.module.wigets.BindQRCodeDialog; import com.mogo.och.common.module.wigets.MarqueeTextView; import com.mogo.och.common.module.wigets.OCHCommitDialog; @@ -75,8 +73,6 @@ public class BusFragment extends BaseBusTabFragment private BusStationCommonItem secondStationItem; private BusStationCommonItem thirdStationItem; - private LoginService loginService; - @Override public String getTagName() { return "BusFragment"; @@ -85,17 +81,19 @@ public class BusFragment extends BaseBusTabFragment @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation(); - if (loginService != null) { - loginService.registerFragment(this, getPresenter(), new LoginBusImpl()); - } } @Override public void onDestroyView() { + if (mPresenter != null) { + mPresenter.onDestroy(this); + } + IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager(); + if(overlayManager!=null) { + overlayManager.removeAllLines(); + overlayManager.removeAllPoints(); + } super.onDestroyView(); - loginService.unRegisterFragment(); - loginService = null; } @Override @@ -203,20 +201,23 @@ public class BusFragment extends BaseBusTabFragment return; } - getActivity().runOnUiThread(() -> { - if (stationList == null) { - // 获取小巴数据失败 - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (stationList == null) { + // 获取小巴数据失败 + return; + } + + showStationsPanel(); + showOrHideSwitchLineBtn(false); + + mLineName.setText(lineName); + mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); + // 渲染小巴路线数据 + updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); } - - showStationsPanel(); - showOrHideSwitchLineBtn(false); - - mLineName.setText(lineName); - mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); - // 渲染小巴路线数据 - updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); - }); + },UiThreadHandler.MODE.QUEUE); } private void updateBusStationStatus(List stationList, @@ -278,23 +279,23 @@ public class BusFragment extends BaseBusTabFragment if (arrivingOrArrivedIndex == 0 || arrivingOrArrivedIndex -1 == 0 || (arrivingOrArrivedIndex -2 == 0 && stationList.size() == 3)){ - firstStationItem.setStationTag(getResources().getString(R.string.bus_station_txt_tag_start)); + firstStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_start)); }else { firstStationItem.setStationTag(""); } if (arrivingOrArrivedIndex + 1 == stationList.size() - 1 || arrivingOrArrivedIndex == stationList.size() - 1 || (arrivingOrArrivedIndex == 0 && arrivingOrArrivedIndex + 2 == stationList.size() - 1)){ //确认是否显示 "终" - thirdStationItem.setStationTag(getResources().getString(R.string.bus_station_txt_tag_end)); + thirdStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_end)); }else { thirdStationItem.setStationTag(""); } //圆点: 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 if (arrivingOrArrivedIndex == 0 && isArrived){ - firstStationItem.setStationNameColor(getResources().getColor(R.color.bus_line_station_color_selected)); - secondStationItem.setStationNameColor(getResources().getColor(R.color.bus_arrived_station_name_text_color)); - thirdStationItem.setStationNameColor(getResources().getColor(R.color.bus_arrived_station_name_text_color)); + firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected)); + secondStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color)); + thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color)); firstStationItem.setStationName(stationList.get(0).getName()); secondStationItem.setStationName(stationList.get(1).getName()); @@ -308,9 +309,9 @@ public class BusFragment extends BaseBusTabFragment secondStationItem.setStationArrowBg(2); }else if (arrivingOrArrivedIndex == stationList.size() - 1){ - firstStationItem.setStationNameColor(getResources().getColor(R.color.bus_station_tag_txt_un_color)); - secondStationItem.setStationNameColor(getResources().getColor(R.color.bus_station_tag_txt_un_color)); - thirdStationItem.setStationNameColor(getResources().getColor(R.color.bus_line_station_color_selected)); + firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color)); + secondStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color)); + thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected)); firstStationItem.setStationName(stationList.get(arrivingOrArrivedIndex -2).getName()); secondStationItem.setStationName(stationList.get(arrivingOrArrivedIndex -1).getName()); @@ -328,9 +329,9 @@ public class BusFragment extends BaseBusTabFragment } }else { - firstStationItem.setStationNameColor(getResources().getColor(R.color.bus_station_tag_txt_un_color)); - secondStationItem.setStationNameColor(getResources().getColor(R.color.bus_line_station_color_selected)); - thirdStationItem.setStationNameColor(getResources().getColor(R.color.bus_arrived_station_name_text_color)); + firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color)); + secondStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected)); + thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color)); firstStationItem.setStationName(stationList.get(arrivingOrArrivedIndex -1).getName()); secondStationItem.setStationName(stationList.get(arrivingOrArrivedIndex).getName()); @@ -364,23 +365,23 @@ public class BusFragment extends BaseBusTabFragment secondStationItem.showOrHideStationArrowBg(false); thirdStationItem.showOrHideStationArrowBg(false); - firstStationItem.setStationTag(getResources().getString(R.string.bus_station_txt_tag_start)); - thirdStationItem.setStationTag(getResources().getString(R.string.bus_station_txt_tag_end)); + firstStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_start)); + thirdStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_end)); firstStationItem.setStationName(stationList.get(0).getName()); thirdStationItem.setStationName(stationList.get(1).getName()); //圆点: 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 if (arrivingOrArrivedIndex == 0 && isArrived){//到站 - firstStationItem.setStationNameColor(getResources().getColor(R.color.bus_line_station_color_selected)); - thirdStationItem.setStationNameColor(getResources().getColor(R.color.bus_arrived_station_name_text_color)); + firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected)); + thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color)); firstStationItem.setStationPointBg(1); firstStationItem.setStationArrowBg(2); thirdStationItem.setStationPointBg(0); }else { - firstStationItem.setStationNameColor(getResources().getColor(R.color.bus_station_tag_txt_un_color)); - thirdStationItem.setStationNameColor(getResources().getColor(R.color.bus_line_station_color_selected)); + firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color)); + thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected)); if (isArrived){ //到终点 firstStationItem.setStationPointBg(0); firstStationItem.setStationArrowBg(0); @@ -397,10 +398,10 @@ public class BusFragment extends BaseBusTabFragment private void showOrHideSwitchLineBtn(boolean isShow) { if (isShow){//显示切换路线 mSwitchLine.setTag(0); - mSwitchLine.setText(getResources().getString(R.string.bus_switch_line_btn)); + mSwitchLine.setText(ResourcesUtils.getString(R.string.bus_switch_line_btn)); }else {//显示结束路线 mSwitchLine.setTag(1); - mSwitchLine.setText(getResources().getString(R.string.bus_close_line_btn)); + mSwitchLine.setText(ResourcesUtils.getString(R.string.bus_close_line_btn)); } } @@ -410,7 +411,7 @@ public class BusFragment extends BaseBusTabFragment @Override public int getStationPanelViewId() { - return R.layout.fragment_och_bus; + return R.layout.bug_fragment_och; } @Override @@ -461,17 +462,6 @@ public class BusFragment extends BaseBusTabFragment smallMapView.clearPolyline(); } - /** - * VR模式切换 - * - * @param isVRMode - */ - public void onVRModeChanged(boolean isVRMode) { - if (mRootView != null) { - mRootView.setVisibility(isVRMode ? View.VISIBLE : View.GONE); - } - } - /** * 绘制地图起点终点 * @@ -525,7 +515,7 @@ public class BusFragment extends BaseBusTabFragment //本次行程未结束,不支持切换路线。点击则toast提示:当前行程未完成,不可切换路线 if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - ToastUtils.showLong(getResources().getString(R.string.bus_switch_line_btn_warning1)); + ToastUtils.showLong(ResourcesUtils.getString(R.string.bus_switch_line_btn_warning1)); return; } if ((int)mSwitchLine.getTag() == 0){//切换路线 diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/BusLineModel.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/BusLineModel.java index ff9f265fa9..fe08e545f2 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/BusLineModel.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/BusLineModel.java @@ -13,8 +13,8 @@ import com.mogo.och.bus.bean.BusRoutesResponse; import com.mogo.och.bus.callback.IBusLinesCallback; import com.mogo.och.bus.net.OrderServiceManager; import com.mogo.och.bus.ui.BusSwitchLineActivity; -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager; +import com.mogo.och.common.module.network.OchCommonServiceCallback; +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; /** * @author: wangmingjun diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java index fabef08b13..e26549b209 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -12,7 +12,6 @@ import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.alibaba.android.arouter.launcher.ARouter; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; import com.mogo.commons.AbsMogoApplication; @@ -55,27 +54,30 @@ import com.mogo.och.bus.util.BusAnalyticsManager; import com.mogo.och.bus.util.BusSendTripInfoManager; import com.mogo.och.bus.util.BusTrajectoryManager; import com.mogo.och.bus.util.BusVoiceManager; -import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; -import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage; -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.provider.LoginService; +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager; +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager; +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg; +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager; +import com.mogo.och.common.module.manager.socket.cloud.data.OCHOperationalMessage; +import com.mogo.och.common.module.constant.OchCommonConst; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.network.OchCommonServiceCallback; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; -import com.mogo.och.common.module.manager.autopilotmanager.autopilot.ArrivedStation; -import com.mogo.och.common.module.manager.autopilotmanager.trajectory.ITrajectoryListListener; -import com.mogo.och.common.module.manager.autopilotmanager.trajectory.TrajectoryManager; -import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener; -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager; -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager; +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; +import com.mogo.och.common.module.manager.autopilot.trajectory.ITrajectoryListListener; +import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryManager; +import com.mogo.och.common.module.manager.distance.ITrajectoryListener; +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager; +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.MultiRequestLimitChecker; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.OCHThreadPoolManager; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.utils.ToastUtilsOch; +import com.mogo.och.common.module.voice.VoiceNotice; import org.jetbrains.annotations.NotNull; @@ -123,8 +125,6 @@ public class OrderModel { //0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0 private volatile int firstStartAutopilot = 0; - private LoginService loginService; - private final Handler handler = new Handler(msg -> { if (msg.what == MSG_QUERY_BUS_STATION) { queryBusRoutes(); @@ -149,12 +149,9 @@ public class OrderModel { public void init() { mContext = AbsMogoApplication.getApp(); - loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation(); // 定位监听 CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,5, mMapLocationListener); - MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); - TrajectoryManager.INSTANCE.addTrajectoryListListenerr(TAG,iTrajectoryListener); //开启自驾后 异常信息返回 @@ -309,13 +306,11 @@ public class OrderModel { startOrStopOrderLoop(false); //startOrStopQueryPassengerWriteOff(false); - MogoStatusManager.getInstance().unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); // 注销定位监听 CallerChassisLocationGCJ02ListenerManager.INSTANCE.removeListener(TAG); TrajectoryManager.INSTANCE.addTrajectoryListListenerr(TAG,null); - loginService = null; OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); @@ -329,18 +324,6 @@ public class OrderModel { TrajectoryAndDistanceManager.INSTANCE.removeListener(TAG); } - private final IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() { - // VR mode变更回调 - @Override - public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { - if (StatusDescriptor.VR_MODE == descriptor) { - if (mControllerStatusCallback != null) { - mControllerStatusCallback.onVRModeChanged(isTrue); - } - } - } - }; - private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { @Override public void brakeStatusChanged(boolean isBrakeAvailable) { @@ -362,7 +345,6 @@ public class OrderModel { @Override public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { if (null == gnssInfo) return; - Logger.d(TAG, "onChassisLocationGCJ02"); if (mControllerStatusCallback != null) { mControllerStatusCallback.onCarLocationChanged(gnssInfo); } @@ -536,7 +518,6 @@ public class OrderModel { CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); // 取消自驾 setTrajectoryStation(null,null,-1L); - // startOrStopQueryPassengerWriteOff(false); } } @@ -624,9 +605,11 @@ public class OrderModel { // 非自驾状态---->预写日志----> 启动自驾 ---> 自驾启动成功 ----> 上报日志 //  自驾状态---->启动自驾 ---> 自驾启动成功 - //根据开关和后台是否发布轨迹启动自驾 - if (FunctionBuildConfig.isPassStartAutopilotCommand && TextUtils.isEmpty(busRoutesResult.csvFileUrl) - && TextUtils.isEmpty(busRoutesResult.csvFileUrlDPQP)){ + //1、判断轨迹url是否可用 + if (FunctionBuildConfig.isPassStartAutopilotCommand + && TextUtils.isEmpty(busRoutesResult.csvFileUrl) + && TextUtils.isEmpty(busRoutesResult.csvFileUrlDPQP) + ){ ToastUtils.showLong("无发布轨迹, 请发布后重试"); CallerLogger.e(M_BUS + TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand @@ -634,11 +617,37 @@ public class OrderModel { + "busRoutesResult.csvFileUrlDPQP = "+busRoutesResult.csvFileUrlDPQP); return; } + //2、6个条件判断 + if (!CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(true, 0)) { + return; + } CallerLogger.e(M_BUS + TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand); + //3、距离轨迹15m计算 + String resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long)busRoutesResult.getLineId()); + if(TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)){ + MogoLocation nextStationPoint = new MogoLocation(); + if (backgroundCurrentStationIndex < stationList.size() - 1) { + BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); + nextStationPoint.setLongitude(nextStation.getGcjLon()); + nextStationPoint.setLatitude(nextStation.getGcjLat()); + } + BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex); + MogoLocation currentStationPoint = new MogoLocation(); + currentStationPoint.setLongitude(busStationBean.getGcjLon()); + currentStationPoint.setLatitude(busStationBean.getGcjLat()); + setTrajectoryStation(currentStationPoint,nextStationPoint, (long)busRoutesResult.getLineId()); + resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long)busRoutesResult.getLineId()); + } + if(!StringUtils.isEmpty(resion)){ + ToastUtils.showShort(resion); + VoiceNotice.showNotice(resion); + return; + } + //4、ssm 给出数据 if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()) { ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + ", 请稍候重试"); @@ -646,11 +655,7 @@ public class OrderModel { return; } - String resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long)busRoutesResult.getLineId()); - if(!StringUtils.isEmpty(resion)){ - ToastUtils.showShort(resion); - return; - } + firstStartAutopilot++; @@ -665,7 +670,7 @@ public class OrderModel { return; } - CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters); + OchAutoPilotManager.startAutoPilot(parameters); CallerLogger.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + @@ -1136,9 +1141,7 @@ public class OrderModel { public void sendWriteOffNumToClient(String msg){ AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,-1); - - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(passengerMsg).getBytes()); + LanSocketManager.sendMsgToClient(passengerMsg); } // 车机端上传心跳数据(只在出车状态时上传) @@ -1172,7 +1175,7 @@ public class OrderModel { public void logout() { double mLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude(); double mLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude(); - loginService.loginOut(mLatitude, mLongitude); + LoginStatusManager.loginOut(mLatitude, mLongitude); } public void triggerStartServiceEvent(boolean isRestart, boolean send) { @@ -1267,26 +1270,6 @@ public class OrderModel { return parameters; } - public void setStation(){ - BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex); - String nextStationName = ""; - String nextStationNameKr = ""; - MogoLocation nextStationPoint = new MogoLocation(); - if (backgroundCurrentStationIndex < stationList.size() - 1) { - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - nextStationName = nextStation.getName(); - nextStationNameKr = nextStation.getNameKr(); - nextStationPoint.setLongitude(nextStation.getGcjLon()); - nextStationPoint.setLatitude(nextStation.getGcjLat()); - } - final String currentStationName = busStationBean.getName(); - String finalNextStationName = nextStationName; - String finalNextStationNameKr = nextStationNameKr; - MogoLocation currentStationPoint = new MogoLocation(); - currentStationPoint.setLongitude(busStationBean.getGcjLon()); - currentStationPoint.setLatitude(busStationBean.getGcjLat()); - } - public void setTrajectoryStation(MogoLocation startStation,MogoLocation endStation,Long lineId){ TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation,endStation,lineId); } diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt index 2cd34d2b6f..c6e27dc5c4 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt @@ -8,10 +8,10 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.och.bus.bean.* -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.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry /** * @author: wangmingjun diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt deleted file mode 100644 index 0f3c2d294f..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.och.bus.net.login - -import android.content.Context -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.network.LoginDefaultManage -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback - -class LoginBusImpl: LoginDefaultManage { - - override fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.getPhoneCode(context,phone,callback) - } - - override fun gotoLoginBycode( - context: Context, - phone: String?, - code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback) - } - - override fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.logout(context,location4Login,callback) - } - - override fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.queryDriverServiceStatus(context,callback) - } - - -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java index 9411be65fd..8a54250475 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java @@ -62,7 +62,14 @@ public class BusLinePresenter extends Presenter implements IB @Override public void onChangeLineIdSuccess() { OrderModel.getInstance().clearBusStationDatas(); - runOnUIThread(() -> mView.onChangeLineIdSuccess()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onChangeLineIdSuccess(); + } + } + }, UiThreadHandler.MODE.QUEUE); } public void queryBusLines(){ @@ -105,6 +112,8 @@ public class BusLinePresenter extends Presenter implements IB @Override public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) { - mView.onBusLineTasks(o,position,autoRefresh); + if(mView!=null) { + mView.onBusLineTasks(o,position,autoRefresh); + } } } diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index c3f484e46e..72f14c7d25 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -13,6 +13,7 @@ import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; 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.UiThreadHandler; @@ -27,13 +28,13 @@ import com.mogo.och.bus.fragment.BusFragment; import com.mogo.och.bus.model.OrderModel; import com.mogo.och.bus.util.BusTrajectoryManager; import com.mogo.och.bus.util.BusVoiceManager; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.callback.ILoginCallback; -import com.mogo.och.common.module.biz.constant.LoginStatusManager; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; -import com.mogo.och.common.module.manager.autopilotmanager.autopilot.ArrivedStation; -import com.mogo.och.common.module.manager.autopilotmanager.autopilot.IOchAutopilotStatusListener; -import com.mogo.och.common.module.manager.autopilotmanager.autopilot.OchAutoPilotStatusListenerManager; +import com.mogo.och.common.module.biz.login.ILoginCallback; +import com.mogo.och.common.module.biz.login.LoginStatusEnum; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener; +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager; import com.zhjt.mogo.adas.data.AdasConstants; import java.util.ArrayList; @@ -59,9 +60,9 @@ public class BusPresenter extends Presenter public BusPresenter(BusFragment view) { super(view); //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 - OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG,this); OrderModel.getInstance().init(); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); + } @Override @@ -83,6 +84,8 @@ public class BusPresenter extends Presenter OrderModel.getInstance().setControllerStatusCallback(this); OrderModel.getInstance().setPassengerCallback(this); OrderModel.getInstance().setAdasStatusCallback(this); + OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this); + LoginStatusManager.INSTANCE.addListener(TAG, this); } public void releaseListener() { @@ -92,6 +95,8 @@ public class BusPresenter extends Presenter OrderModel.getInstance().setPassengerCallback(null); OrderModel.getInstance().setAdasStatusCallback(null); OCHAdasAbilityManager.getInstance().release(); + OchAutoPilotStatusListenerManager.INSTANCE.removeListener(TAG); + LoginStatusManager.INSTANCE.removeListener(TAG); } public void abortTask() { @@ -103,7 +108,7 @@ public class BusPresenter extends Presenter } public void restartAutopilot() { - if (OrderModel.getInstance().isGoingToNextStation()){ + if (OrderModel.getInstance().isGoingToNextStation()) { OrderModel.getInstance().restartAutopilot(); } } @@ -114,32 +119,51 @@ public class BusPresenter extends Presenter } @Override - public void updateBusTaskStatus(String lineName,String lineTime, + public void updateBusTaskStatus(String lineName, String lineTime, List stationList, int arrivingOrArrivedIndex, boolean isArrived) { mStationList.clear(); mStationList.addAll(stationList); - if (arrivingOrArrivedIndex == 0 || isArrived){ + if (arrivingOrArrivedIndex == 0 || isArrived) { mCurrentStation = arrivingOrArrivedIndex; - }else { - mCurrentStation = arrivingOrArrivedIndex -1; + } else { + mCurrentStation = arrivingOrArrivedIndex - 1; } CallerLogger.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation); - if (mView != null) { - runOnUIThread(() -> mView.updateBusTaskStatus(lineName,lineTime, - stationList, arrivingOrArrivedIndex, isArrived)); - } + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.updateBusTaskStatus(lineName, lineTime, + stationList, arrivingOrArrivedIndex, isArrived); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void updateEmptyUi() { - runOnUIThread(() -> mView.updateLineEmptyUI()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.updateLineEmptyUI(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void clearBusStationsMarkers() { - runOnUIThread(() -> mView.clearBusStationsMarkers()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.clearBusStationsMarkers(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override @@ -152,12 +176,12 @@ public class BusPresenter extends Presenter @Override public void onAutopilotArriveAtStation(ArrivedStation arrivedStation) { - CallerLogger.e( M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive"); - arriveStation(arrivedStation,"底盘触发进站"); + CallerLogger.e(M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive"); + arriveStation(arrivedStation, "底盘触发进站"); } - public void arriveStation(ArrivedStation arrivedStation,String type){ - OrderModel.getInstance().onArriveAt(arrivedStation,type); + public void arriveStation(ArrivedStation arrivedStation, String type) { + OrderModel.getInstance().onArriveAt(arrivedStation, type); } @Override @@ -181,52 +205,62 @@ public class BusPresenter extends Presenter return; } // 改变UI自动驾驶状态 - runOnUIThread(() -> mView.onAutopilotStatusChanged(state)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); + } + } + }, UiThreadHandler.MODE.QUEUE); break; case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING: OrderModel.getInstance().triggerStartServiceEvent( - OrderModel.getInstance().isRestartAutopilot(), true); + OrderModel.getInstance().isRestartAutopilot(), true); // 改变UI自动驾驶状态 - runOnUIThread(() -> mView.onAutopilotStatusChanged(state)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); + } + } + }, UiThreadHandler.MODE.QUEUE); break; default: - runOnUIThread(() -> mView.onAutopilotEnableChange(false)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.onAutopilotEnableChange(false); + } + } + }, UiThreadHandler.MODE.QUEUE); break; } } - @Override - public void onVRModeChanged(boolean isVRMode) { - runOnUIThread(() -> mView.onVRModeChanged(isVRMode)); - } - @Override public void onCarLocationChanged(MogoLocation location) { - if (null != location) { - runOnUIThread(() -> mView.updateSpeedView((float) location.getGnssSpeed())); - } + } @Override public void startOpenAutopilot() { //非美化模式下启动动画 - runOnUIThread(() -> mView.startAutopilotAnimation()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.startAutopilotAnimation(); + } + } + }, UiThreadHandler.MODE.QUEUE); //中间站点再次开启自驾时, 自动驾驶状态是2未改变, 此次鹰眼底层不再返给业务,需优化按钮动画显示 if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - == CallerAutoPilotStatusListenerManager.INSTANCE.getState()){ - mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState()); - } - } - - private void runOnUIThread(Runnable executor) { - if (executor == null) { - return; - } - if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.post(executor); - } else { - executor.run(); + == CallerAutoPilotStatusListenerManager.INSTANCE.getState() && mView != null) { + mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); } } @@ -237,56 +271,37 @@ public class BusPresenter extends Presenter onAutopilotStatusResponse(status); } - @Override - public void onAutopilotRouteLineId(long lineId) { + @Override + public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { + BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo, lineId); } - @Override - public void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo) { - BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo); - } @Override - public void onAutopilotIpcConnectStatusChanged(@NonNull AdasConstants.IpcConnectionStatus status, @Nullable String reason) { - } - - @Override - public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { - - } - - @Override - public void onSystemStatus(@NonNull SsmInfo.SsmStatusInf statusInf) { - } - - @Override - public void loginSuccess(DriverStatusQueryRespBean data) { + public void onStatusChange(LoginStatusEnum currentStatus) { CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); - if(LoginStatusManager.isLogin()){ + if (LoginStatusManager.isLogin()) { OrderModel.getInstance().startOrStopOrderLoop(true); OrderModel.getInstance().queryBusRoutes(); - }else { + } else { BusTrajectoryManager.getInstance().stopTrajReqLoop(); OrderModel.getInstance().startOrStopOrderLoop(false); BusTrajectoryManager.getInstance().stopTrajReqLoop(); clearBusStationsMarkers(); - mView.hideSlidePanel(); + if(mView!=null) { + mView.hideSlidePanel(); + } OrderModel.getInstance().closeBeautificationMode(); } } - @Override - public void loginFail(boolean isLogin) { - - } - @Override public void playPassenger(WriteOffPassenger passenger) { int passengerNum = passenger.passengerSize; - if (passengerNum > 1){ //多人播报 "x人" ---》x人核验通过 - OrderModel.getInstance().sendWriteOffNumToClient(passengerNum+"人核验通过"); - }else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过" + if (passengerNum > 1) { //多人播报 "x人" ---》x人核验通过 + OrderModel.getInstance().sendWriteOffNumToClient(passengerNum + "人核验通过"); + } else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过" // mView.playDI(); OrderModel.getInstance().sendWriteOffNumToClient("核验通过"); } @@ -295,14 +310,20 @@ public class BusPresenter extends Presenter @Override public void onStartAdasFailure() { - runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.stopAnimAndUpdateBtnStatus(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void onAutopilotDockerInfo(@NonNull String dockerVersion) { - } - - @Override - public void onSsmReceiveTimeout(boolean isTimeout) { + public void canStartAutopilot(boolean canStart) { + if(mView!=null) { + mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), canStart); + } } } diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt index 412574bdc4..fd6f7b874e 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt @@ -42,7 +42,7 @@ class BusSwitchLineActivity : MvpActivity private lateinit var linearLayoutManager:LinearLayoutManager private val mData: MutableList = ArrayList() override fun getLayoutId(): Int { - return R.layout.activity_bus_switch_line + return R.layout.bus_switch_line } override fun createPresenter(): BusLinePresenter { diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt index 8a43a1137e..53b80232ab 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt @@ -11,7 +11,7 @@ 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.DateTimeUtils import com.mogo.och.bus.constant.BusConst -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java index 613fb2d050..e58f203c0a 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java @@ -9,9 +9,8 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils; import com.mogo.och.bus.bean.BusRoutesResult; import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.model.OrderModel; -import com.mogo.och.common.module.biz.constant.LoginStatusManager; -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager; -import com.zhidao.socket.utils.LoginStatusUtil; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; import java.util.concurrent.TimeUnit; @@ -64,6 +63,10 @@ public class BusTrajectoryManager { } } + public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) { + onAutopilotGuardian(guardianInfo); + } + /** * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) * @param guardianInfo diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt index 71a562a555..999aaa4f7a 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt @@ -21,7 +21,7 @@ object BusVoiceManager { } fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { return } val context = AbsMogoApplication.getApp() diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt index 47a515da4b..fe5d97bbcc 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt @@ -20,9 +20,9 @@ class BizMapView @JvmOverloads constructor( private lateinit var mapBizView: MapBizView init { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { LayoutInflater.from(context).inflate(R.layout.bus_m2_bizmap_map, this, true) - }else if(AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){ + }else if(AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){ LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true) }else{ LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java index 6692778b2e..d83e5272a5 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java @@ -27,7 +27,7 @@ import com.mogo.eagle.core.utilcode.util.ConvertUtils; import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.bus.R; -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager; +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; import me.jessyan.autosize.AutoSizeConfig; import me.jessyan.autosize.utils.AutoSizeUtils; diff --git a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_check.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_check.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_nor.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_notice_box_bg.9.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_notice_box_bg.9.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_dot_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_dot_line.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/end_maker_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/end_maker_icon.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_collect.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_collect.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_select.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_select.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_normal.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_normal.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_select.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_select.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_station_start_end.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/icon_station_start_end.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/no_order_data.png b/OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/no_order_data.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png b/OCH/bus/driver/src/main/res/drawable-nodpi/pingxingjiashi.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/pingxingjiashi.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/press_start_status.png b/OCH/bus/driver/src/main/res/drawable-nodpi/press_start_status.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/press_start_status.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/press_start_status.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/start_failure.png b/OCH/bus/driver/src/main/res/drawable-nodpi/start_failure.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/start_failure.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/start_failure.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/start_maker_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/start_maker_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/start_maker_icon.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/start_maker_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable-xhdpi/start_success.png b/OCH/bus/driver/src/main/res/drawable-nodpi/start_success.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable-xhdpi/start_success.png rename to OCH/bus/driver/src/main/res/drawable-nodpi/start_success.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml index 21c3611ffe..9c91366aa3 100644 --- a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml +++ b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml @@ -1,8 +1,8 @@ - + - + diff --git a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml index 1b95919363..f0e15d25d2 100644 --- a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml +++ b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml @@ -1,8 +1,8 @@ - + - + diff --git a/OCH/bus/driver/src/main/res/layout/fragment_och_bus.xml b/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml similarity index 97% rename from OCH/bus/driver/src/main/res/layout/fragment_och_bus.xml rename to OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml index 731ca8cc2b..c1a8d6958d 100644 --- a/OCH/bus/driver/src/main/res/layout/fragment_och_bus.xml +++ b/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/module_och_bus_order_status_stationInfo" - android:layout_width="@dimen/module_mogo_och_autopilot_order_bg_width" + android:layout_width="@dimen/dp_616" android:layout_height="wrap_content" android:paddingBottom="@dimen/dp_28" android:background="@drawable/bus_line_panel_bg" @@ -96,8 +96,9 @@ android:id="@+id/switch_line_btn" android:layout_width="@dimen/bus_switch_line_btn_width_1" android:layout_height="@dimen/bus_switch_line_btn_height_1" - android:layout_marginLeft="@dimen/dp_28" android:layout_marginTop="@dimen/dp_40" + android:layout_marginStart="@dimen/dp_29" + android:layout_marginEnd ="@dimen/dp_27" app:layout_goneMarginTop="@dimen/dp_600" android:background="@drawable/bus_switch_line_btn" android:gravity="center" diff --git a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml index 7268f93076..2462451fb7 100644 --- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml @@ -21,20 +21,11 @@ - - - - + app:layout_constraintTop_toTopOf="parent"/> + /> + + + \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/activity_bus_switch_line.xml b/OCH/bus/driver/src/main/res/layout/bus_switch_line.xml similarity index 100% rename from OCH/bus/driver/src/main/res/layout/activity_bus_switch_line.xml rename to OCH/bus/driver/src/main/res/layout/bus_switch_line.xml diff --git a/OCH/bus/passenger/build.gradle b/OCH/bus/passenger/build.gradle index 2c836f13b4..485f12e541 100644 --- a/OCH/bus/passenger/build.gradle +++ b/OCH/bus/passenger/build.gradle @@ -19,7 +19,7 @@ android { kapt { useBuildCache = false arguments { - arg("AROUTER_MODULE_NAME", project.getName()) + arg("AROUTER_MODULE_NAME", "bus"+project.getName()) } } } @@ -58,20 +58,6 @@ android { ] } } - - flavorDimensions "vehicle" - productFlavors { - // 车型:金旅星辰、开沃 小巴业务 - jinlvvan { - dimension "vehicle" - buildConfigField 'int', 'NEW_TEST', '0' - } - // 车型:金旅m1 小巴业务 - m2 { - dimension "vehicle" - buildConfigField 'int', 'NEW_TEST', '1' - } - } } dependencies { diff --git a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/BusPassengerProvider.kt b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/BusPassengerProvider.kt new file mode 100644 index 0000000000..21fdea40bc --- /dev/null +++ b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/BusPassengerProvider.kt @@ -0,0 +1,71 @@ +package com.mogo.och.bus.passenger + +import android.content.Context +import android.view.View +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +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.ActivityUtils +import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils +import com.mogo.och.bus.passenger.passenger.ui.PM2BaseFragment +import com.mogo.och.bus.passenger.passenger.ui.widget.M2StatusBarView +import com.mogo.och.bus.passenger.ui.BusPStatusBarView +import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonServiceImpl +import com.mogo.och.common.module.wigets.media.MediaPlayerActivity + +/** + * 网约车-Bus-乘客端 + * + * Created on 2022/3/29 + */ +@Route(path = OchCommonConst.BUS_PASSENGER) +class BusPassengerProvider : CommonServiceImpl() { + + private val tag = BusPassengerProvider::class.java.simpleName + + private var mPM2Fragment: Fragment?=null + + override fun getFragment(): Fragment { + if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java) + } + if(mPM2Fragment==null){ + mPM2Fragment = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + PM2BaseFragment() + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + BusPassengerRouteFragment() + } else { + BusPassengerRouteFragment() + } + } + return mPM2Fragment!! + } + + override fun resetFragment() { + super.resetFragment() + mPM2Fragment = null + } + + override fun getStatusBarView(context: Context): View { + if(statusBarView==null) { + statusBarView = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + M2StatusBarView(context) + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + BusPStatusBarView(context) + } else{ + BusPStatusBarView(context) + } + } + return statusBarView!! + } + + override fun init(context: Context) { + CallerLogger.d(SceneConstant.M_TAXI_P + tag, "init") + } + +} \ No newline at end of file diff --git a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/IMogoOCH.java b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/IMogoOCH.java deleted file mode 100644 index fb146e17c3..0000000000 --- a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/IMogoOCH.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.mogo.och.bus.passenger; - -import androidx.annotation.IdRes; -import androidx.fragment.app.FragmentActivity; - -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; - -/** - * 网约车抽象接口 - * - * Created on 2022/3/29 - */ -interface IMogoOCH extends IMoGoFunctionProvider { - - /** - * 初始化网约车容器 - * - * @param activity - * @param containerId 容器ID - */ - void createCoverage(FragmentActivity activity, @IdRes int containerId); -} diff --git a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.kt b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.kt deleted file mode 100644 index 12a869c9aa..0000000000 --- a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.kt +++ /dev/null @@ -1,105 +0,0 @@ -package com.mogo.och.bus.passenger - -import android.content.Context -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity -import androidx.fragment.app.FragmentManager -import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider -import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.stepInDayMode -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils -import com.mogo.och.bus.passenger.constant.BusPassengerConst -import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment -import com.mogo.och.bus.passenger.passenger.ui.PM2BaseFragment -import com.mogo.och.common.module.wigets.media.MediaPlayerActivity - -/** - * 网约车-Bus-乘客端 - * - * Created on 2022/3/29 - */ -@Route(path = BusPassengerConst.PATH) -class MogoOCHBusPassenger : IMoGoFunctionProvider { - private var mActivity: FragmentActivity? = null - private var mContainerId = 0 - private var mPM2Fragment: Fragment? = null - - override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? { - mActivity = activity - mContainerId = containerId!! - showFragment() - if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { - mActivity?.let { - MultiDisplayUtils.startActWithSecond(it, MediaPlayerActivity::class.java) - } - } - return null - } - - override val functionName: String - get() = "och-bus-passenger-m2" - - override fun onDestroy() { - // 若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 - mActivity?.finish() - } - - override fun init(context: Context) { - } - - /** - * 进入鹰眼模式,设置手势缩放地图失效 - */ - private fun stepIntoVrMode() { - d(SceneConstant.M_TAXI_P + TAG, "进入vr模式") - stepInDayMode() //白天模式 状态栏字体颜色变黑 - } - - private fun showFragment() { - val supportFragmentManager: FragmentManager? = mActivity?.supportFragmentManager - if (mPM2Fragment == null) { - - d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======") - - val fragmentByTag: Fragment? = supportFragmentManager?.findFragmentByTag(PM2BaseFragment.TAG) - - mPM2Fragment = if (fragmentByTag is Fragment){ - fragmentByTag - }else{ - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { - PM2BaseFragment() - }else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { - BusPassengerRouteFragment() - }else{ - BusPassengerRouteFragment() - } - - } - - if (!mPM2Fragment?.isAdded!!){ - supportFragmentManager?.beginTransaction() - ?.add(mContainerId, mPM2Fragment!!, PM2BaseFragment.TAG)?.commitAllowingStateLoss() - } - return - } - d(SceneConstant.M_TAXI_P + TAG, "准备show fragment") - supportFragmentManager?.beginTransaction()?.show(mPM2Fragment!!) - ?.commitAllowingStateLoss() - } - - private fun hideFragment() { - if (mPM2Fragment != null) { - mActivity?.supportFragmentManager?.beginTransaction()?.hide(mPM2Fragment!!) - ?.commitAllowingStateLoss() - } - } - - companion object { - private val TAG = MogoOCHBusPassenger::class.java.simpleName - } - -} \ No newline at end of file diff --git a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt index 626fe265ae..89d19a3922 100644 --- a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt +++ b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt @@ -9,10 +9,10 @@ import com.mogo.och.bus.passenger.bean.BusPassengerQueryLineRequest import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.commons.storage.SharedPrefsMgr -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.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry /** * Created on 2022/3/31 diff --git a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/provider/StatusViewManager.java b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/provider/StatusViewManager.java deleted file mode 100644 index d4fdde8ebb..0000000000 --- a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/provider/StatusViewManager.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.mogo.och.bus.passenger.provider; - -import android.content.Context; -import android.view.View; - -import androidx.annotation.NonNull; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.constants.MogoServicePaths; -import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout; -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; -import com.mogo.och.bus.passenger.passenger.ui.widget.M2StatusBarView; -import com.mogo.och.bus.passenger.ui.BusPStatusBarView; - -/** - * @author congtaowang - * @since 2020-01-06 - *

- * 根据优先级控制显示 window view. - */ -@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER ) -public class StatusViewManager implements IStatusViewLayout { - - - @NonNull - @Override - public View getStatusView(Context context) { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { - return new M2StatusBarView(context); - } else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { - return new BusPStatusBarView(context); - } - return new BusPStatusBarView(context); - } - - @Override - public void init(Context context) { - - } -} diff --git a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt index ecd0dd6eaf..0223fed0fd 100644 --- a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt +++ b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt @@ -19,20 +19,17 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.addListener -import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.network.utils.GsonUtil import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isPassenger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils @@ -43,23 +40,26 @@ import com.mogo.och.bus.passenger.callback.* import com.mogo.och.bus.passenger.constant.BusPassengerConst import com.mogo.och.bus.passenger.network.BusPassengerServiceManager import com.mogo.och.bus.passenger.network.BusPassengerServiceManager.driverAppSn -import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.DPMsgType -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.startLoopAbnormalFactors -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.stopLoopAbnormalFactors -import com.mogo.och.common.module.manager.distancemamager.IDistanceListener -import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.addDistanceListener -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.addTrajectoryListener -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.setStationPoint -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.suspendCalculate -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors +import com.mogo.och.common.module.manager.distance.IDistanceListener +import com.mogo.och.common.module.manager.distance.ITrajectoryListener +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.addDistanceListener +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.addTrajectoryListener +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.setStationPoint +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.suspendCalculate +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.mogo.och.common.module.utils.PinYinUtil @@ -334,7 +334,7 @@ object BusPassengerModel { private fun initListeners() { // 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口 - CallerAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener) + OchAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener) IntentManager.getInstance() .registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener) MogoStatusManager.getInstance().registerStatusChangedListener( @@ -363,7 +363,7 @@ object BusPassengerModel { CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) MogoAiCloudSocketManager.getInstance(mContext) .unregisterLifecycleListener(10010) - CallerAutoPilotStatusListenerManager.removeListener(mGoAutopilotStatusListener) + OchAutoPilotStatusListenerManager.removeListener(mGoAutopilotStatusListener) CallerTelematicListenerManager.removeListener(TAG) stopLoopAbnormalFactors() } @@ -474,8 +474,8 @@ object BusPassengerModel { } } } - private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener = - object : IMoGoAutopilotStatusListener { + private val mGoAutopilotStatusListener: IOchAutopilotStatusListener = + object : IOchAutopilotStatusListener { private var arriveAtEnd = false //乘客app专用字段 override fun onAutopilotStatusResponse(state: Int) { if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { @@ -502,7 +502,7 @@ object BusPassengerModel { } } - override fun onAutopilotArriveAtStation(arrivalNotification: ArrivalNotification?) { + override fun onAutopilotArriveAtStation(arrivalNotification: ArrivedStation?) { if (FunctionBuildConfig.isDemoMode && isPassenger(FunctionBuildConfig.appIdentityMode) ) { diff --git a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java index e0b8add9a9..2983db0b0d 100644 --- a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java @@ -81,20 +81,32 @@ public class BaseBusPassengerPresenter extends Presenter mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE)); + runOnUIThread(() -> { + if(mView!=null) { + mView.onAutopilotStatusChanged( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE); + } + }); } @Override public void onAutopilotDisable() { - runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE)); + runOnUIThread(() -> { + if(mView!=null) { + mView.onAutopilotStatusChanged( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE); + } + }); } @Override public void onAutopilotRunning() { - runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)); + runOnUIThread(() -> { + if(mView!=null) { + mView.onAutopilotStatusChanged( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); + } + }); } @Override @@ -104,14 +116,20 @@ public class BaseBusPassengerPresenter extends Presenter mView.onCarLocationChanged(location)); - } + runOnUIThread(() -> { + if(mView!=null&&location!=null) { + mView.onCarLocationChanged(location); + } + }); } @Override public void changeOperationStatus(boolean changeStatus) { - runOnUIThread(() -> mView.changeOperationStatus(changeStatus)); + runOnUIThread(() -> { + if(mView!=null) { + mView.changeOperationStatus(changeStatus); + } + }); } @Override @@ -121,37 +139,65 @@ public class BaseBusPassengerPresenter extends Presenter mView.updateDriverSn(sn)); + runOnUIThread(() -> { + if(mView!=null) { + mView.updateDriverSn(sn); + } + }); } @Override public void updateLineInfo(String lineName, String lineDurTime) { - runOnUIThread(() -> mView.updateLineInfo(lineName, lineDurTime)); + runOnUIThread(() -> { + if(mView!=null) { + mView.updateLineInfo(lineName, lineDurTime); + } + }); } @Override public void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived) { - runOnUIThread(() -> mView.updateStationsInfo(stations,currentStationIndex, isArrived)); + runOnUIThread(() -> { + if(mView!=null) { + mView.updateStationsInfo(stations, currentStationIndex, isArrived); + } + }); } @Override public void showNoTaskView() { - runOnUIThread(() -> mView.showNoTaskView()); + runOnUIThread(() -> { + if(mView!=null) { + mView.showNoTaskView(); + } + }); } @Override public void hideNoTaskView() { - runOnUIThread(() -> mView.hideNoTaskView()); + runOnUIThread(() -> { + if(mView!=null) { + mView.hideNoTaskView(); + } + }); } @Override public void routeResult(List routeArrived,List routeArriving,MogoLocation location) { - runOnUIThread(() ->mView.routeResult(routeArrived,routeArriving,location)); + runOnUIThread(() -> { + if(mView!=null) { + mView.routeResult(routeArrived, routeArriving, location); + } + }); } @Override public void routePlanningToNextStationChanged(long meters, long timeInSecond) { - runOnUIThread(() -> mView.updateRoutePlanningToNextStation(meters, timeInSecond)); + runOnUIThread(() -> { + if(mView!=null) { + mView.updateRoutePlanningToNextStation(meters, timeInSecond); + } + }); } } diff --git a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java index 77b7012c04..ff7cee2e26 100644 --- a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java +++ b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java @@ -131,6 +131,7 @@ public abstract class BusPassengerBaseFragment { - // 3. 其他过程直接更新 - if (mPrevAPStatus != status){ - AutopilotStatusChanged(status); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + // 3. 其他过程直接更新 + if (mPrevAPStatus != status){ + AutopilotStatusChanged(status); + } + mPrevAPStatus = status; } - mPrevAPStatus = status; }); } diff --git a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/model/PM2DrivingModel.kt b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/model/PM2DrivingModel.kt index bedc3c1ed2..6b5df6b4c7 100644 --- a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/model/PM2DrivingModel.kt +++ b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/model/PM2DrivingModel.kt @@ -20,7 +20,6 @@ import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToServer import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P @@ -32,20 +31,26 @@ import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse import com.mogo.och.bus.passenger.constant.BusPassengerConst import com.mogo.och.bus.passenger.passenger.callback.AutoPilotStatusCallback import com.mogo.och.bus.passenger.passenger.callback.DrivingInfoCallback -import com.mogo.och.common.module.bean.dpmsg.* -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.bean.BusTransferData import com.mogo.och.bus.passenger.bean.PM2RoutesResponse import com.mogo.och.bus.passenger.network.BusPassengerServiceManager -import com.mogo.och.common.module.manager.distancemamager.IDistanceListener -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.common.module.manager.distance.IDistanceListener +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg import com.mogo.och.common.module.utils.OCHThreadPoolManager import kotlin.math.abs @@ -101,12 +106,12 @@ class PM2DrivingModel private constructor() { private fun queryDriverByLocalDriver() { //本地去请求司机端 val msg = TaskDetailsMsg("task") - sendMsgToServer(GsonUtils.toJson(msg)) + LanSocketManager.sendMsgToServer(msg) } private fun initListener() { //自动驾驶状态监听 - CallerAutoPilotStatusListenerManager.addListener(TAG, mAutoPilotStatusListener) + OchAutoPilotStatusListenerManager.addListener(TAG, mAutoPilotStatusListener) // 定位监听 CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 3, mMapLocationListener) @@ -121,13 +126,6 @@ class PM2DrivingModel private constructor() { TrajectoryAndDistanceManager.addDistanceListener(TAG, trajectoryListener) } - private fun sendMsgToServer(msg: String) { - sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - } - fun releaseListener() { //自动驾驶状态监听 CallerAutoPilotStatusListenerManager.removeListener(TAG) @@ -271,8 +269,8 @@ class PM2DrivingModel private constructor() { mDrivingInfoCallback?.updateSpeed(speedKM) } - private val mAutoPilotStatusListener: IMoGoAutopilotStatusListener = - object : IMoGoAutopilotStatusListener { + private val mAutoPilotStatusListener: IOchAutopilotStatusListener = + object : IOchAutopilotStatusListener { override fun onAutopilotStatusResponse(state: Int) { super.onAutopilotStatusResponse(state) diff --git a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt index a573be4e8d..60a8efc03a 100644 --- a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2DrivingInfoFragment.kt @@ -124,11 +124,12 @@ class PM2DrivingInfoFragment : } } - override fun onDestroy() { - super.onDestroy() + override fun onDestroyView() { overMapView?.let{ it.onDestroy() } + super.onDestroyView() + } fun updateSpeed(speed: Int){ diff --git a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2HPMapFragment.kt b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2HPMapFragment.kt index 61491e19b2..5138cd0cee 100644 --- a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2HPMapFragment.kt +++ b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/PM2HPMapFragment.kt @@ -2,6 +2,7 @@ package com.mogo.och.bus.passenger.passenger.ui import android.os.Bundle import com.mogo.commons.mvp.MvpFragment +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getOverlayManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.map.overlay.core.Level @@ -64,6 +65,10 @@ class PM2HPMapFragment : override fun onDestroyView() { mapBizView.onDestroy() + CallerMapUIServiceManager.getOverlayManager()?.let { + it.removeAllLines() + it.removeAllPoints() + } super.onDestroyView() } diff --git a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/widget/M2TurnLightView.kt b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/widget/M2TurnLightView.kt index f280b6eb1f..20bc37169f 100644 --- a/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/widget/M2TurnLightView.kt +++ b/OCH/bus/passenger/src/main/java/m2/com/mogo/och/bus/passenger/passenger/ui/widget/M2TurnLightView.kt @@ -15,7 +15,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListene import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.bus.passenger.R -import com.mogo.och.common.module.manager.lightmanager.TurnLightManager +import com.mogo.och.common.module.manager.light.TurnLightManager import kotlinx.android.synthetic.main.bus_p_m2_turn_light_status.view.left_nor_image import kotlinx.android.synthetic.main.bus_p_m2_turn_light_status.view.left_select_image import kotlinx.android.synthetic.main.bus_p_m2_turn_light_status.view.right_nor_image @@ -58,6 +58,7 @@ class M2TurnLightView @JvmOverloads constructor( super.onDetachedFromWindow() CallerChassisLamplightListenerManager.removeListener(TAG) CallerTurnLightListenerManager.removeListener(TAG) + TurnLightManager.removeTurnLightStatusChangeListener(TAG) } override fun hideTurnLightView() { diff --git a/OCH/bus/passenger/src/main/res/jinlv/layout/bus_p_base_fragment.xml b/OCH/bus/passenger/src/main/res/jinlv/layout/bus_p_base_fragment.xml index 455d781077..d9f2f2481d 100644 --- a/OCH/bus/passenger/src/main/res/jinlv/layout/bus_p_base_fragment.xml +++ b/OCH/bus/passenger/src/main/res/jinlv/layout/bus_p_base_fragment.xml @@ -15,12 +15,6 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - - + \ No newline at end of file diff --git a/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml b/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml index 88c228c4f3..53ff040e93 100644 --- a/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml +++ b/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml @@ -22,10 +22,11 @@ diff --git a/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_driving_info_fragment.xml b/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_driving_info_fragment.xml index a290ef869b..d8b3726702 100644 --- a/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_driving_info_fragment.xml +++ b/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_driving_info_fragment.xml @@ -168,6 +168,7 @@ android:id="@+id/clg_distance_left_time" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:visibility="gone" app:constraint_referenced_ids="bg_distance_lefttime,bg_distance_lefttime_split,tv_distance,tv_left_time" /> - + + + \ No newline at end of file diff --git a/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_view_status_bar.xml b/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_view_status_bar.xml index 8c4a96d678..79310174b3 100644 --- a/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_view_status_bar.xml +++ b/OCH/bus/passenger/src/main/res/m2/layout/bus_p_m2_view_status_bar.xml @@ -10,7 +10,7 @@ ?>() : slidePanelView?.setText(resources.getString(R.string.charter_back_car)) slidePanelView?.setOnSlidePanelMoveToEndListener(onSlideToEndListener) + + // mTrafficDataView = (TrafficDataView) findViewById(R.id.bus_arc); + val flSpeed = findViewById(R.id.fl_speed) + if (flSpeed != null) { + attachAutopilotBeforeLaunchView(flSpeed.context, flSpeed) + } + LayoutInflater.from(context).inflate(getStationPanelViewId(), flStationPanelContainer) mSwitchMapModeLayout = findViewById(R.id.bus_switch_model_layout) mSwitchMapModeImage = findViewById(R.id.bus_switch_model_icon) @@ -157,7 +161,7 @@ abstract class CharterBaseFragment?>() : // mBadcaseBtn的visible显示逻辑在showBadcaseEntrance内处理 mBadcaseBtn = findViewById(R.id.module_mogo_och_badcase_rl) if (mBadcaseBtn != null) { - initBadCase(mBadcaseBtn!!) + reportWorkOrder(mBadcaseBtn!!) CallerAutopilotRecordListenerManager.addListener(TAG, this) } mAICollectBtn = findViewById(R.id.module_mogo_och_ai_collet_rl) @@ -288,6 +292,7 @@ abstract class CharterBaseFragment?>() : override fun onDestroyView() { mapBizView!!.onDestroy() + smallMapView?.onDestroy() super.onDestroyView() CallerAutopilotRecordListenerManager.removeListener(TAG) EventBus.getDefault().unregister(this) @@ -329,7 +334,6 @@ abstract class CharterBaseFragment?>() : override fun onDestroy() { super.onDestroy() - smallMapView?.onDestroy() mogoMapListenerHandler.unregisterHostMapListener(TAG) } diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt index 350aa1d261..6872a4ffb3 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt @@ -5,22 +5,19 @@ import android.os.Bundle import android.os.CountDownTimer import android.view.View.GONE import android.view.View.VISIBLE -import com.alibaba.android.arouter.launcher.ARouter import com.magic.mogo.och.charter.R import com.magic.mogo.och.charter.base.CharterBaseFragment import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVING import com.magic.mogo.och.charter.constant.CharterConst.Companion.LOOP_PERIOD_60S -import com.magic.mogo.och.charter.net.login.LoginDriverM1Impl import com.magic.mogo.och.charter.presenter.DriverM1Presenter import com.magic.mogo.och.charter.view.SlidePanelView import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.temp.EventLogout +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.provider.LoginService import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.createQRCodeWithPicture import com.mogo.och.common.module.wigets.BindQRCodeDialog @@ -47,7 +44,6 @@ import kotlin.math.roundToInt */ class DriverM1Fragment : CharterBaseFragment(), SlidePanelView.OnSlidePanelMoveToEndListener{ - private var loginService: LoginService? = null private var ochCommitDialog: OCHCommitDialog? = null var countDownTimer: CountDownTimer? = null @@ -57,11 +53,6 @@ class DriverM1Fragment : CharterBaseFragment aLong + 1 }) + .map { aLong: Long -> aLong + 1 } .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe { aLong: Long -> @@ -208,24 +202,6 @@ object CharterTrajectoryManager { return } - // TODO: 2022/6/24 - // test1 -// mAutoPilotLine.setLineId(148); -// mAutoPilotLine.setTrajUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/e27c20c2da32481021d934c3ef084536/traj_148.csv"); -// mAutoPilotLine.setTrajMd5("e27c20c2da32481021d934c3ef084536"); -// mAutoPilotLine.setStopUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/6224c9dd2c0e2bd990c6482c0464de45/stop_148.txt"); -// mAutoPilotLine.setStopMd5("6224c9dd2c0e2bd990c6482c0464de45"); -// mAutoPilotLine.setTimestamp(1654596000000L); //20220607 18:00 -// mAutoPilotLine.setVehicleModel("红旗H9"); - - // test2 -// mAutoPilotLine.setLineId(148); -// mAutoPilotLine.setTrajUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/8654497cf918be461a59c7ad8e22920d/traj_148.csv"); -// mAutoPilotLine.setTrajMd5("8654497cf918be461a59c7ad8e22920d"); -// mAutoPilotLine.setStopUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/1bb098b244922649bf3e7bada0d3950f/stop_148.txt"); -// mAutoPilotLine.setStopMd5("1bb098b244922649bf3e7bada0d3950f"); -// mAutoPilotLine.setTimestamp(1654761600000L); //20220609 16:00 -// mAutoPilotLine.setVehicleModel("红旗H9"); mAutoPilotLine?.let { OchChainLogManager.writeChainLog("轨迹监控", "sendTrajectoryReq() 下发轨迹 轨迹id" + it.lineId, true, @@ -233,12 +209,8 @@ object CharterTrajectoryManager { ) } - sendTrajectoryDownloadReq(mAutoPilotLine!!) - d( - SceneConstant.M_CHARTER_D + TAG, - "sendTrajectoryReq(): " - + GsonUtils.toJson(mAutoPilotLine) - ) + CallerAutoPilotControlManager.sendTrajectoryDownloadReq(mAutoPilotLine!!) + d(SceneConstant.M_CHARTER_D + TAG, "sendTrajectoryReq(): ${GsonUtils.toJson(mAutoPilotLine)}") } init { diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt index a79fd261cc..b28bcf3789 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt @@ -2,7 +2,6 @@ package com.magic.mogo.och.charter.model import android.content.Context import android.net.ConnectivityManager -import com.alibaba.android.arouter.launcher.ARouter import com.alibaba.android.arouter.utils.TextUtils import com.amap.api.maps.model.LatLng import com.elegant.network.utils.GsonUtil @@ -21,6 +20,7 @@ import com.mogo.commons.module.intent.IntentManager import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType @@ -28,37 +28,43 @@ import com.mogo.eagle.core.data.msgbox.OperationMsg import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.startAutoPilot import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToAllClients import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.* -import com.mogo.och.common.module.bean.dpmsg.* -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.registerSocketMessageListener -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.releaseSocketMessageListener -import com.mogo.och.common.module.biz.common.socketmessage.data.* -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.provider.LoginService +import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.callback.OchAdasStartFailureCallback -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.startLoopAbnormalFactors -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.stopLoopAbnormalFactors +import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.manager.CharterSendTripInfoManager import com.mogo.och.common.module.manager.CharterSendTripInfoManager.ARRIVE_STATION import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.registerSocketMessageListener +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.releaseSocketMessageListener +import com.mogo.och.common.module.manager.socket.cloud.data.OperateDoorMsg +import com.mogo.och.common.module.manager.socket.cloud.data.OrderCloseMsg +import com.mogo.och.common.module.manager.socket.cloud.data.SystemMsg +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.DPOrderClosedMsg +import com.mogo.och.common.module.manager.stopside.StopSideManager +import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.* import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.data.bean.* @@ -95,7 +101,6 @@ class DriverM1Model { //0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0 - private var loginService: LoginService? = null companion object { val TAG = DriverM1Model::class.java.simpleName @@ -147,8 +152,6 @@ class DriverM1Model { //网络监听 IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener) - loginService = ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation() as LoginService - //2022.1.28 // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃 // The exception could not be delivered to the consumer because it has already canceled/disposed @@ -172,7 +175,6 @@ class DriverM1Model { // 注销定位监听 CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) - loginService = null OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null) releaseSocketMessageListener( OCHSocketMessageManager.msgMonitorType @@ -292,7 +294,7 @@ class DriverM1Model { override fun onMsgReceived(obj: OrderCloseMsg) { //订单结束 pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp(), obj.message - ,OCHSocketMessageManager.OPERATION_ORDER_TYPE) + , OCHSocketMessageManager.OPERATION_ORDER_TYPE) sendMsgToClient(DPOrderClosedMsg()) queryCurrentServiceStatus() } @@ -350,7 +352,7 @@ class DriverM1Model { d(SceneConstant.M_TAXI + TAG, "onIntentReceived = %s", intentStr) if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) { if (NetworkUtils.isConnected(mContext)) { - loginService!!.queryLoginStatusByNet() + LoginStatusManager.queryLoginStatusByNet() } } } @@ -406,7 +408,8 @@ class DriverM1Model { mContext?.let { mCurrentOrder?.lineId?.let { it1 -> DriverM1ServiceManager.arriveDest( - it, it1.toLong(),DateTimeUtil.getCurrentTimeStamp(),object :OchCommonServiceCallback{ + it, it1.toLong(),DateTimeUtil.getCurrentTimeStamp(),object : + OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { d(SceneConstant.M_CHARTER_D + TAG, "onArriveAt = " + GsonUtil.jsonFromObject(data)) if (data?.code == 0){ @@ -476,6 +479,27 @@ class DriverM1Model { * @param isRestart */ private fun startAutopilot() { + //判断轨迹Id是否可用 + mCurrentRoute?.let { + //根据开关和后台是否发布轨迹启动自驾 + if (FunctionBuildConfig.isPassStartAutopilotCommand + && TextUtils.isEmpty(it.csvFileUrl) + && TextUtils.isEmpty(it.csvFileUrlDPQP) + ) { + ToastUtils.showLong("无发布轨迹, 请发布后重试") + CallerLogger.e( + TAG, "isPassStartAutopilotCommand = " + + FunctionBuildConfig.isPassStartAutopilotCommand + + "busRoutesResult.csvFileUrl = " + it.csvFileUrl + ) + return + } + } + // 6个条件判断 + if (!CallerAutoPilotControlManager.isCanStartAutopilot(true)) { + return + } + // ssm 给出数据 if (!OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) { ToastUtils.showLong( OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason + @@ -484,13 +508,14 @@ class DriverM1Model { triggerUnableStartAPReasonEvent() return } + triggerStartServiceEvent(false, false) val parameters = initAutopilotControlParameters() if (null == parameters) { d(SceneConstant.M_CHARTER_D + TAG, "行程日志-AutopilotControlParameters is empty.") return } - startAutoPilot(parameters) + OchAutoPilotManager.startAutoPilot(parameters) d( SceneConstant.M_CHARTER_D + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName @@ -517,7 +542,7 @@ class DriverM1Model { // 登出 fun logout() { - loginService!!.loginOut(mLatitude, mLongitude) + LoginStatusManager.loginOut(mLatitude, mLongitude) } fun triggerStartServiceEvent(isRestart: Boolean, send: Boolean) { @@ -622,14 +647,11 @@ class DriverM1Model { private fun sendMsgToClient(msg: BaseDPMsg?){ d(SceneConstant.M_CHARTER_D + TAG, "sendMsgToClient" + GsonUtils.toJson(msg)) - sendMsgToAllClients( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToClient(msg) } fun driverEndLease() { - DriverM1ServiceManager.driverEndLease(mContext,object : OchCommonServiceCallback{ + DriverM1ServiceManager.driverEndLease(mContext,object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { if (data != null && data.code == 0){ mOrderCallback?.updateReturnCarStatus(true) @@ -647,7 +669,7 @@ class DriverM1Model { fun queryCurrentServiceStatus() { DriverM1ServiceManager.queryCurrentServiceStatus(mContext - ,object: OchCommonServiceCallback{ + ,object: OchCommonServiceCallback { override fun onSuccess(data: QueryBusinessStatusResponse?) { if (data == null || data.code != 0 || data.data.equals(mCurrentBusinessStatus)){ d(SceneConstant.M_CHARTER_D + TAG, "data is null or data not change" ) @@ -689,7 +711,7 @@ class DriverM1Model { fun queryCurrentOrder(){ DriverM1ServiceManager.queryCurrentOrder(mContext - ,object: OchCommonServiceCallback{ + ,object: OchCommonServiceCallback { override fun onSuccess(data: QueryCurrentOrderResponse?) { if (data == null || data.code != 0){ isArrivedStation = false @@ -753,7 +775,7 @@ class DriverM1Model { fun checkOrderCountDown() { DriverM1ServiceManager.checkOrderCountDown(mContext, - object: OchCommonServiceCallback{ + object: OchCommonServiceCallback { override fun onSuccess(data: CheckOrderCountDownResponse?) { if (data?.data == null || data.code != 0){ return @@ -782,7 +804,7 @@ class DriverM1Model { currentChangeDestMsg!!.startSiteId, currentChangeDestMsg!!.destSiteId, writeVersion, - object : OchCommonServiceCallback{ + object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { if (data != null && data.code == 0){ d(SceneConstant.M_CHARTER_D + TAG, "confirmed station .") @@ -817,7 +839,7 @@ class DriverM1Model { fun checkoutContrail(){ if (mCurrentOrder == null) return DriverM1ServiceManager.checkoutContrail(mContext,mCurrentOrder!!.lineId, - object : OchCommonServiceCallback{ + object : OchCommonServiceCallback { override fun onSuccess(data: QueryRoutesResponse?) { if (data == null || data.code != 0) return d(SceneConstant.M_CHARTER_D + TAG, "checkoutContrail-==" diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt index f521d07e8d..46c8ca5959 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt @@ -3,13 +3,13 @@ package com.magic.mogo.och.charter.net import android.content.Context import com.magic.mogo.och.charter.bean.* import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.commons.storage.SharedPrefsMgr -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.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry /** * Created by pangfan on 2021/8/19 diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/LoginDriverM1Impl.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/LoginDriverM1Impl.kt deleted file mode 100644 index d6374c2c73..0000000000 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/LoginDriverM1Impl.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.magic.mogo.och.charter.net.login - -import android.content.Context -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.network.LoginDefaultManage -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback - -class LoginDriverM1Impl: LoginDefaultManage { - - override fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.getPhoneCode(context,phone,callback) - } - - override fun gotoLoginBycode( - context: Context, - phone: String?, - code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback) - } - - override fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.logout(context,location4Login,callback) - } - - override fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.queryDriverServiceStatus(context,callback) - } - - -} \ No newline at end of file diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/OchCommonServiceManager.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/OchCommonServiceManager.kt deleted file mode 100644 index 68412ada11..0000000000 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/OchCommonServiceManager.kt +++ /dev/null @@ -1,108 +0,0 @@ -package com.magic.mogo.och.charter.net.login - -import android.content.Context -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.commons.storage.SharedPrefsMgr -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 - -/** - * Created by pangfan on 2021/8/19 - */ -object OchCommonServiceManager { - - private const val TAG = "OchCommonServiceManager" - - private val mLoginServiceApi: OchLoginServiceApi = - MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( - OchLoginServiceApi::class.java - ) - - /** - * 获取手机验证码 - * @param context - * @param callback - */ - @JvmStatic - fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - mLoginServiceApi.getPhoneCode( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLoginSmsReqBean(phone) - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode")) - } - - /** - * 通过验证码登录 - * @param context - * @param callback - */ - @JvmStatic - fun gotoLoginBycode( - context: Context, phone: String?, code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - val sn = SharedPrefsMgr.getInstance().sn - mLoginServiceApi.gotoLoginBycode4Bus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode")) - } - - /** - * 登出 - */ - @JvmStatic - fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - mLoginServiceApi.logout4Bus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout")) - } - - /** - * 接单状态和登录状态查询 - * - * @param context - * @param callback - */ - @JvmStatic - fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - if (SharedPrefsMgr.getInstance().token.isEmpty()) { - callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") - MoGoAiCloudClient.getInstance().refreshToken() - return - } - mLoginServiceApi.queryDriverServiceStatusAndLoginStatus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) - } - -} \ No newline at end of file diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/OchLoginServiceApi.java b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/OchLoginServiceApi.java deleted file mode 100644 index 1f2cd8b5cb..0000000000 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/net/login/OchLoginServiceApi.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.magic.mogo.och.charter.net.login; - -import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean; - -import io.reactivex.Observable; -import retrofit2.http.Body; -import retrofit2.http.GET; -import retrofit2.http.Header; -import retrofit2.http.Headers; -import retrofit2.http.POST; -import retrofit2.http.Query; - -/** - * Created by pangfan on 2021/8/19 - *

- * 网约车-出租车接口定义 - */ -interface OchLoginServiceApi { - /** - * 获取手机验证码 - * - * @return - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-rental-cabin/api/sms/v1/driver/sendSms") - Observable getPhoneCode(@Header("appId") String appId - , @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data); - - /** - * 通过验证码登录 - * - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-rental-cabin/api/flow/v1/driver/startOperation") - Observable gotoLoginBycode4Bus(@Header("appId") String appId - , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); - - /** - * 登出接口 - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-rental-cabin/api/flow/v1/driver/endOperation") - Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket, - @Body TaxiLogoutReqBean data); - - /** - * 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端 - * - * @param sn - * @return - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @GET("/och-rental-cabin/api/business/v1/driver/loginStatus") - Observable queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId - , @Header("ticket") String ticket, @Query("sn") String sn); - -} diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt index 46f911e6fc..26fd6be7c3 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt @@ -5,28 +5,28 @@ import com.magic.mogo.och.charter.R import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse import com.magic.mogo.och.charter.callback.ChangeDestCallback import com.magic.mogo.och.charter.callback.DriverM1OrderCallback -import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback import com.magic.mogo.och.charter.fragment.DriverM1Fragment import com.magic.mogo.och.charter.manager.CharterTrajectoryManager import com.magic.mogo.och.charter.model.DriverM1Model import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.Presenter -import com.mogo.eagle.core.data.map.MogoLocation 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.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DateTimeUtils -import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.callback.ILoginCallback -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE -import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager +import com.mogo.och.common.module.biz.login.ILoginCallback +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager -import com.mogo.och.common.module.manager.stopsidemanager.OCHPlanningActionsCallback -import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager +import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback +import com.mogo.och.common.module.manager.stopside.StopSideStatus +import com.mogo.och.common.module.manager.stopside.StopSideManager import com.mogo.och.common.module.utils.DateTimeUtil import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg @@ -36,8 +36,9 @@ import mogo_msg.MogoReportMsg * @date: 2023/2/22 */ class DriverM1Presenter(view: DriverM1Fragment?) : - Presenter(view),ILoginCallback, DriverM1OrderCallback, ChangeDestCallback, - IMoGoAutopilotStatusListener, OCHPlanningActionsCallback{ + Presenter(view), + ILoginCallback, DriverM1OrderCallback, ChangeDestCallback, + IOchAutopilotStatusListener, OCHPlanningActionsCallback{ companion object{ private const val TAG = "DriverM1Presenter" @@ -51,17 +52,19 @@ class DriverM1Presenter(view: DriverM1Fragment?) : private fun registerListener() { //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 - CallerAutoPilotStatusListenerManager.addListener(TAG, this) + OchAutoPilotStatusListenerManager.addListener(TAG, this) StopSideManager.addListener(TAG,this) DriverM1Model.get().setDriverM1OrderCallback(this) DriverM1Model.get().setChangeDestCallback(this) + LoginStatusManager.addListener(TAG,this) } private fun releaseListener() { StopSideManager.removeListener(TAG) - CallerAutoPilotStatusListenerManager.removeListener(TAG) + OchAutoPilotStatusListenerManager.removeListener(TAG) DriverM1Model.get().setDriverM1OrderCallback(null) DriverM1Model.get().setChangeDestCallback(null) + LoginStatusManager.removeListener(TAG) } override fun onDestroy(owner: LifecycleOwner) { @@ -70,21 +73,18 @@ class DriverM1Presenter(view: DriverM1Fragment?) : DriverM1Model.get().release() } - override fun loginSuccess(data: DriverStatusQueryRespBean?) { - d(SceneConstant.M_BUS + TAG, " loginStatus =" + isLogin()) - if(isLogin()){ + override fun onStatusChange(currentStatus: LoginStatusEnum?) { + d(SceneConstant.M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()) + if(LoginStatusManager.isLogin()){ // 查询服务状态 DriverM1Model.get().queryCurrentServiceStatus() DriverM1Model.get().startQueryCurrentOrder() }else{ CharterTrajectoryManager.stopTrajReqLoop() + DriverM1Model.get().stopQueryCurrentOrder() } } - override fun loginFail(isLogin: Boolean) { - DriverM1Model.get().stopQueryCurrentOrder() - } - // 登出 fun logout() { DriverM1Model.get().logout() @@ -126,12 +126,12 @@ class DriverM1Presenter(view: DriverM1Fragment?) : DriverM1Model.get().pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp() ,context.getString(R.string.charter_last_15_minutes)) } - - override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { - CharterTrajectoryManager.onAutopilotGuardian(guardianInfo) + + override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?, lineId: Long) { + CharterTrajectoryManager.onAutopilotGuardian(guardianInfo,lineId) } - override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) { + override fun onAutopilotArriveAtStation(arrivalNotification: ArrivedStation?) { DriverM1Model.get().onAutopilotArriveAtStation() } @@ -189,4 +189,8 @@ class DriverM1Presenter(view: DriverM1Fragment?) : } } + override fun canStartAutopilot(canStart: Boolean) { + + } + } diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt index aed4ea1646..8a8199efc0 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt @@ -8,7 +8,7 @@ import com.magic.mogo.och.charter.R import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.och.common.module.manager.DriverMoFangFunctionManager -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager import com.mogo.och.common.module.utils.SoundPoolHelper import kotlinx.android.synthetic.main.driver_mofang_function_view.view.* diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/SlidePanelView.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/SlidePanelView.kt index 77be38100c..1b62ed6c2b 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/SlidePanelView.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/SlidePanelView.kt @@ -19,11 +19,10 @@ import android.view.View import android.view.animation.DecelerateInterpolator import com.magic.mogo.och.charter.R import com.mogo.commons.AbsMogoApplication -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.ConvertUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import me.jessyan.autosize.AutoSizeConfig import me.jessyan.autosize.utils.AutoSizeUtils diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt index aa06ab956b..185fe61ba5 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusView.kt @@ -125,7 +125,7 @@ class AutopilotStatusView : RelativeLayout,AutopilotStatusViewModel.IAutopilotSt bus_autopolot_btn_tv.text = resources.getString(R.string.charter_loading_autopilot_pingxing_tv) bus_autopilot_btn_iv.setImageResource(R.drawable.charter_ic_autopilot) isClickable = false - background = ResourceUtils.getDrawable(R.drawable.charter_pingxingjiashi) + background = ResourceUtils.getDrawable(R.drawable.common_autopilot_pxjs) } override fun onAttachedToWindow() { diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt index 900b62800a..7d97a941b4 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt @@ -2,29 +2,30 @@ package com.magic.mogo.och.charter.view.autopilot import androidx.lifecycle.ViewModel import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVED -import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVING import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback import com.magic.mogo.och.charter.constant.CharterConst import com.magic.mogo.och.charter.model.DriverM1Model -import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager -import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.stopside.StopSideManager +import com.mogo.och.common.module.manager.stopside.StopSideStatus import com.mogo.och.common.module.utils.RxUtils import java.util.concurrent.atomic.AtomicBoolean class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback, - IMoGoAutopilotStatusListener, IBeautifyModeCallback { + IOchAutopilotStatusListener, IBeautifyModeCallback { private val TAG = AutopilotStatusViewModel::class.java.simpleName @@ -45,7 +46,7 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback, fun setAutopilotStatusCallback(viewCallback:IAutopilotStatusCallback){ this.viewCallback = viewCallback - CallerAutoPilotStatusListenerManager.addListener(TAG, this) + OchAutoPilotStatusListenerManager.addListener(TAG, this) BeautifyManager.setStatusChangeListener(TAG,this) this.setUIMode(CallerAutoPilotStatusListenerManager.getState()) } @@ -158,8 +159,13 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback, viewCallback?.autopilotDisable() } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> { - // 自动驾驶状态就绪可启动自驾 - viewCallback?.canStartAutopilot() + if(CallerAutoPilotControlManager.isCanStartAutopilot(false)){ + // 自动驾驶状态就绪可启动自驾 + viewCallback?.canStartAutopilot() + }else { + // 自动驾驶未就绪 + viewCallback?.autopilotDisable() + } } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { // 自动驾驶中 @@ -181,6 +187,14 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback, },ThreadUtils.MODE.QUEUE) } + override fun canStartAutopilot(canStart: Boolean) { + super.canStartAutopilot(canStart) + ThreadUtils.runOnUiThread( { + // 自驾状态变更回调(可能成功可能失败) + assertStartAutopiloState(CallerAutoPilotStatusListenerManager.getState()) + },ThreadUtils.MODE.QUEUE) + } + interface IAutopilotStatusCallback{ /** * 开始动画 diff --git a/OCH/charter/driver/src/main/res/drawable/charter_autopilot_0_1_status_bg.xml b/OCH/charter/driver/src/main/res/drawable/charter_autopilot_0_1_status_bg.xml index 8c1d9e64ed..f2d64cec32 100644 --- a/OCH/charter/driver/src/main/res/drawable/charter_autopilot_0_1_status_bg.xml +++ b/OCH/charter/driver/src/main/res/drawable/charter_autopilot_0_1_status_bg.xml @@ -1,6 +1,6 @@ - - + + diff --git a/OCH/charter/driver/src/main/res/drawable/charter_autopilot_2_status_bg.xml b/OCH/charter/driver/src/main/res/drawable/charter_autopilot_2_status_bg.xml index fda939cf28..f0e15d25d2 100644 --- a/OCH/charter/driver/src/main/res/drawable/charter_autopilot_2_status_bg.xml +++ b/OCH/charter/driver/src/main/res/drawable/charter_autopilot_2_status_bg.xml @@ -1,8 +1,8 @@ - + - + diff --git a/OCH/charter/driver/src/main/res/layout/charter_autopilot_status.xml b/OCH/charter/driver/src/main/res/layout/charter_autopilot_status.xml index ae9faef3d4..d9064ebce3 100644 --- a/OCH/charter/driver/src/main/res/layout/charter_autopilot_status.xml +++ b/OCH/charter/driver/src/main/res/layout/charter_autopilot_status.xml @@ -3,8 +3,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="@dimen/dp_616" - android:layout_height="@dimen/dp_180" + android:layout_width="@dimen/dp_618" + android:layout_height="@dimen/dp_185" android:gravity="center" android:background="@drawable/charter_autopilot_0_1_status_bg" tools:parentTag="RelativeLayout"> diff --git a/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml b/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml index c3852d9385..438d21db04 100644 --- a/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml +++ b/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml @@ -29,17 +29,14 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> - - + android:layout_marginTop="-31dp" + android:layout_marginLeft="@dimen/dp_9"/> @@ -376,4 +377,8 @@ app:textSize="@dimen/dp_70" tools:visibility="visible" /> + + \ No newline at end of file diff --git a/OCH/charter/driver/src/main/res/layout/charter_fragment_driver_m1.xml b/OCH/charter/driver/src/main/res/layout/charter_fragment_driver_m1.xml index cda4d405fe..cd484ddd06 100644 --- a/OCH/charter/driver/src/main/res/layout/charter_fragment_driver_m1.xml +++ b/OCH/charter/driver/src/main/res/layout/charter_fragment_driver_m1.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/module_och_bus_order_status_stationInfo" - android:layout_width="@dimen/dp_618" + android:layout_width="@dimen/dp_624" android:layout_height="wrap_content" android:minHeight="@dimen/dp_754" android:background="@drawable/charter_line_panel_bg" diff --git a/OCH/charter/passenger/build.gradle b/OCH/charter/passenger/build.gradle index ef7833ad2b..7a15a65798 100644 --- a/OCH/charter/passenger/build.gradle +++ b/OCH/charter/passenger/build.gradle @@ -19,7 +19,7 @@ android { kapt { useBuildCache = false arguments { - arg("AROUTER_MODULE_NAME", project.getName()) + arg("AROUTER_MODULE_NAME", "charter"+project.getName()) } } } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/CharterPassengerProvider.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/CharterPassengerProvider.kt new file mode 100644 index 0000000000..133cca95b2 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/CharterPassengerProvider.kt @@ -0,0 +1,50 @@ +package com.mogo.och.charter.passenger + +import android.content.Context +import android.view.View +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.och.charter.passenger.ui.MainFragment +import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonService +import com.mogo.och.common.module.biz.provider.CommonServiceImpl + +/** + * 网约车-Bus-乘客端 + * + * Created on 2022/3/29 + */ +@Route(path = OchCommonConst.CHARTER_PASSENGER) +class CharterPassengerProvider : CommonServiceImpl() { + + private val tag = CharterPassengerProvider::class.java.simpleName + private var fragment: MainFragment?=null + + override fun getFragment(): Fragment { + CallerLogger.d(SceneConstant.M_TAXI_P + tag, "getFragment") + if(fragment==null){ + fragment = MainFragment() + } + return fragment!! + } + + override fun resetFragment() { + CallerLogger.d(SceneConstant.M_TAXI_P + tag, "resetFragment") + fragment = null + } + + override fun getStatusBarView(context: Context): View { + if(statusBarView==null){ + statusBarView = StatusBarView(context) + } + return statusBarView!! + } + + override fun init(context: Context) { + CallerLogger.d(SceneConstant.M_TAXI_P + tag, "init") + } + +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/MogoOCHBusPassenger.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/MogoOCHBusPassenger.kt deleted file mode 100644 index 33007cf843..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/MogoOCHBusPassenger.kt +++ /dev/null @@ -1,76 +0,0 @@ -package com.mogo.och.charter.passenger - -import android.content.Context -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity -import androidx.fragment.app.FragmentManager -import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.charter.passenger.constant.CharterPassengerConst -import com.mogo.och.charter.passenger.ui.MainFragment - -/** - * 网约车-Bus-乘客端 - * - * Created on 2022/3/29 - */ -@Route(path = CharterPassengerConst.PATH) -class MogoOCHBusPassenger : IMoGoFunctionProvider { - private var mActivity: FragmentActivity? = null - private var mContainerId = 0 - private var mPassengerFragment: MainFragment? = null - override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? { - mActivity = activity - mContainerId = containerId!! - showFragment() - return null - } - - override val functionName: String - get() = "och-bus-passenger-m1" - - override fun onDestroy() { - // 若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 - mActivity?.finish() - } - - override fun init(context: Context) { - - } - - private fun showFragment() { - val supportFragmentManager: FragmentManager? = mActivity?.supportFragmentManager - - if (mPassengerFragment == null) { - d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======") - val fragmentByTag: Fragment? = supportFragmentManager?.findFragmentByTag(MainFragment.TAG) - mPassengerFragment = if (fragmentByTag is MainFragment){ - fragmentByTag - }else{ - MainFragment() - } - - if (!mPassengerFragment?.isAdded!!){ - supportFragmentManager?.beginTransaction() - ?.add(mContainerId, mPassengerFragment!!, MainFragment.TAG)?.commitAllowingStateLoss() - } - return - } - d(SceneConstant.M_TAXI_P + TAG, "准备show fragment") - supportFragmentManager?.beginTransaction()?.show(mPassengerFragment!!) - ?.commitAllowingStateLoss() - } - - private fun hideFragment() { - if (mPassengerFragment != null) { - mActivity!!.supportFragmentManager.beginTransaction().hide(mPassengerFragment!!) - .commitAllowingStateLoss() - } - } - - companion object { - private val TAG = MogoOCHBusPassenger::class.java.simpleName - } -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt index 1498c49eb1..2c9b564bf5 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt @@ -1,8 +1,7 @@ package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData -import com.mogo.och.common.module.bean.dpmsg.LineSite -import java.util.* +import com.mogo.och.common.module.manager.socket.lan.bean.LineSite /** * diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt index 8d27ffc4ea..2de61eac89 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt @@ -3,6 +3,7 @@ package com.mogo.och.charter.passenger.model import android.annotation.SuppressLint import android.content.Context import android.net.ConnectivityManager +import com.alibaba.android.arouter.utils.TextUtils import com.mogo.commons.AbsMogoApplication import com.mogo.commons.module.intent.IMogoIntentListener import com.mogo.commons.module.intent.IntentManager @@ -11,45 +12,50 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLonLat import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener import com.mogo.eagle.core.function.call.autopilot.* -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.startAutoPilot import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.network.utils.GsonUtil import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.* import com.mogo.och.charter.passenger.R -import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.manager.loop.LoopInfo import com.mogo.och.charter.passenger.bean.response.* import com.mogo.och.charter.passenger.callback.* import com.mogo.och.charter.passenger.constant.CharterPassengerConst -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager +import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.charter.passenger.net.BusPassengerServiceManager import com.mogo.och.charter.passenger.utils.CharterVoiceManager import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.och.charter.passenger.utils.VoiceFocusManager -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.biz.constant.LoginStatusManager -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.login.ILoginCallback +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.CharterSendTripInfoManager import com.mogo.och.common.module.manager.CharterSendTripInfoManager.LEAVE_STATION -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.PinYinUtil -import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.voice.VoiceNotice import io.reactivex.Observable import io.reactivex.disposables.Disposable @@ -132,7 +138,7 @@ object CharterPassengerModel { } private fun releaseListeners() { - CallerAutoPilotStatusListenerManager.removeListener(mGoAutopilotStatusListener) + OchAutoPilotStatusListenerManager.removeListener(mGoAutopilotStatusListener) CallerPlanningRottingListenerManager.removeListener(moGoAutopilotPlanningListener) } @@ -141,7 +147,7 @@ object CharterPassengerModel { IntentManager.getInstance() .registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener) // 自动驾驶状态变化监听 - CallerAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener) + OchAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener) // 自动驾驶路线规划接口 返回自动驾驶轨迹 CallerPlanningRottingListenerManager.addListener(TAG, moGoAutopilotPlanningListener) // 登录状态监听 @@ -163,41 +169,40 @@ object CharterPassengerModel { * 启动轮询查询司机登录状态 */ private fun listenerLoginStatus() { - LoginStatusManager.setControllerStatusCallback(TAG, - object : LoginStatusManager.ILoginStatusChangeListener { - override fun onStatusChange(currentStatus: TaxiLoginStatusEnum) { - if (LoginStatusManager.isLogin()) { - // 1、打开视频播放、 - // 2 、打开空调暖风机灯设置页面 - // 3、车控页面、 - // 4、打开选择线路页面 - BizLoopManager.removeLoopFunction(TAGLOGIN) - d(M_BUS_P + TAG, "结束登录状态轮询") - // 启动订单轮 - startOrderLoop() - } else { - BizLoopManager.setLoopFunction( - TAGLOGIN, - LoopInfo(3, ::queryLoginStatus) - ) - d(M_BUS_P + TAG, "启动登录状态轮询") - } + LoginStatusManager.addListener(TAG,object : ILoginCallback{ + override fun onStatusChange(currentStatus: LoginStatusEnum?) { + if (LoginStatusManager.isLogin()) { + // 1、打开视频播放、 + // 2 、打开空调暖风机灯设置页面 + // 3、车控页面、 + // 4、打开选择线路页面 + BizLoopManager.removeLoopFunction(TAGLOGIN) + d(M_BUS_P + TAG, "结束登录状态轮询") + // 启动订单轮 + startOrderLoop() + } else { + BizLoopManager.setLoopFunction( + TAGLOGIN, + LoopInfo(3, ::queryLoginStatus) + ) + d(M_BUS_P + TAG, "启动登录状态轮询") } - }) + } + }) } // endregion // region 设置外部回调 // 自动驾驶状态监听 - private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener = - object : IMoGoAutopilotStatusListener { + private val mGoAutopilotStatusListener: IOchAutopilotStatusListener = + object : IOchAutopilotStatusListener { override fun onAutopilotStatusResponse(state: Int) { mAutoStatusChnageListener.forEach { it.value.onAutoStatusChange(state) } } - override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) { + override fun onAutopilotArriveAtStation(arrivalNotification: ArrivedStation?) { d(M_BUS_P + TAG, "底盘给到站信息") arriveDest() } @@ -291,26 +296,7 @@ object CharterPassengerModel { * 查询车辆登录状态、车牌、司机手机号、司机sn */ fun queryLoginStatus() { - BusPassengerServiceManager.queryDriverOperationStatus( - mContext, object : OchCommonServiceCallback { - override fun onSuccess(data: M1DriverLoginStatusResponse?) { - if (data?.data == null) return - LoginStatusManager.setLoginStatus(data.data.driverStatus) - } - - override fun onFail(code: Int, msg: String) { - RxUtils.createSubscribe { - queryLoginStatus() - } - } - - override fun onError() { - super.onError() - RxUtils.createSubscribe { - queryLoginStatus() - } - } - }) + LoginStatusManager.queryLoginStatusByNet() } //监听网络变化,避免启动机器时无网导致无法更新订单信息 @@ -1001,10 +987,7 @@ object CharterPassengerModel { OrderInfoResponse.ARRIVED, currentTimeStamp ) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToServer(msg) d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}") } @@ -1050,7 +1033,8 @@ object CharterPassengerModel { if(size>3){ return } - BusPassengerServiceManager.queryLineSiteList(mContext,"$lineId",object :OchCommonServiceCallback{ + BusPassengerServiceManager.queryLineSiteList(mContext,"$lineId",object : + OchCommonServiceCallback { override fun onSuccess(data: SiteInfoResponse?) { data?.data?.forEach { if (it.siteId==siteId) { @@ -1137,18 +1121,39 @@ object CharterPassengerModel { * 开启自动驾驶 */ fun startAutopilot() { - if (!OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) { - ToastCharterUtils.showToastLong( - OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason + - ", 请稍候重试" - ) - return - } orderInfo?.let { if (it.arriveStatus == OrderInfoResponse.ARRIVED) { ToastCharterUtils.showToastLong("已到达目的地请重新选择线路") return } + //1、判断轨迹Id是否可用 + locusInfo?.let { + //根据开关和后台是否发布轨迹启动自驾 + if (FunctionBuildConfig.isPassStartAutopilotCommand + && TextUtils.isEmpty(it.csvFileUrl) + && TextUtils.isEmpty(it.csvFileUrlDPQP) + ) { + ToastUtils.showLong("无发布轨迹, 请发布后重试") + CallerLogger.e( + TAG, "isPassStartAutopilotCommand = " + + FunctionBuildConfig.isPassStartAutopilotCommand + + "busRoutesResult.csvFileUrl = " + it.csvFileUrl + ) + return + } + } + // 2、6个条件判断 + if (!CallerAutoPilotControlManager.isCanStartAutopilot(true)) { + return + } + // 4、ssm 给出数据 + if (!OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) { + ToastCharterUtils.showToastLong( + OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason + + ", 请稍候重试" + ) + return + } val parameters = initAutopilotControlParameters() if (null == parameters) { ToastCharterUtils.showToastShort("请选择站点") @@ -1160,7 +1165,7 @@ object CharterPassengerModel { } ToastCharterUtils.showToastShort("启动自动驾驶中") cleanRoutePoints() - startAutoPilot(parameters) + OchAutoPilotManager.startAutoPilot(parameters) d( SceneConstant.M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) @@ -1264,4 +1269,12 @@ object CharterPassengerModel { updateAutopilotControlParameters(null) } + fun setTrajectoryStation( + startStation: MogoLocation?, + endStation: MogoLocation?, + lineId: Long? + ) { + TrajectoryAndDistanceManager.setStationPoint(startStation, endStation, lineId) + } + } \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt index bfbbf2244c..6e35224527 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt @@ -4,16 +4,18 @@ import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.util.TAG -import com.mogo.och.common.module.manager.auditionmanager.AuditionManager -import com.mogo.och.common.module.manager.auditionmanager.PlayState +import com.mogo.och.common.module.manager.audition.AuditionManager +import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable -object MusicModel : IMoGoAutopilotStatusListener, IOrderStatusChangeListener { +object MusicModel : IOchAutopilotStatusListener, IOrderStatusChangeListener { init { CharterPassengerModel.setStatusChangeListener(TAG,this) //自动驾驶状态监听 - CallerAutoPilotStatusListenerManager.addListener(TAG, this) + OchAutoPilotStatusListenerManager.addListener(TAG, this) } private var stopMusicDisposable: Disposable? = null diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/BusPassengerServiceManager.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/BusPassengerServiceManager.kt index 228c480a11..c5bb0bef1a 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/BusPassengerServiceManager.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/BusPassengerServiceManager.kt @@ -8,11 +8,11 @@ import com.mogo.och.charter.passenger.bean.request.ArriveDestRequest import com.mogo.och.charter.passenger.bean.request.EndOrderRequest import com.mogo.och.charter.passenger.bean.response.* import com.mogo.och.common.module.wigets.toast.ToastCharterUtils -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.transformIoTry -import com.mogo.och.common.module.biz.network.interceptor.transformTry +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformIoTry +import com.mogo.och.common.module.network.interceptor.transformTry /** * Created on 2022/3/31 diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt index 8387d842cb..eb7e57493d 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt @@ -31,13 +31,13 @@ import com.mogo.och.charter.passenger.receive.DriverMessage import com.mogo.och.charter.passenger.ui.MainFragment import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteName import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteNamewithCheck -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager -import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.stopsidemanager.OCHPlanningActionsCallback -import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus +import com.mogo.och.common.module.manager.stopside.StopSideManager +import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback +import com.mogo.och.common.module.manager.stopside.StopSideStatus import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.common.module.wigets.toast.ToastCharterUtils diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/provider/StatusViewManager.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/provider/StatusViewManager.java deleted file mode 100644 index aae72e7b38..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/provider/StatusViewManager.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.mogo.och.charter.passenger.provider; - -import android.content.Context; -import android.view.View; - -import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView; - -import androidx.annotation.NonNull; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.data.constants.MogoServicePaths; -import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout; -import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView; - -/** - * @author congtaowang - * @since 2020-01-06 - *

- * 根据优先级控制显示 window view. - */ -@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER ) -public class StatusViewManager implements IStatusViewLayout { - - private StatusBarView statusBarView; - - @NonNull - @Override - public View getStatusView(Context context) { - return statusBarView; - } - - @Override - public void init(Context context) { - statusBarView = new StatusBarView(context); - } -} diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/receive/DriverMessage.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/receive/DriverMessage.kt index 5c36418f3b..0b638d807c 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/receive/DriverMessage.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/receive/DriverMessage.kt @@ -11,11 +11,14 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse import com.mogo.och.charter.passenger.model.CharterPassengerModel -import com.mogo.och.common.module.bean.dpmsg.* -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.SoundPoolHelper import com.mogo.och.common.module.voice.VoiceNotice diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/MainFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/MainFragment.kt index 95bb001ece..9c277423c3 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/MainFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/MainFragment.kt @@ -10,17 +10,14 @@ import com.amap.api.maps.model.LatLng import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.data.config.HdMapBuildConfig -import com.mogo.eagle.core.data.constants.MogoServicePaths -import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIController -import com.mogo.eagle.core.function.hmi.ui.msgbox.MMsgBoxButtonView import com.mogo.eagle.core.function.view.SiteMarkerBean import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.map.listener.IMogoMapListener import com.mogo.map.listener.MogoMapListenerHandler -import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.bean.event.EventLineSites import com.mogo.och.charter.passenger.callback.IClearViewCallback @@ -31,8 +28,10 @@ import com.mogo.och.charter.passenger.ui.dialogfragment.M1CarUserNoOrderFragment import com.mogo.och.charter.passenger.ui.dialogfragment.NoviceGuidanceFragment import com.mogo.och.charter.passenger.ui.lockview.LockManager import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView +import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.wigets.toast.ToastCharterUtils -import com.mogo.och.common.module.biz.constant.LoginStatusManager +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.biz.provider.CommonService import kotlinx.android.synthetic.main.charter_p_main_fragment.aciv_enter_video import kotlinx.android.synthetic.main.charter_p_main_fragment.aciv_map_2_default import kotlinx.android.synthetic.main.charter_p_main_fragment.bb_boorombar @@ -43,9 +42,6 @@ import kotlinx.android.synthetic.main.charter_p_main_fragment.biz_video import kotlinx.android.synthetic.main.charter_p_main_fragment.mapBizView import kotlinx.android.synthetic.main.charter_p_main_fragment.mcv_play_music import kotlinx.android.synthetic.main.charter_p_main_fragment.omvOverMap -//import kotlinx.android.synthetic.main.charter_p_main_fragment.viewBusPM1MsgBoxBubble -//import kotlinx.android.synthetic.main.charter_p_main_fragment.viewBusPM1MsgBoxButton -//import kotlinx.android.synthetic.main.charter_p_main_fragment.viewBusPM1MsgBoxList import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -80,13 +76,16 @@ class MainFragment : MvpFragment(), IMogo private var statusBarView: StatusBarView? = null override fun getLayoutId(): Int { - (ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_VIEW_MANAGER) - .navigation() as? IStatusViewLayout)?.apply { - val statusView = getStatusView(requireContext()) - if (statusView is StatusBarView) { - statusBarView = statusView + (ARouter.getInstance().build(OchCommonConst.CHARTER_PASSENGER) + .navigation() as? CommonService)?.apply { + context?.let { + val statusView = getStatusBarView(it) + if (statusView is StatusBarView) { + statusBarView = statusView + } } } + return R.layout.charter_p_main_fragment } @@ -138,6 +137,7 @@ class MainFragment : MvpFragment(), IMogo } showBizView(orderinfo = true) } + BottomBar.SelectView.SETTING -> showBizView(softControl = true) BottomBar.SelectView.LINE -> showBizView(selectLine = true) BottomBar.SelectView.VIDEO -> showBizView(showVideo = true) @@ -207,10 +207,10 @@ class MainFragment : MvpFragment(), IMogo } else { biz_video.visibility = View.GONE } - if(showMusic) { + if (showMusic) { mcv_play_music.visibility = View.VISIBLE statusBarView?.setBackgroudColor(R.color.charter_p_40ffffff) - }else{ + } else { mcv_play_music.visibility = View.GONE } } @@ -266,8 +266,16 @@ class MainFragment : MvpFragment(), IMogo override fun onDestroyView() { mapBizView.onDestroy() omvOverMap.onDestroy() - super.onDestroyView() + CallerMapUIServiceManager.getOverlayManager()?.let { + it.removeAllLines() + it.removeAllPoints() + } + MogoMapListenerHandler.mogoMapListenerHandler.unregisterHostMapListener(TAG) EventBus.getDefault().unregister(this) + if (mPresenter != null) { + mPresenter?.onDestroy(this) + } + super.onDestroyView() } override fun onMapLoaded() { @@ -290,7 +298,7 @@ class MainFragment : MvpFragment(), IMogo ) } - fun showOvermapPoint(){ + fun showOvermapPoint() { omvOverMap.setDebugMode(true) } @@ -348,7 +356,7 @@ class MainFragment : MvpFragment(), IMogo omvOverMap?.drawSitePolyline(coordinates, lineTrajectory) } - fun includePoint(coordinates: List){ + fun includePoint(coordinates: List) { omvOverMap?.includeSitePointsAndUpdateCamera(coordinates) } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/CloseDoorView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/CloseDoorView.kt index 8d2f605601..a5a52476e5 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/CloseDoorView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/CloseDoorView.kt @@ -5,7 +5,7 @@ import android.util.AttributeSet import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.ui.bottom.BottomClickView -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager import com.mogo.och.common.module.utils.SoundPoolHelper class CloseDoorView @JvmOverloads constructor( diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/GoViewWithArrive.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/GoViewWithArrive.kt index f1132bef75..16e6bad267 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/GoViewWithArrive.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/GoViewWithArrive.kt @@ -9,7 +9,6 @@ import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P @@ -20,8 +19,8 @@ import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.callback.ICharterPassengerAutoStatusChangeCallback import com.mogo.och.charter.passenger.model.CharterPassengerModel import com.mogo.och.charter.passenger.ui.bottom.BottomClickView -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.stopside.StopSideManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.utils.SoundPoolHelper import io.reactivex.disposables.Disposable diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt index 398fbf271f..5b88a42404 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt @@ -14,9 +14,9 @@ import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.SimpleTarget import com.bumptech.glide.request.transition.Transition import com.mogo.och.charter.passenger.R -import com.mogo.och.common.module.manager.auditionmanager.AuditionManager -import com.mogo.och.common.module.manager.auditionmanager.MusicData -import com.mogo.och.common.module.manager.auditionmanager.PlayState +import com.mogo.och.common.module.manager.audition.AuditionManager +import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.manager.audition.PlayState import kotlinx.android.synthetic.main.charter_p_bottom_music.view.aciv_center_image import kotlinx.android.synthetic.main.charter_p_bottom_music.view.actv_title import kotlinx.android.synthetic.main.charter_p_bottom_music.view.aciv_playing @@ -45,7 +45,6 @@ open class MusicCheckView @JvmOverloads constructor( init { LayoutInflater.from(context).inflate(R.layout.charter_p_bottom_music, this, true) - AuditionManager.addDataChangeListener(TAG,this) try { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.CharterPBottomSelectView) backageViewId = typedArray.getResourceId(R.styleable.CharterPBottomSelectView_charterPBackageViewId, -1) @@ -141,6 +140,7 @@ open class MusicCheckView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() + AuditionManager.addDataChangeListener(TAG,this) parent?.let { if (parent is ConstraintLayout) { if (backageViewId > 0) { @@ -153,6 +153,11 @@ open class MusicCheckView @JvmOverloads constructor( } } + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + AuditionManager.removeDataChangeListener(TAG) + } + override fun updateState(oldData: MusicData?, musicData: MusicData) { if(musicData.state== PlayState.Playing){ Glide.with(context) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/OpenDoorView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/OpenDoorView.kt index 46c0a8c028..d73272c7f5 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/OpenDoorView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/OpenDoorView.kt @@ -5,7 +5,7 @@ import android.util.AttributeSet import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.ui.bottom.BottomClickView -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager import com.mogo.och.common.module.utils.SoundPoolHelper class OpenDoorView @JvmOverloads constructor( diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/StopSiteView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/StopSiteView.kt index 61233b4697..1fffbdcebd 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/StopSiteView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/StopSiteView.kt @@ -3,13 +3,12 @@ package com.mogo.och.charter.passenger.ui.bottom.impl import android.content.Context import android.util.AttributeSet import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.ui.bottom.BottomClickView -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager +import com.mogo.och.common.module.manager.stopside.StopSideManager import com.mogo.och.common.module.utils.SoundPoolHelper class StopSiteView @JvmOverloads constructor( diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugView.kt index 17f208ca5d..e95d4a161b 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugView.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.FragmentActivity +import com.alibaba.android.arouter.launcher.ARouter import com.mogo.eagle.core.data.config.HdMapBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView @@ -16,6 +17,8 @@ import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse import com.mogo.och.charter.passenger.model.CharterPassengerModel import com.mogo.och.charter.passenger.ui.MainFragment import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView +import com.mogo.och.common.module.biz.provider.CommonService +import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.och.common.module.manager.debug.DebugViewWatchDogFragment import kotlinx.android.synthetic.main.charter_p_debug.view.debug_arrive_dest @@ -45,6 +48,21 @@ class DebugView @JvmOverloads constructor( private var fragment: MainFragment?=null + private fun getFragment():MainFragment?{ + if(fragment==null) { + (ARouter.getInstance().build(OchCommonConst.CHARTER_PASSENGER) + .navigation() as? CommonService)?.apply { + context?.let { + val fragmentTemp = getFragment() + if (fragmentTemp is MainFragment) { + fragment = fragmentTemp + } + } + } + } + return fragment + } + private var debugViewWatchDogFragment: WeakReference? = null override fun onAttachedToWindow() { @@ -52,45 +70,37 @@ class DebugView @JvmOverloads constructor( EventBus.getDefault().register(this) - val activityByContext = ActivityUtils.getActivityByContext(context) - if(activityByContext is FragmentActivity){ - val fragment = activityByContext.supportFragmentManager.findFragmentByTag(MainFragment.TAG) - if(fragment is MainFragment){ - this.fragment = fragment - } - } - debug_arrive_dest.setOnClickListener { CharterPassengerModel.arriveDest() } debug_show_noviceGuidance.setOnClickListener { - fragment?.showNoviceGuidanceFragment() + getFragment()?.showNoviceGuidanceFragment() } debug_change_modle.setOnClickListener { ToastCharterUtils.showToastShort("因车辆正在人工驾驶中无法靠边停车,请安全员主动停止车辆") when (HdMapBuildConfig.currentCarVrIconRes) { R.raw.aiqinghao -> { - fragment?.setCarMode(OrderInfoResponse.M1_FAMILY) + getFragment()?.setCarMode(OrderInfoResponse.M1_FAMILY) } R.raw.jiatinghao -> { - fragment?.setCarMode(OrderInfoResponse.M1_FRIENDLY) + getFragment()?.setCarMode(OrderInfoResponse.M1_FRIENDLY) } R.raw.pengyouhao -> { - fragment?.setCarMode(0) + getFragment()?.setCarMode(0) } else -> { - fragment?.setCarMode(OrderInfoResponse.M1_LOVE) + getFragment()?.setCarMode(OrderInfoResponse.M1_LOVE) } } } debug_show_endview.setOnClickListener { - fragment?.showOpenAndCloseDoor() + getFragment()?.showOpenAndCloseDoor() } debug_show_overmap_point.onClick { - fragment?.showOvermapPoint() + getFragment()?.showOvermapPoint() } } @@ -120,7 +130,7 @@ class DebugView @JvmOverloads constructor( debugViewWatchDogFragment = WeakReference(DebugViewWatchDogFragment.newInstance()) } val debugViewFragment = debugViewWatchDogFragment?.get() - fragment?.let { + getFragment()?.let { DebugViewWatchDogFragment.showDebugView(it.childFragmentManager,it.parentFragmentManager,debugViewFragment) } } @@ -129,6 +139,7 @@ class DebugView @JvmOverloads constructor( override fun onDetachedFromWindow() { + fragment = null super.onDetachedFromWindow() EventBus.getDefault().unregister(this) } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt index 09017951c0..f051a2a43a 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt @@ -18,7 +18,7 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter import com.mogo.och.charter.passenger.utils.CharterVoiceManager -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager +import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_closedoor import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_opendoor diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockAndUnlockView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockAndUnlockView.kt index bf4eae809c..f8e32bbe53 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockAndUnlockView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockAndUnlockView.kt @@ -37,18 +37,6 @@ class LockAndUnlockView : ConstraintLayout, LockManager.LockStatusCallback { private fun initView() { LayoutInflater.from(context).inflate(R.layout.charter_p_devices_lock_unlock, this, true) - handler = object : Handler(Looper.myLooper()!!) { - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - when (msg.what) { - 2 -> {// 解锁 - LockManager.setLock(LockManager.LockStatus.UNLOCK) - animations?.stop() - } - else -> {} - } - } - } } override fun onAttachedToWindow() { @@ -63,10 +51,25 @@ class LockAndUnlockView : ConstraintLayout, LockManager.LockStatusCallback { } }) } + + handler = object : Handler(Looper.myLooper()!!) { + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + when (msg.what) { + 2 -> {// 解锁 + LockManager.setLock(LockManager.LockStatus.UNLOCK) + animations?.stop() + } + else -> {} + } + } + } } override fun onDetachedFromWindow() { super.onDetachedFromWindow() + handler?.removeCallbacksAndMessages(null) + handler = null LockManager.setAutoStatusCallback(TAG, null) } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockViewConstrainLayout.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockViewConstrainLayout.kt index e32003b66b..963113a3ad 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockViewConstrainLayout.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockViewConstrainLayout.kt @@ -33,6 +33,9 @@ class LockViewConstrainLayout : ConstraintLayout { } override fun onDetachedFromWindow() { + acivScreenLock = null + uvOnlyUnlock = null + uv_only_unlock = null super.onDetachedFromWindow() LockManager.stopLoop4Lock() } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/UnlockView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/UnlockView.kt index 8b1b06e02e..e36d40e5a7 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/UnlockView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/UnlockView.kt @@ -55,6 +55,11 @@ class UnlockView : ConstraintLayout, LockManager.LockStatusCallback { LockManager.setAutoStatusCallback(TAG,this) } + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + LockManager.setAutoStatusCallback(TAG,null) + } + override fun setVisibility(visibility: Int) { super.setVisibility(visibility) LockManager.setStatusView(visibility) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt index e5c79fd29a..e149293200 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt @@ -8,7 +8,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.ui.music.list.MusicListView -import com.mogo.och.common.module.manager.auditionmanager.MusicData +import com.mogo.och.common.module.manager.audition.MusicData import kotlinx.android.synthetic.main.charter_p_music.view.mlv_list import kotlinx.android.synthetic.main.charter_p_music.view.mpv_music_info diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt index deea92b6c6..9db6901ac1 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt @@ -13,8 +13,8 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.charter.passenger.R -import com.mogo.och.common.module.manager.auditionmanager.MusicData -import com.mogo.och.common.module.manager.auditionmanager.PlayState +import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.manager.audition.PlayState import me.jessyan.autosize.AutoSizeCompat /** diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt index a3144ae018..df45abfece 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt @@ -9,7 +9,7 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.charter.passenger.R -import com.mogo.och.common.module.manager.auditionmanager.MusicData +import com.mogo.och.common.module.manager.audition.MusicData import kotlinx.android.synthetic.main.charter_p_music_list.view.rv_music_list class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillback, diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt index e88f40c48c..574920a1af 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt @@ -3,8 +3,8 @@ package com.mogo.och.charter.passenger.ui.music.list import androidx.lifecycle.ViewModel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.auditionmanager.AuditionManager -import com.mogo.och.common.module.manager.auditionmanager.MusicData +import com.mogo.och.common.module.manager.audition.AuditionManager +import com.mogo.och.common.module.manager.audition.MusicData class MusicListViewModel : ViewModel(), AuditionManager.MusicDataChangeListener { @@ -25,6 +25,7 @@ class MusicListViewModel : ViewModel(), } override fun onCleared() { + AuditionManager.removeDataChangeListener(TAG) super.onCleared() this.viewCallback = null } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt index 5c7a48de6a..9c2c870f7b 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt @@ -13,13 +13,12 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions -import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TimeTransformUtils import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.ui.music.list.MusicListViewModel -import com.mogo.och.common.module.manager.auditionmanager.MusicData -import com.mogo.och.common.module.manager.auditionmanager.PlayState +import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.manager.audition.PlayState import com.mogo.och.common.module.utils.DateTimeUtil import kotlinx.android.synthetic.main.charter_p_music_playing.view.iv_music_cover import kotlinx.android.synthetic.main.charter_p_music_playing.view.iv_music_cover_bg diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt index f43e922495..f25f9ac8dd 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt @@ -3,8 +3,8 @@ package com.mogo.och.charter.passenger.ui.music.playing import androidx.lifecycle.ViewModel import com.elegant.utils.UiThreadHandler import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.auditionmanager.AuditionManager -import com.mogo.och.common.module.manager.auditionmanager.MusicData +import com.mogo.och.common.module.manager.audition.AuditionManager +import com.mogo.och.common.module.manager.audition.MusicData class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListener { @@ -25,6 +25,7 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen override fun onCleared() { super.onCleared() + AuditionManager.removeDataChangeListener(TAG) this.viewCallback = null } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoViewModel.kt index 224351d5a6..541f777faf 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -2,18 +2,16 @@ package com.mogo.och.charter.passenger.ui.orderinfo import androidx.lifecycle.ViewModel import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager 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.GsonUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.charter.passenger.callback.ITimeCallback import com.mogo.och.charter.passenger.model.CharterPassengerModel import com.mogo.och.common.module.wigets.toast.ToastCharterUtils -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.EndOrderMsg -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.EndOrderMsg +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil class OrderInfoViewModel: ViewModel(), ITimeCallback { @@ -74,10 +72,7 @@ class OrderInfoViewModel: ViewModel(), ITimeCallback { val msg = EndOrderMsg( CharterPassengerModel.getCurrentOrderInfo()?.orderNo?:"", ) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToServer(msg) CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "发送数据:结束订单${msg}") } } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineViewModel.kt index 55b669503c..329a55d96a 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineViewModel.kt @@ -21,16 +21,17 @@ import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener import com.mogo.och.charter.passenger.model.OrderStatusEnum import com.mogo.och.charter.passenger.net.BusPassengerServiceManager import com.mogo.och.common.module.wigets.toast.ToastCharterUtils -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg -import com.mogo.och.common.module.bean.dpmsg.DPMsgType -import com.mogo.och.common.module.bean.dpmsg.LineSite -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo -import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.LineSite +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.stopside.StopSideManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.stopside.StopSideStatus import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable import org.greenrobot.eventbus.EventBus @@ -242,10 +243,7 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { 0, sentDataSite ) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToServer(msg) CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "发送数据:切换站点${msg}") } viewCallback?.hideDataWaitDriverMsg() diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlViewModel.kt index 695239f216..634a4cd9b8 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlViewModel.kt @@ -6,11 +6,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.wigets.toast.ToastCharterUtils -import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager -import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus -import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue -import com.mogo.och.common.module.manager.devicemanage.data.LightStatus +import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.device.data.AirconditionStatus +import com.mogo.och.common.module.manager.device.data.HeaterStatue +import com.mogo.och.common.module.manager.device.data.LightStatus import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/StatusBarView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/StatusBarView.kt index 20352dba05..908713c894 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/StatusBarView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/StatusBarView.kt @@ -25,12 +25,14 @@ import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse import com.mogo.och.charter.passenger.model.CharterPassengerModel import com.mogo.och.charter.passenger.model.OrderStatusEnum import com.mogo.och.charter.passenger.ui.debugview.DebugEvent +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo -import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager -import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.stopside.StopSideManager +import com.mogo.och.common.module.manager.stopside.StopSideStatus import kotlinx.android.synthetic.main.charter_p_statusview_datetime.view.aciv_connect_driver_status import kotlinx.android.synthetic.main.charter_p_statusview_datetime.view.actv_auto_status import kotlinx.android.synthetic.main.charter_p_statusview_datetime.view.bizz_view @@ -45,7 +47,8 @@ class StatusBarView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoBatteryManagementSystemListener, IMoGoAutopilotStatusListener, +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoBatteryManagementSystemListener, + IOchAutopilotStatusListener, IBeautifyModeCallback { companion object { @@ -90,7 +93,7 @@ class StatusBarView @JvmOverloads constructor( //电池电量监听 CallerBatteryManagementSystemListenerManager.addListener(TAG,this) //自动驾驶状态监听 - CallerAutoPilotStatusListenerManager.addListener(TAG, this) + OchAutoPilotStatusListenerManager.addListener(TAG, this) BeautifyManager.setStatusChangeListener(TAG,this) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt index 38e6d6da91..50c2144239 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt @@ -23,7 +23,7 @@ import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.utils.FullVideoUtils -import com.mogo.och.common.module.manager.audiofocusmanager.AudioFocusManager +import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager import com.mogo.och.common.module.wigets.media.MediaItem import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack import com.shuyu.gsyvideoplayer.utils.GSYVideoType diff --git a/OCH/charter/passenger/src/main/res/layout/charter_p_main_fragment.xml b/OCH/charter/passenger/src/main/res/layout/charter_p_main_fragment.xml index 3bbc9238a9..595730e1ae 100644 --- a/OCH/charter/passenger/src/main/res/layout/charter_p_main_fragment.xml +++ b/OCH/charter/passenger/src/main/res/layout/charter_p_main_fragment.xml @@ -130,7 +130,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> - + + \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/res/layout/charter_p_statusview_datetime.xml b/OCH/charter/passenger/src/main/res/layout/charter_p_statusview_datetime.xml index 70561adb14..2cc4daa0a8 100644 --- a/OCH/charter/passenger/src/main/res/layout/charter_p_statusview_datetime.xml +++ b/OCH/charter/passenger/src/main/res/layout/charter_p_statusview_datetime.xml @@ -54,9 +54,10 @@ + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginConst.kt similarity index 54% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginConst.kt index e6fec1f2d5..f474a6ac36 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginConst.kt @@ -1,11 +1,11 @@ -package com.mogo.och.common.module.biz.constant +package com.mogo.och.biz.login import com.mogo.eagle.core.data.config.FunctionBuildConfig /** * Created on 2021/12/6 */ -class OchCommonConst { +class LoginConst { companion object { @JvmStatic fun getBaseUrl(): String { @@ -28,7 +28,24 @@ class OchCommonConst { // token 失效 重新获取token const val WAIT_TAKEN = 100046 - const val LOGINSERVICE = "/ochbiz/common/login" + const val BIZ_LOGIN = "/ochbiz/common/login" + + const val BUS_DRIVER = "/bus/driver" + const val BUS_PASSENGER = "/bus/passenger" + + const val CHARTER_DRIVER = "/charter/driver" + const val CHARTER_PASSENGER = "/charter/passenger" + + const val SHUTTLE_DRIVER = "/shuttle/driver" + const val SHUTTLE_PASSENGER = "/shuttle/passenger" + + const val SWEEPER_DRIVER = "/sweeper/driver" + + const val TAXI_DRIVER = "/taxi/driver" + const val TAXI_PASSENGER = "/taxi/passenger" + + const val TAXI_UNMANNED_DRIVER = "/taxiunman/driver" + const val TAXI_UNMANNED_PASSENGER = "/taxiunman/passenger" const val BUSINESS_STRING = 100 diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt new file mode 100644 index 0000000000..41db86def2 --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt @@ -0,0 +1,213 @@ +package com.mogo.och.biz.login + +import android.content.Context +import android.view.View +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.biz.login.callback.ILoginViewCallback +import com.mogo.och.biz.login.model.LoginModel +import com.mogo.och.biz.login.ui.LoginFragment +import com.mogo.och.biz.login.ui.LoginPassengerFragment +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.login.BusinessEnum +import com.mogo.och.common.module.biz.login.LoginInfo +import com.mogo.och.common.module.biz.login.LoginService +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.biz.login.RoleEnum +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import com.mogo.och.common.module.utils.FlavorUtils + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ +@Route(path = OchCommonConst.BIZ_LOGIN) +class LoginProvider : LoginService { + + private val tag = LoginProvider::class.java.simpleName + private var loginFragment: Fragment?=null + private var loginStatus: LoginStatusEnum = LoginStatusEnum.None + private var businessEnum: BusinessEnum = BusinessEnum.None + private var openOrderStatusEnum: OpenOrderStatusEnum = OpenOrderStatusEnum.None + private var loginInfo: LoginInfo? = null + + override fun init(context: Context) { + CallerLogger.d(tag, "LoginProvider init") + loginFragment = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + LoginFragment() + } else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { + LoginPassengerFragment() + } else { + LoginFragment() + } + } + + override fun getFragment(): Fragment { + CallerLogger.d(tag, "getFragment:${loginFragment}") + if(loginFragment==null){ + loginFragment = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + LoginFragment() + } else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { + LoginPassengerFragment() + } else { + LoginFragment() + } + } + return loginFragment!! + } + + override fun resetFragment() { + super.resetFragment() + loginFragment = null + } + + override fun getStatusBarView(context: Context): View { + return View(context) + } + + override fun setLoginStatus(status: Int) { + CallerLogger.d(tag, "setLoginStatus:${status}") + when (status) { + 0 -> { + setLoginStatus(LoginStatusEnum.Logout) + } + + 1 -> { + setLoginStatus(LoginStatusEnum.Login) + } + + else -> { + setLoginStatus(LoginStatusEnum.None) + } + } + } + + override fun queryLoginStatusByNet() { + CallerLogger.d(tag, "queryLoginStatusByNet") + LoginModel.queryCarStatus() + } + + override fun loginOut(mLatitude: Double, mLongitude: Double) { + CallerLogger.d(tag, "loginOut mLatitude:${mLatitude}--mLongitude:${mLongitude}") + LoginModel.logout(mLatitude, mLongitude) + } + + override fun checkBusiness(businessType: Int): Boolean { + val businessInfo = FlavorUtils.getBusinessInfo(businessType) + if(businessInfo.isEmpty()){ + return true + } + if (loginFragment is ILoginViewCallback) { + UiThreadHandler.post({ + (loginFragment as ILoginViewCallback).showErrorInfo(businessInfo) + },UiThreadHandler.MODE.QUEUE) + } + return false + } + + override fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ): Boolean { + + val checkAllEnv = FlavorUtils.checkAllEnv(projectType, envType, vehicleType, businessType) + if(checkAllEnv.isEmpty()){ + + }else{ + if (loginFragment is ILoginViewCallback) { + changeStatus(checkAllEnv) + UiThreadHandler.post({ + changeStatus(checkAllEnv) + (loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv) + },UiThreadHandler.MODE.QUEUE) + } + } + + return checkAllEnv.isEmpty() + } + + override fun changeStatus(currentStatus: String) { + (loginFragment as ILoginViewCallback).updateStatus(currentStatus) + } + + + override fun setLoginInfo(loginInfo: LoginInfo) { + CallerLogger.d(tag, "setLoginInfo:${loginInfo}") + this.loginInfo = loginInfo + } + + override fun getLoginInfo(): LoginInfo? { + CallerLogger.d(tag, "getLoginInfo") + return loginInfo + } + + override fun getPurpose(): RoleEnum { + CallerLogger.d(tag, "getPurpose") + return RoleEnum.valueOf(loginInfo?.purpose) + } + + override fun isLogin(): Boolean { + CallerLogger.d(tag, "isLogin:${loginStatus == LoginStatusEnum.Login}") + return loginStatus == LoginStatusEnum.Login + } + + override fun getLoginStatus(): LoginStatusEnum { + CallerLogger.d(tag, "getLoginStatus:${loginStatus}") + return loginStatus + } + + + override fun setLoginStatus(loginStatus: LoginStatusEnum) { + CallerLogger.d(tag, "setLoginStatus:${loginStatus}----old${this.loginStatus}") + if (loginStatus != this.loginStatus) { + this.loginStatus = loginStatus + LoginStatusManager.invokeLoginStatusChange(loginStatus) + } + } + + + override fun setBusinessType(type: Int) { + CallerLogger.d(tag, "setBusinessType:${type}") + if (businessEnum.code != type) { + this.businessEnum = BusinessEnum.valueOf(type) + LoginStatusManager.invokeLBusinessTypeChange(this.businessEnum) + } + } + + override fun getBusinessType(): BusinessEnum { + CallerLogger.d(tag, "getBusinessType") + return businessEnum + } + + override fun setOpenOrderStatusType(type: Int) { + CallerLogger.d(tag, "setOpenOrderStatusType:${type}") + if (openOrderStatusEnum.code != type) { + this.openOrderStatusEnum = OpenOrderStatusEnum.valueOf(type) + LoginStatusManager.invokeLOpenOrderStatusChange(this.openOrderStatusEnum) + } + } + + override fun getOpenOrderStatusType(): OpenOrderStatusEnum { + CallerLogger.d(tag, "getOpenOrderStatusType:${openOrderStatusEnum}") + return openOrderStatusEnum + } + + override fun isOpenOrderType(): Boolean { + CallerLogger.d(tag, "isOpenOrderType:${openOrderStatusEnum == OpenOrderStatusEnum.Ordering}") + return openOrderStatusEnum == OpenOrderStatusEnum.Ordering + } + + +} diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/DriverStatusQueryRespBean.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/DriverStatusQueryRespBean.java new file mode 100644 index 0000000000..48966c7b5b --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/DriverStatusQueryRespBean.java @@ -0,0 +1,20 @@ +package com.mogo.och.biz.login.bean; + +import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.common.module.biz.login.LoginInfo; + +/** + * Created by pangfan on 2021/8/19 + * + * 状态查询返回数据结构 + */ +public class DriverStatusQueryRespBean extends BaseData { + public LoginInfo data; + + @Override + public String toString() { + return "DriverStatusQueryRespBean{" + + "data=" + data + + '}'; + } +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginReqBean.java similarity index 93% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginReqBean.java index 0af1851615..3cb357abb2 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginReqBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.bean; +package com.mogo.och.biz.login.bean; /** * Created by yangyakun on 2021/8/19 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginRespBean.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginRespBean.java similarity index 86% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginRespBean.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginRespBean.java index 9cda2a96c6..c48cb9dc7e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginRespBean.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginRespBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.bean; +package com.mogo.och.biz.login.bean; import com.mogo.eagle.core.data.BaseData; diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginSmsReqBean.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginSmsReqBean.java similarity index 81% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginSmsReqBean.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginSmsReqBean.java index 3c246bc153..ef2a6232d2 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginSmsReqBean.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLoginSmsReqBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.bean; +package com.mogo.och.biz.login.bean; /** * Created by yyk on 2021/8/19 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLogoutReqBean.java similarity index 91% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLogoutReqBean.java index c9f95f263b..e152ea2ce9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/TaxiLogoutReqBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.bean; +package com.mogo.och.biz.login.bean; /** * Created by yyk on 2021/8/19 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ILoginCallback.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginCallback.java similarity index 52% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ILoginCallback.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginCallback.java index 481a2cd75b..7da0cd0161 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ILoginCallback.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginCallback.java @@ -1,6 +1,6 @@ -package com.mogo.och.common.module.biz.callback; +package com.mogo.och.biz.login.callback; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; +import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean; public interface ILoginCallback { void loginSuccess(DriverStatusQueryRespBean data); diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginViewCallback.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginViewCallback.kt new file mode 100644 index 0000000000..c624511a53 --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginViewCallback.kt @@ -0,0 +1,17 @@ +package com.mogo.och.biz.login.callback + +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType + +interface ILoginViewCallback { + fun showErrorInfo(errorInfo: String) + + fun checkAllEnv( + reason:String + ){} + + fun updateStatus(status:String){} + +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ITaxiLoginCallback.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ITaxiLoginCallback.java similarity index 76% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ITaxiLoginCallback.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ITaxiLoginCallback.java index 5cbca0d853..d8106b4e98 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ITaxiLoginCallback.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ITaxiLoginCallback.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.callback; +package com.mogo.och.biz.login.callback; /** * Created on 2021/9/8 @@ -7,5 +7,6 @@ package com.mogo.och.common.module.biz.callback; */ public interface ITaxiLoginCallback { void getPhoneCodeSuccess(); - void loginSuccess(); + default void searchStatusSuccess(){} + } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt new file mode 100644 index 0000000000..f33025bda7 --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt @@ -0,0 +1,261 @@ +package com.mogo.och.biz.login.model + +import android.annotation.SuppressLint +import android.content.Context +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02 +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.eagle.core.utilcode.util.NetworkUtils +import com.mogo.och.biz.R +import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean +import com.mogo.och.biz.login.bean.TaxiLoginReqBean +import com.mogo.och.biz.login.bean.TaxiLoginRespBean +import com.mogo.och.biz.login.bean.TaxiLogoutReqBean +import com.mogo.och.biz.login.callback.ITaxiLoginCallback +import com.mogo.och.biz.login.net.OchCommonServiceManager +import com.mogo.och.biz.login.net.OchCommonServiceManager.logout +import com.mogo.och.biz.login.net.OchCommonServiceManager.queryDriverServiceStatus +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusEnum.Companion.valueOf +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey +import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.common.module.utils.ToastUtilsOch +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.data.manager.cache.CacheDataManager +import io.reactivex.Observable +import io.reactivex.disposables.Disposable +import java.util.concurrent.TimeUnit + +/** + * Created by pangfan on 2021/8/19 + * + * + * 网约车 - 出租车业务逻辑处理 + */ +@SuppressLint("StaticFieldLeak") +object LoginModel { + + private val TAG = "TaxiLoginModel" + private var mContext: Context? = null + var iTaxiLoginCallback: ITaxiLoginCallback? = null + private var subscribe: Disposable? = null + + init { + mContext = AbsMogoApplication.getApp() + } + + fun init(context: Context) { + + } + + fun hasInit(): Boolean { + if (iTaxiLoginCallback == null) { + return false + } + return true + } + + fun getiTaxiLoginCallback(): ITaxiLoginCallback? { + return iTaxiLoginCallback + } + + fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) { + LoginModel.iTaxiLoginCallback = iTaxiLoginCallback + } + + fun release() { + iTaxiLoginCallback = null + } + + /** + * 获取手机验证码 + */ + fun getPhoneCode(phone: String?) { + mContext?.let { + OchCommonServiceManager.getPhoneCode(it, phone, + object : OchCommonServiceCallback { + override fun onSuccess(data: BaseData?) { + if (null != data && 0 == data.code) { + // 获取验证码成功 + ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_get_code_success)) + iTaxiLoginCallback?.getPhoneCodeSuccess() + } else { + if (data != null) { + ToastCharterUtils.showToastShort(data.code.toString()) + } + } + } + + override fun onError() { + if (!NetworkUtils.isConnected(mContext)) { + ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) + } else { + ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) + } + } + + override fun onFail(code: Int, msg: String) { + ToastUtilsOch.showWithCodeMessage(code, msg) + } + }) + } + + } + + fun gotoLogin(phone: String, code: String) { + mContext?.let { + val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() + val location4Login = TaxiLoginReqBean.Location4Login(location.latitude, location.longitude) + OchCommonServiceManager.gotoLoginBycode(it, phone, code, location4Login, + object : OchCommonServiceCallback { + override fun onSuccess(data: TaxiLoginRespBean?) { + if (null != data && 0 == data.code) { + // 获取验证码成功 + ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) + queryCarStatus() + } else { + if (data != null) { + ToastCharterUtils.showToastShort(data.code.toString()) + } + } + } + + override fun onError() { + if (!NetworkUtils.isConnected(mContext)) { + ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) + } else { + ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) + } + } + + override fun onFail(code: Int, msg: String) { + ToastUtilsOch.showWithCodeMessage(code, msg) + } + }) + } + } + + /** + * 接单状态和登录状态查询 + * 1、初始化查询 + * 2、错误重试 + * 3、错误重试 + * 4、登出后重试 + * 5、变更出车状态查下 + * 6、变更出车状态查下 + * 7、网络状态变更后查询 + * 8、登录页面关闭后查下状态 + */ + fun queryCarStatus() { + mContext?.let { + queryDriverServiceStatus(it, object : OchCommonServiceCallback { + override fun onSuccess(data: DriverStatusQueryRespBean) { + if (null != data && 0 == data.code) { + // 不用登录也可以获得支持的业务模式 + LoginStatusManager.setBusinessType(data.data.businessType) + iTaxiLoginCallback?.searchStatusSuccess() + // 后台已登录 + if (valueOf(data.data.driverStatus) == LoginStatusEnum.Login) { + // 业务不支持 去退出登录 + if (!LoginStatusManager.checkBusiness(data.data.businessType)) { + val mLatitude = getChassisLocationGCJ02().latitude + val mLongitude = getChassisLocationGCJ02().longitude + LoginStatusManager.loginOut(mLatitude, mLongitude) + return + } + } + LoginStatusManager.setOpenOrderType(data.data.servingStatus) + LoginStatusManager.setLoginStatus(data.data.driverStatus) + LoginStatusManager.setLoginInfo(data.data) + d(SceneConstant.M_TAXI + TAG, "登录信息:$data") + loginSuccess(data) + } + } + + override fun onError() { + if (!NetworkUtils.isConnected(mContext)) { + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.network_error_tip)) + } else { + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.request_error_tip)) + } + subscribe = Observable.timer(5, TimeUnit.SECONDS) + .subscribe { aLong: Long? -> queryCarStatus() } + } + + override fun onFail(code: Int, msg: String) { + ToastUtilsOch.showWithCodeMessage(code, msg) + if (code == OchCommonConst.WAIT_TAKEN) { + subscribe = Observable.timer(3, TimeUnit.SECONDS) + .subscribe { aLong: Long? -> queryCarStatus() } + } else { + loginFail(LoginStatusManager.isLogin()) + } + } + }) + } + } + + // 登出 + fun logout(mLatitude: Double, mLongitude: Double) { + val location4Login = TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude) + logout( + mContext!!, location4Login, + object : OchCommonServiceCallback { + override fun onSuccess(data: BaseData) { + if (null != data && 0 == data.code) { + loginFail(false) + queryCarStatus() + } + } + + override fun onError() { + if (!NetworkUtils.isConnected(mContext)) { + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.network_error_tip)) + } else { + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.request_error_tip)) + } + } + + override fun onFail(code: Int, msg: String) { + ToastUtilsOch.showWithCodeMessage(code, msg) + } + }) + } + + fun loginSuccess(data: DriverStatusQueryRespBean?) { + CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginSuccess:${LoginStatusManager.isLogin()}") + if (LoginStatusManager.isLogin()) { + SharedPrefsMgr.getInstance().putString("och_account", data?.data?.phone) + } else { + SharedPrefsMgr.getInstance().putString("och_account", "") + } + + data?.data?.driverStatus?.let { updateLoginLocalStatus(it) } + } + + private fun updateLoginLocalStatus(loginStatus: Int = 0) { + val loginCacheStatus = LoginCacheStatus(loginStatus, DateTimeUtil.getCurrentTimeStamp()) + mContext?.let { + CacheDataManager.instance.putCacheData( + it, BusCacheKey.BUS_LOGIN_STATUS_CACHE, + GsonUtils.toJson(loginCacheStatus)) + } + } + + + fun loginFail(isLogin: Boolean) { + CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginFail:$isLogin") + updateLoginLocalStatus(0) + } + +} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt similarity index 53% rename from OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt index 55e1c742a0..3e5fa4084c 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt @@ -1,38 +1,54 @@ -package com.mogo.och.bus.net.login +package com.mogo.och.biz.login.net import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.commons.debug.DebugConfig -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.commons.storage.SharedPrefsMgr -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.biz.login.bean.DriverStatusQueryRespBean +import com.mogo.och.biz.login.bean.TaxiLoginReqBean +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.biz.login.bean.TaxiLoginRespBean +import com.mogo.och.biz.login.bean.TaxiLoginSmsReqBean +import com.mogo.och.biz.login.bean.TaxiLogoutReqBean +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry +import com.mogo.och.common.module.utils.ProjectUtils -/** - * Created by pangfan on 2021/8/19 - */ object OchCommonServiceManager { private const val TAG = "OchCommonServiceManager" - private val mLoginServiceApi: OchLoginServiceApi = + private val ochLoginServiceSaasEh: OchLoginServiceSaasEhApi by lazy { MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( - OchLoginServiceApi::class.java + OchLoginServiceSaasEhApi::class.java ) + } - private val mLoginSaasServiceApi: OchSAASLoginServiceApi = + private val ochLoginServiceMogo: OchLoginServiceMogoApi by lazy { MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( - OchSAASLoginServiceApi::class.java + OchLoginServiceMogoApi::class.java ) + } + + private var draiverSnCacher = "" + /** + * 获取Bus司机端的sn + * @return + */ + val draiverSn: String + get(){ + val serverToken = CallerTelematicManager.getServerToken() + if (serverToken != draiverSnCacher && serverToken.isNotEmpty()) { + draiverSnCacher = serverToken + } + return draiverSnCacher + } /** * 获取手机验证码 @@ -44,21 +60,22 @@ object OchCommonServiceManager { context: Context, phone: String?, callback: OchCommonServiceCallback? ) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - mLoginSaasServiceApi.getPhoneCode( + if (ProjectUtils.isMogo()) { + ochLoginServiceMogo.getPhoneCode( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, TaxiLoginSmsReqBean(phone) ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode")) + .subscribe(OchCommonSubscribeImpl(context, callback, "sendSms")) }else{ - mLoginServiceApi.getPhoneCode( + ochLoginServiceSaasEh.getPhoneCode( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, TaxiLoginSmsReqBean(phone) ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode")) + .subscribe(OchCommonSubscribeImpl(context, callback, "sendSms")) } + } /** @@ -69,23 +86,23 @@ object OchCommonServiceManager { @JvmStatic fun gotoLoginBycode( context: Context, phone: String?, code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, + location4Login: TaxiLoginReqBean.Location4Login, callback: OchCommonServiceCallback? ) { + CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}"); val sn = SharedPrefsMgr.getInstance().sn - - if (DebugConfig.getProjectFlavor().contains("saas")){ - mLoginSaasServiceApi.gotoLoginBycode4Bus( + if (ProjectUtils.isMogo()) { + ochLoginServiceMogo.gotoLoginBycode( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode")) + ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "login")) }else{ - mLoginServiceApi.gotoLoginBycode4Bus( + ochLoginServiceSaasEh.gotoLoginBycode( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode")) + ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "login")) } } @@ -98,17 +115,24 @@ object OchCommonServiceManager { location4Login: TaxiLogoutReqBean.Location4Login?, callback: OchCommonServiceCallback? ) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - mLoginSaasServiceApi.logout4Bus( + CallerLogger.d(TAG, "logout:登出"); + if (ProjectUtils.isMogo()) { + ochLoginServiceMogo.logout( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, - TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login) + TaxiLogoutReqBean( + SharedPrefsMgr.getInstance().sn, + location4Login + ) ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout")) - }else{ - mLoginServiceApi.logout4Bus( + }else { + ochLoginServiceSaasEh.logout( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, - TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login) + TaxiLogoutReqBean( + SharedPrefsMgr.getInstance().sn, + location4Login + ) ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout")) } } @@ -124,27 +148,28 @@ object OchCommonServiceManager { context: Context, callback: OchCommonServiceCallback? ) { - if (SharedPrefsMgr.getInstance().token.isEmpty()) { - callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") - MoGoAiCloudClient.getInstance().refreshToken() - return + CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态"); + val sn = + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + SharedPrefsMgr.getInstance().sn + } else{ + draiverSn } - if (DebugConfig.getProjectFlavor().contains("saas")){ - mLoginSaasServiceApi.queryDriverServiceStatusAndLoginStatus( + if (ProjectUtils.isMogo()) { + ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn + sn ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) + .subscribe(OchCommonSubscribeImpl(context, callback, "loginStatus")) }else{ - mLoginServiceApi.queryDriverServiceStatusAndLoginStatus( + ochLoginServiceSaasEh.queryDriverServiceStatusAndLoginStatus( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn + sn ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) + .subscribe(OchCommonSubscribeImpl(context, callback, "loginStatus")) } - } } \ No newline at end of file diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchLoginServiceMogoApi.java similarity index 65% rename from OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchLoginServiceMogoApi.java index fed3c8e1bc..e40150878f 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchLoginServiceMogoApi.java @@ -1,11 +1,11 @@ -package com.mogo.och.bus.net.login; +package com.mogo.och.biz.login.net; import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean; +import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean; +import com.mogo.och.biz.login.bean.TaxiLoginReqBean; +import com.mogo.och.biz.login.bean.TaxiLoginRespBean; +import com.mogo.och.biz.login.bean.TaxiLoginSmsReqBean; +import com.mogo.och.biz.login.bean.TaxiLogoutReqBean; import io.reactivex.Observable; import retrofit2.http.Body; @@ -13,7 +13,6 @@ import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.Headers; import retrofit2.http.POST; -import retrofit2.http.Path; import retrofit2.http.Query; /** @@ -21,7 +20,7 @@ import retrofit2.http.Query; *

* 网约车-出租车接口定义 */ -interface OchLoginServiceApi { +interface OchLoginServiceMogoApi { /** * 获取手机验证码 * @@ -41,16 +40,16 @@ interface OchLoginServiceApi { * @return */ @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startOperation") - Observable gotoLoginBycode4Bus(@Header("appId") String appId + @POST("/autopilot-car-hailing/cab/flow/v1/driver/login") + Observable gotoLoginBycode(@Header("appId") String appId , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); /** * 登出接口 */ @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endOperation") - Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket, + @POST("/autopilot-car-hailing/cab/flow/v1/driver/logout") + Observable logout(@Header("appId") String appId, @Header("ticket") String ticket, @Body TaxiLogoutReqBean data); /** @@ -60,7 +59,7 @@ interface OchLoginServiceApi { * @return */ @Headers({"Content-type:application/json;charset=UTF-8"}) - @GET("/autopilot-car-hailing/operation/v1/driver/bus/loginStatus") + @GET("/autopilot-car-hailing/cab/flow/v1/driver/loginStatus") Observable queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId , @Header("ticket") String ticket, @Query("sn") String sn); diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchSAASLoginServiceApi.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchLoginServiceSaasEhApi.java similarity index 64% rename from OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchSAASLoginServiceApi.java rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchLoginServiceSaasEhApi.java index 847d766400..bb94d176a0 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/OchSAASLoginServiceApi.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchLoginServiceSaasEhApi.java @@ -1,11 +1,11 @@ -package com.mogo.och.bus.net.login; +package com.mogo.och.biz.login.net; import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean; +import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean; +import com.mogo.och.biz.login.bean.TaxiLoginReqBean; +import com.mogo.och.biz.login.bean.TaxiLoginRespBean; +import com.mogo.och.biz.login.bean.TaxiLoginSmsReqBean; +import com.mogo.och.biz.login.bean.TaxiLogoutReqBean; import io.reactivex.Observable; import retrofit2.http.Body; @@ -20,14 +20,14 @@ import retrofit2.http.Query; *

* 网约车-出租车接口定义 */ -interface OchSAASLoginServiceApi { +interface OchLoginServiceSaasEhApi { /** * 获取手机验证码 * * @return */ @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-bus-cabin/api/sms/v1/driver/sendSms") + @POST("/och-vehicle/cabin/sendSms") Observable getPhoneCode(@Header("appId") String appId , @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data); @@ -40,16 +40,16 @@ interface OchSAASLoginServiceApi { * @return */ @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-bus-cabin/cab/flow/v1/bus/driver/startOperation") - Observable gotoLoginBycode4Bus(@Header("appId") String appId + @POST("/och-vehicle/cabin/login") + Observable gotoLoginBycode(@Header("appId") String appId , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); /** * 登出接口 */ @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-bus-cabin/cab/flow/v1/bus/driver/endOperation") - Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket, + @POST("/och-vehicle/cabin/logout") + Observable logout(@Header("appId") String appId, @Header("ticket") String ticket, @Body TaxiLogoutReqBean data); /** @@ -59,7 +59,7 @@ interface OchSAASLoginServiceApi { * @return */ @Headers({"Content-type:application/json;charset=UTF-8"}) - @GET("/och-bus-cabin/api/business/v1/loginStatus") + @GET("/och-vehicle/cabin/loginStatus") Observable queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId , @Header("ticket") String ticket, @Query("sn") String sn); diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPassengerPresenter.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPassengerPresenter.kt new file mode 100644 index 0000000000..455fd6180e --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPassengerPresenter.kt @@ -0,0 +1,52 @@ +package com.mogo.och.biz.login.presenter + +import androidx.lifecycle.LifecycleOwner +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.mvp.Presenter +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.biz.login.callback.ITaxiLoginCallback +import com.mogo.och.biz.login.model.LoginModel +import com.mogo.och.biz.login.ui.LoginPassengerFragment +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo + +/** + * @author congtaowang + * @since 2021/1/18 + * + * 描述 + */ +class LoginPassengerPresenter(view: LoginPassengerFragment?) : Presenter(view), ITaxiLoginCallback { + + private val TAG = LoginPassengerPresenter::class.java.simpleName + + init { + initListeners() + CallerLogger.d(TAG, "乘客屏-登录-Init") + } + + private fun initListeners() { + LoginModel.init(AbsMogoApplication.getApp()) + LoginModel.setiTaxiLoginCallback(this) + BizLoopManager.setLoopFunction(TAG, LoopInfo(2,::showStatus)) + } + + override fun onCreate(owner: LifecycleOwner) { + super.onCreate(owner) + CallerLogger.d(TAG, "乘客屏-登录-登陆") + } + + private fun showStatus(){ + mView?.showStatus() + } + + override fun onDestroy(owner: LifecycleOwner) { + super.onDestroy(owner) + BizLoopManager.removeLoopFunction(TAG) + } + + override fun getPhoneCodeSuccess() { + + } + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPresenter.kt similarity index 67% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPresenter.kt index 784d7f3e43..903224173b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPresenter.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.presenter +package com.mogo.och.biz.login.presenter import androidx.lifecycle.LifecycleOwner import com.mogo.commons.AbsMogoApplication @@ -6,10 +6,12 @@ import com.mogo.commons.mvp.Presenter 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.RegexUtils -import com.mogo.och.common.module.R -import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback -import com.mogo.och.common.module.biz.model.OchCommonLoginModel -import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment +import com.mogo.eagle.core.utilcode.util.StringUtils +import com.mogo.och.biz.R +import com.mogo.och.biz.login.callback.ITaxiLoginCallback +import com.mogo.och.biz.login.ui.LoginFragment +import com.mogo.och.biz.login.model.LoginModel +import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -23,22 +25,29 @@ import java.util.concurrent.TimeUnit * * 描述 */ -class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : - Presenter(view), ITaxiLoginCallback { +class LoginPresenter(view: LoginFragment?) : Presenter(view), ITaxiLoginCallback { private var countDownDisposable: Disposable? = null + private val TAG = LoginPresenter::class.java.simpleName + + private var phone:String?=null + private var code:String?=null + init { initListeners() + CallerLogger.d(SceneConstant.M_TAXI + TAG, "网约车-Init") } private fun initListeners() { - OchCommonLoginModel.init(AbsMogoApplication.getApp()) - OchCommonLoginModel.setiTaxiLoginCallback(this) + LoginModel.init(AbsMogoApplication.getApp()) + LoginModel.setiTaxiLoginCallback(this) } + + fun getPhoneCode(phone:String){ - if(!OchCommonLoginModel.hasInit()){ + if(!LoginModel.hasInit()){ initListeners() } if (!RegexUtils.isMobileExact(phone)) { @@ -46,7 +55,7 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : mView?.inputPhoneError() return } - OchCommonLoginModel.getPhoneCode(phone) + LoginModel.getPhoneCode(phone) } override fun onCreate(owner: LifecycleOwner) { @@ -58,7 +67,7 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - OchCommonLoginModel.release() + LoginModel.release() countDownDisposable?.let { if (!it.isDisposed) { it.dispose() @@ -66,10 +75,6 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : } } - companion object { - private val TAG = OchCommonLoginPresenter::class.java.simpleName - } - override fun getPhoneCodeSuccess() { val countDownSeconds = 60L; countDownDisposable = Observable.intervalRange(0, countDownSeconds, 0, 1, TimeUnit.SECONDS) @@ -89,12 +94,8 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : }) } - override fun loginSuccess() { - mView?.loginSuccess() - } - fun gotoLogin(phone: String, code: String) { - if(!OchCommonLoginModel.hasInit()){ + if(!LoginModel.hasInit()){ initListeners() } if (!RegexUtils.isMobileExact(phone)) { @@ -106,7 +107,24 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_code_error) return } + LoginModel.queryCarStatus() mView?.closeSoftInput() - OchCommonLoginModel.gotoLogin(phone,code) + this.phone = phone + this.code = code } + + override fun searchStatusSuccess() { + if (StringUtils.isEmpty(phone) || StringUtils.isEmpty(code)) { + return + } + if(!LoginStatusManager.checkBusiness(LoginStatusManager.getBusInessType().code)){ + return + } + if(!StringUtils.isEmpty(phone)&&!StringUtils.isEmpty(code)) { + LoginModel.gotoLogin(phone!!, code!!) + } + this.phone = null + this.code = null + } + } \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt new file mode 100644 index 0000000000..4b0dfa7535 --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt @@ -0,0 +1,224 @@ +package com.mogo.och.biz.login.ui + +import android.graphics.Rect +import android.os.SystemClock +import android.view.* +import android.view.ViewTreeObserver.OnGlobalLayoutListener +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.ContextCompat +import androidx.core.widget.addTextChangedListener +import com.mogo.commons.mvp.MvpFragment +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.ActivityUtils +import com.mogo.eagle.core.utilcode.util.KeyboardUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.biz.R +import com.mogo.och.biz.login.callback.ILoginViewCallback +import com.mogo.och.biz.login.presenter.LoginPresenter +import com.mogo.och.common.module.biz.login.BusinessEnum +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import com.mogo.och.common.module.utils.RxUtils +import kotlinx.android.synthetic.main.biz_login_view.biz_acbtn_login +import kotlinx.android.synthetic.main.biz_login_view.biz_ace_login_phone_value +import kotlinx.android.synthetic.main.biz_login_view.biz_acet_phone_code_value +import kotlinx.android.synthetic.main.biz_login_view.biz_actv_login_get_code +import kotlinx.android.synthetic.main.biz_login_view.biz_actv_login_show_sn +import kotlinx.android.synthetic.main.biz_login_view.biz_actv_welcome_login_title +import kotlinx.android.synthetic.main.biz_login_view.biz_cl_driver_main +import kotlinx.android.synthetic.main.biz_login_view.bv_switch_business +import kotlinx.android.synthetic.main.biz_login_view.eiv_Info + + +/** + * @author: yangyakun + * @date: 2022/8/15 + */ +class LoginFragment : MvpFragment(), ILoginViewCallback { + + private var biz_cl_driver_main: ConstraintLayout? = null + + private var onlayoutListener: OnGlobalLayoutListener? = object : OnGlobalLayoutListener { + override fun onGlobalLayout() { + try { + biz_cl_driver_main?.let { + val rect = Rect() + it.getWindowVisibleDisplayFrame(rect) + val mainInvisibleHeight = it.rootView.height - rect.bottom + if (mainInvisibleHeight > 100) { + val outLocation = IntArray(2) + biz_acbtn_login.getLocationInWindow(outLocation) + val srollHeight = (outLocation[1] + biz_acbtn_login.height) - rect.bottom + if (srollHeight > 0) { + it.scrollTo(0, srollHeight) + } + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight") + } else { + it.scrollTo(0, 0) + } + } + } catch (e: Exception) { + e.printStackTrace() + } + } + } + + override fun getLayoutId(): Int { + return R.layout.biz_login_view + } + + override fun initViews() { + CallerLogger.d(TAG, "init") + biz_cl_driver_main = mRootView.findViewById(R.id.biz_cl_driver_main) + inputPhoneNormal() + initBg() + initListener() + } + + private fun initBg() { + + } + + private fun initListener() { + CallerLogger.d(TAG, "initListener") + mRootView.isFocusable = true + mRootView.isFocusableInTouchMode = true + mRootView.setOnTouchListener { _, event -> + when (event?.action) { + MotionEvent.ACTION_DOWN -> { + closeSoftInput() + } + } + false + } + biz_acbtn_login.onClick { + val phone = biz_ace_login_phone_value.text.toString() + val code = biz_acet_phone_code_value.text.toString() + mPresenter?.gotoLogin(phone, code) + } + biz_actv_welcome_login_title.setOnClickListener { + continuousClick() + } + biz_actv_login_get_code.onClick { + mPresenter?.getPhoneCode(biz_ace_login_phone_value.text.toString()) + } + + biz_ace_login_phone_value.addTextChangedListener { + it?.let { itEditable -> + if (itEditable.isNotEmpty()) { + inputPhoneNormal() + } + } + } + biz_actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn + biz_actv_login_show_sn.setOnLongClickListener { + bv_switch_business.selectBusniess() + true + } + } + + override fun onDetach() { + super.onDetach() + } + + /** + * 关闭键盘 + */ + fun closeSoftInput() { + mRootView.requestFocus() + KeyboardUtils.hideSoftInput(ActivityUtils.getTopActivity()) + } + + fun setCountDownText(text: String, enable: Boolean) { + if (enable) { + biz_actv_login_get_code.setText(R.string.module_och_taxi_login_get_code) + biz_actv_login_get_code.isEnabled = true + } else { + biz_actv_login_get_code.text = text + biz_actv_login_get_code.isEnabled = false + } + } + + fun inputPhoneError() { + biz_ace_login_phone_value.text?.clear() + biz_ace_login_phone_value.setHint(R.string.module_och_taxi_login_phone_error) + context?.let { + biz_ace_login_phone_value.setHintTextColor( + ContextCompat.getColor( + it, + R.color.taxi_EF262C + ) + ) + biz_ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_error) + } + } + + private fun inputPhoneNormal() { + context?.let { + biz_ace_login_phone_value.setHintTextColor( + ContextCompat.getColor( + it, + R.color.taxi_878890 + ) + ) + biz_ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_normal) + } + } + + override fun createPresenter(): LoginPresenter { + return LoginPresenter(this) + } + + override fun getTagName(): String { + return TAG + } + + companion object { + private const val COUNTS = 4 // 点击次数 + private const val DURATION: Long = 1000 // 规定有效时间 + val TAG = LoginFragment::class.java.simpleName + } + + private var mHits = LongArray(COUNTS) + + private fun continuousClick() { + //每次点击时,数组向前移动一位 + System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1) + //为数组最后一位赋值 + mHits[mHits.size - 1] = SystemClock.uptimeMillis() + if (mHits[0] >= (SystemClock.uptimeMillis() - DURATION)) { + mHits = LongArray(COUNTS) //重新初始化数组 + mPresenter?.gotoLogin("13288888888", "8888") + } + } + + override fun showErrorInfo(errorInfo: String) { + ToastUtils.showLong(errorInfo) + eiv_Info.visibility = View.VISIBLE + eiv_Info.showErrinfo(errorInfo) + } + + override fun checkAllEnv( + reason: String + ) { + // 司机屏不用处理 只处理 后台返回的业务模型就行 + } + + override fun onResume() { + biz_cl_driver_main?.viewTreeObserver?.addOnGlobalLayoutListener(onlayoutListener) + super.onResume() + CallerLogger.d(TAG, "onResume") + } + + override fun onPause() { + biz_cl_driver_main?.viewTreeObserver?.removeOnGlobalLayoutListener(onlayoutListener) + super.onPause() + CallerLogger.d(TAG, "onPause") + } +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt new file mode 100644 index 0000000000..4e6bf92d3f --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt @@ -0,0 +1,128 @@ +package com.mogo.och.biz.login.ui + +import android.view.View +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.commons.mvp.MvpFragment +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.biz.BuildConfig +import com.mogo.och.biz.R +import com.mogo.och.biz.login.callback.ILoginViewCallback +import com.mogo.och.biz.login.presenter.LoginPassengerPresenter +import com.mogo.och.biz.login.ui.debugview.BusinessView +import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket +import com.mogo.och.common.module.utils.FlavorUtils +import kotlinx.android.synthetic.main.biz_login_view.eiv_Info + + +/** + * @author: yangyakun + * @date: 2022/8/15 + */ +class LoginPassengerFragment : MvpFragment(), + ILoginViewCallback { + + private var biz_cl_passenger_main: ConstraintLayout?=null + private var biz_actv_login_show_sn: AppCompatTextView?=null + private var bv_switch_business: BusinessView?=null + private var actv_app_version: AppCompatTextView?=null + private var actv_connect_status: AppCompatTextView?=null + + private val statusList = mutableListOf() + + override fun getLayoutId(): Int { + if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode)) + ) { + return R.layout.biz_login_passenger_view_1920x1080 + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode)) + ) { + return R.layout.biz_login_passenger_view_1920x1080 + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode)) + ) { + return R.layout.biz_login_passenger_view_1080x1920 + } else { + return R.layout.biz_login_passenger_view_2560x1600 + } + + } + + override fun initViews() { + + biz_cl_passenger_main = findViewById(R.id.biz_cl_passenger_main) + biz_actv_login_show_sn= findViewById(R.id.biz_actv_login_show_sn) + bv_switch_business= findViewById(R.id.bv_switch_business) + actv_app_version= findViewById(R.id.actv_app_version) + actv_connect_status= findViewById(R.id.actv_connect_status) + + actv_app_version?.text = FlavorUtils.getInfo() + + actv_app_version?.setOnLongClickListener { + if(BuildConfig.DEBUG){ + bv_switch_business?.selectBusniess() + } + true + } + + CallerLogger.d(TAG, "init") + } + + override fun createPresenter(): LoginPassengerPresenter { + return LoginPassengerPresenter(this) + } + + override fun getTagName(): String { + return TAG + } + + companion object { + + val TAG = LoginPassengerFragment::class.java.simpleName + } + + override fun showErrorInfo(errorInfo: String) { + + } + + override fun checkAllEnv( + reason:String + ) { + eiv_Info.visibility = View.VISIBLE + eiv_Info.showErrinfo(reason) + } + + override fun updateStatus(status: String) { + statusList.add(status) + } + + override fun onResume() { + super.onResume() + CallerLogger.d(TAG, "onResume") + if (CallerTelematicManager.getClientConnStatus()) { + updateStatus("连接成功 司机SN:${LoginLanPassengerSocket.driverSn}") + }else{ + updateStatus("连接司机屏中") + } + } + + override fun onPause() { + super.onPause() + CallerLogger.d(TAG, "onPause") + } + + fun showStatus() { + if (statusList.isNotEmpty()) { + val removeFirst = statusList.removeFirst() + UiThreadHandler.post({ + actv_connect_status?.text = "当前状态:${removeFirst}" + }, UiThreadHandler.MODE.QUEUE) + } + + } +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt new file mode 100644 index 0000000000..8041973b4c --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt @@ -0,0 +1,129 @@ +package com.mogo.och.biz.login.ui.debugview + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.och.biz.R +import com.mogo.och.common.module.biz.login.BusinessEnum +import com.mogo.och.common.module.biz.login.LoginStatusManager +import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_bus +import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_charter +import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_shuttle +import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_taxi + + +class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback { + + private val TAG = "ItineraryView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) + + private var viewModel: BusinessViewModel? = null + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.biz_login_business_view, this, true) + } + + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(BusinessViewModel::class.java) + } + + viewModel?.setDistanceCallback(this) + + actv_business_shuttle.onClick { swtichBusiness(BusinessEnum.Shuttle) } + actv_business_bus.onClick { swtichBusiness(BusinessEnum.Bus) } + actv_business_taxi.onClick { swtichBusiness(BusinessEnum.Taxi) } + actv_business_charter.onClick { swtichBusiness(BusinessEnum.Charter) } + } + + private fun swtichBusiness(businessEnum: BusinessEnum){ + LoginStatusManager.invokeLBusinessTypeChangeDebug(businessEnum) + visibility = GONE + } + + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if(isVisible){ + + }else{ + + } + } + + fun selectBusniess(){ + if(FunctionBuildConfig.supportBusiness.size==1){ + FunctionBuildConfig.supportBusiness.forEach { + when (it) { + "shuttle" -> { + swtichBusiness(BusinessEnum.Shuttle) + } + + "bus" -> { + swtichBusiness(BusinessEnum.Bus) + } + + "taxi" -> { + swtichBusiness(BusinessEnum.Taxi) + } + + "charter" -> { + swtichBusiness(BusinessEnum.Charter) + } + + else -> {} + } + } + }else { + visibility = VISIBLE + actv_business_shuttle.visibility = GONE + actv_business_bus.visibility = GONE + actv_business_taxi.visibility = GONE + actv_business_charter.visibility = GONE + FunctionBuildConfig.supportBusiness.forEach { + when (it) { + "shuttle" -> { + actv_business_shuttle.visibility = VISIBLE + } + + "bus" -> { + actv_business_bus.visibility = VISIBLE + } + + "taxi" -> { + actv_business_taxi.visibility = VISIBLE + } + + "charter" -> { + actv_business_charter.visibility = VISIBLE + } + + else -> {} + } + } + } + } + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessViewModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessViewModel.kt new file mode 100644 index 0000000000..abaae395da --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessViewModel.kt @@ -0,0 +1,42 @@ +package com.mogo.och.biz.login.ui.debugview + +import androidx.lifecycle.ViewModel +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.och.biz.R +import com.mogo.och.common.module.utils.RxUtils +import io.reactivex.Observable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.TimeUnit + +class BusinessViewModel : ViewModel() { + + private val TAG = BusinessViewModel::class.java.simpleName + + private var viewCallback: IErrorInfoViewCallback? = null + + + + init { + + } + + fun setDistanceCallback(viewCallback: IErrorInfoViewCallback) { + this.viewCallback = viewCallback + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + + } + + interface IErrorInfoViewCallback { + + } + + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt new file mode 100644 index 0000000000..edb87f884e --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt @@ -0,0 +1,122 @@ +package com.mogo.och.biz.login.ui.errorview + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.biz.R +import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket +import com.mogo.och.common.module.utils.FlavorUtils + + +class ErrorInfoView : ConstraintLayout, ErrorInfoViewModel.IErrorInfoViewCallback { + + private val TAG = "ItineraryView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + constructor( + context: Context, + attributeSet: AttributeSet, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attributeSet, defStyleAttr, defStyleRes) + + private var actv_see: AppCompatTextView? = null + private var actv_countdown: AppCompatTextView? = null + private var actv_error_body: AppCompatTextView? = null + private var actv_error_head: AppCompatTextView? = null + + private var viewModel: ErrorInfoViewModel? = null + private fun initView() { + + if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode)) + ) { + LayoutInflater.from(context) + .inflate(R.layout.biz_login_errorinfo_view_1920x1080, this, true) + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode)) + ) { + LayoutInflater.from(context) + .inflate(R.layout.biz_login_errorinfo_view_1080x1920, this, true) + } else { + LayoutInflater.from(context) + .inflate(R.layout.biz_login_errorinfo_view_2560x1600, this, true) + } + actv_see = findViewById(R.id.actv_see) + actv_countdown = findViewById(R.id.actv_countdown) + actv_error_body = findViewById(R.id.actv_error_body) + actv_error_head = findViewById(R.id.actv_error_head) + + actv_see?.onClick { + viewModel?.cancleCountDown() + actv_countdown?.text = "10s" + visibility = GONE + } + + actv_error_body?.text = FlavorUtils.getInfo() + + } + + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(ErrorInfoViewModel::class.java) + } + + viewModel?.setDistanceCallback(this) + } + + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if (isVisible) { + viewModel?.showCountDown() + } else { + + } + } + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun setCountDownText(countDown: String, isEnd: Boolean) { + if (isEnd) { + visibility = GONE + } else { + actv_countdown?.text = countDown + } + } + + fun showErrinfo(errorInfo: String) { + actv_error_head?.text = errorInfo + if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + actv_error_body?.text = FlavorUtils.getInfo() + }else if(AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + actv_error_body?.text = "${FlavorUtils.getInfo()} 司机SN:${LoginLanPassengerSocket.driverSn}" + } + } + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt new file mode 100644 index 0000000000..421cef228e --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt @@ -0,0 +1,76 @@ +package com.mogo.och.biz.login.ui.errorview + +import androidx.lifecycle.ViewModel +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.och.biz.R +import com.mogo.och.biz.login.ui.debugview.BusinessViewModel +import com.mogo.och.common.module.utils.RxUtils +import io.reactivex.Observable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.TimeUnit + +class ErrorInfoViewModel : ViewModel() { + + private val TAG = BusinessViewModel::class.java.simpleName + + private var viewCallback: IErrorInfoViewCallback? = null + + private var countDownDisposable: Disposable? = null + + + init { + + } + + fun setDistanceCallback(viewCallback: IErrorInfoViewCallback) { + this.viewCallback = viewCallback + } + + fun showCountDown(){ + val countDownSeconds = 10L + if(RxUtils.isNotDisposed(countDownDisposable)){ + return + } + RxUtils.disposeSubscribe(countDownDisposable) + countDownDisposable = Observable.intervalRange(0, countDownSeconds, 0, 1, TimeUnit.SECONDS) + .map { aLong -> countDownSeconds - aLong } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ + viewCallback?.setCountDownText("${it}s",false) + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时:$it") + }, { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onError:${it}") + it.printStackTrace() + RxUtils.createSubscribe(1_000) { + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + } + }, { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onComplete") + RxUtils.createSubscribe(1_000) { + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + } + }) + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + + } + + fun cancleCountDown() { + RxUtils.disposeSubscribe(countDownDisposable) + } + + interface IErrorInfoViewCallback { + fun setCountDownText(s: String, b: Boolean) + + } + + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg.webp b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg.webp new file mode 100644 index 0000000000..4265e496e2 Binary files /dev/null and b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg.webp differ diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_1080x1920.png b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_1080x1920.png new file mode 100644 index 0000000000..fc4ad73d11 Binary files /dev/null and b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_1080x1920.png differ diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_1920x1080.png b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_1920x1080.png new file mode 100644 index 0000000000..75df2ac20e Binary files /dev/null and b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_1920x1080.png differ diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_2560x1600.png b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_2560x1600.png new file mode 100644 index 0000000000..c535403510 Binary files /dev/null and b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_passenger_2560x1600.png differ diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_pop_bg.png b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_pop_bg.png new file mode 100755 index 0000000000..a540ce3cc8 Binary files /dev/null and b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_pop_bg.png differ diff --git a/OCH/common/biz/src/main/res/drawable/biz_login_error_info.xml b/OCH/common/biz/src/main/res/drawable/biz_login_error_info.xml new file mode 100644 index 0000000000..252c42a791 --- /dev/null +++ b/OCH/common/biz/src/main/res/drawable/biz_login_error_info.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/drawable/biz_login_error_info_1080x1920.xml b/OCH/common/biz/src/main/res/drawable/biz_login_error_info_1080x1920.xml new file mode 100644 index 0000000000..47c8dfedb1 --- /dev/null +++ b/OCH/common/biz/src/main/res/drawable/biz_login_error_info_1080x1920.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/drawable/biz_login_error_see.xml b/OCH/common/biz/src/main/res/drawable/biz_login_error_see.xml new file mode 100644 index 0000000000..6725501574 --- /dev/null +++ b/OCH/common/biz/src/main/res/drawable/biz_login_error_see.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_business_view.xml b/OCH/common/biz/src/main/res/layout/biz_login_business_view.xml new file mode 100644 index 0000000000..48ebd3c80b --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_business_view.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_1080x1920.xml b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_1080x1920.xml new file mode 100644 index 0000000000..d1e7bfdaae --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_1080x1920.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_1920x1080.xml b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_1920x1080.xml new file mode 100644 index 0000000000..e03a97c576 --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_1920x1080.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_2560x1600.xml b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_2560x1600.xml new file mode 100644 index 0000000000..c74b150b24 --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view_2560x1600.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1080x1920.xml b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1080x1920.xml new file mode 100644 index 0000000000..52a9ffc56e --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1080x1920.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1920x1080.xml b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1920x1080.xml new file mode 100644 index 0000000000..f4b7455815 --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1920x1080.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_2560x1600.xml b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_2560x1600.xml new file mode 100644 index 0000000000..029ab548fe --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_2560x1600.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/layout/taxi_login_view.xml b/OCH/common/biz/src/main/res/layout/biz_login_view.xml similarity index 68% rename from OCH/common/common/src/main/res/layout/taxi_login_view.xml rename to OCH/common/biz/src/main/res/layout/biz_login_view.xml index 89577408f8..2822e391fe 100644 --- a/OCH/common/common/src/main/res/layout/taxi_login_view.xml +++ b/OCH/common/biz/src/main/res/layout/biz_login_view.xml @@ -1,23 +1,34 @@ + + + app:layout_constraintStart_toStartOf="@+id/biz_actv_welcome_login_title" + app:layout_constraintTop_toBottomOf="@+id/biz_actv_welcome_login_title" /> + app:layout_constraintStart_toStartOf="@+id/biz_ace_login_phone_value" + app:layout_constraintTop_toBottomOf="@+id/biz_ace_login_phone_value" /> + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/values/colors.xml b/OCH/common/biz/src/main/res/values/colors.xml new file mode 100644 index 0000000000..0b4e8be82d --- /dev/null +++ b/OCH/common/biz/src/main/res/values/colors.xml @@ -0,0 +1,8 @@ + + + + #5F6582 + #72A7FF + #A0B3DA + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/values/strings.xml b/OCH/common/biz/src/main/res/values/strings.xml new file mode 100644 index 0000000000..56bbdcd277 --- /dev/null +++ b/OCH/common/biz/src/main/res/values/strings.xml @@ -0,0 +1,22 @@ + + + + 欢迎您登录 + 登录 + 获取验证码 + 请输入验证码 + 获取验证码成功 + 登录成功 + 请输入正确的手机号 + 请输入正确的验证码 + 请输入手机号 + 请输入手机号 + + 网络异常,请稍后重试 + 请求出现异常,请稍后重试 + + 取消 + 扫描二维码完成车辆绑定 + + 我知道了 + \ No newline at end of file diff --git a/OCH/common/common/build.gradle b/OCH/common/common/build.gradle index 3562cd026e..1279256a45 100644 --- a/OCH/common/common/build.gradle +++ b/OCH/common/common/build.gradle @@ -45,6 +45,7 @@ android { res.srcDirs = [ 'src/main/res', 'src/main/res/xiaozhi', + 'src/main/res/autopilot', ] } } diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index 953c9bb585..3099f36ee5 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -28,7 +28,7 @@ import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.debug.location.MogoLocationExit -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.view.DebugFloatWindow import com.zhjt.mogo.adas.data.bean.AutopilotStatistics diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt deleted file mode 100644 index 81588d4e85..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ /dev/null @@ -1,99 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg -/** - * @author: wangmingjun - * @date: 2023/3/27 - */ - -object BusCacheKey{ - const val BUS_LINE_CACHE = "bus_line_cache" - const val BUS_LOGIN_STATUS_CACHE = "bus_login_status_cache" -} - -open class BaseDPMsg(open var type: Int){// 0: 常规 1:确认路线/站点 2:开/关车门 3:结束订单 - companion object{ - const val TAG = "BaseDPMsg" - } -} - - -data class LoginCacheStatus( - var loginStatus: Int, - var updateTime: Long - ): BaseDPMsg(DPMsgType.TYPE_LOGIN_STATUS.type) - -data class ChangeDestMsg( - var orderNo: String,// 订单号 - var lineId: Int, //线路id - var lineName: String = "", //线路名称 - var startSiteId: Int= 0, //当前站点 - var startSiteName: String = "", - var destSiteId: Int= 0, //目的地 - var destSiteName: String = "", - var isConfirmed: Boolean = false, //司机端是否同意 - var arriveStatus:Int?, //1:未到达 2:到达 - var writeVersion:Long?, //版本标记 - var lineSiteList: MutableList? = null -): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) - -data class LineSite( - val lineId: Long?,//线路Id - val lineName: String?,//线路名称 - val siteId: Long?,//线路Id - val siteName: String?,//站点名称 - val Wgs84Lon: Double?,//高精坐标 - val Wgs84Lat: Double?,//高精坐标 - val GcjLon: Double?,//高德坐标 - val GcjLat: Double?,//高德坐标 - val seq: Double?, - val type: Int?, -) - -data class ArriveDestMsg( - var orderNo: String, //订单id - var lineId: Int, //线路id - var lineName: String = "", //线路名称 - var startSiteId: Int= 0, //当前站点 - var startSiteName: String = "", - var destSiteId: Int= 0, //目的地 - var destSiteName: String = "", - var arriveStatus:Int?, //1:未到达 2:到达 - var writtenVersion:Long?, //版本标记 -): BaseDPMsg(DPMsgType.TYPE_ARRIVEDEST_STATUS.type) - -data class EndOrderMsg( - var orderNo: String, //订单id -): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED_BY_M1_STATUS.type) - -data class DPCommonOperationMsg( - var msg: String -): BaseDPMsg(DPMsgType.TYPE_COMMON.type) - -data class DPOperateDoorMsg( - var open: Boolean = false // true: 开门, false: 关门 -): BaseDPMsg(DPMsgType.TYPE_OPEN_CLOSE_DOOR.type) - -data class DPOrderClosedMsg( - var closed: Boolean = true // true: 结束 -): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) - -data class AppConnectMsg( - var isViewShow: Boolean = true, var isPlay: Boolean = false, var msg: String,var boxType:Int=-1 -) : BaseDPMsg(DPMsgType.TYPE_COMMON.type) - -data class TaskDetailsMsg( - var msg: String?, -): BaseDPMsg(DPMsgType.TYPE_TASK_DETAILS.type) - -data class WriteOffMsg( - val isScuccess: Boolean?, - val phone: String?, - val ticketSize: Int?, - val ticketName:String?, - val failedReason:String?, - val orderNo: String? -): BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO.type) - -data class WriteOffDevicesMsg( - val isConnectScanner: Boolean?, - val reason:String? -): BaseDPMsg(DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.type) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/DriverStatusQueryRespBean.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/DriverStatusQueryRespBean.java deleted file mode 100644 index 0b8692ae59..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/bean/DriverStatusQueryRespBean.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.mogo.och.common.module.biz.bean; - -import com.mogo.eagle.core.data.BaseData; - -/** - * Created by pangfan on 2021/8/19 - * - * 状态查询返回数据结构 - */ -public class DriverStatusQueryRespBean extends BaseData { - public Result data; - - public static class Result { - public int servingStatus; //1接单,1暂停接单 - public int driverStatus; //1登录,0登出 - public String orderNo; - public int purpose; // 1 运营, 2 测试, 3演示 - - public String sn; - public String plateNumber;//车牌号 - public String phone;//手机号 - public Integer lineId;//线路id - public Integer taskId;//任务id - } -} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ILoginViewCallback.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ILoginViewCallback.kt deleted file mode 100644 index 033e900e77..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/callback/ILoginViewCallback.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.och.common.module.biz.callback - -interface ILoginViewCallback { - /** - * 展示登录页面 - */ - fun showLoginDialogFragment() - - /** - * 隐藏登录页面 - */ - fun hideLoginDialogFragment() -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt deleted file mode 100644 index 8f339cebde..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.mogo.och.common.module.biz.constant - -import java.util.concurrent.ConcurrentHashMap - -object LoginStatusManager { - /** - * 登录状态 - */ - private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None - private val mStatusChangeListener = ConcurrentHashMap() - - @JvmStatic - fun setLoginStatus(status: Int) { - when (status) { - 0 -> { - setLoginStatus(TaxiLoginStatusEnum.Logout) - } - 1 -> { - setLoginStatus(TaxiLoginStatusEnum.Login) - } - else -> { - setLoginStatus(TaxiLoginStatusEnum.None) - } - } - } - @JvmStatic - fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) { - if(loginStatus!=this.loginStatus){ - this.loginStatus = loginStatus - for (callback in mStatusChangeListener.values) { - callback.onStatusChange(loginStatus) - } - } - } - @JvmStatic - fun getLoginStatus(): TaxiLoginStatusEnum { - return loginStatus - } - @JvmStatic - fun isLogin():Boolean { - if(loginStatus== TaxiLoginStatusEnum.Login){ - return true - } - return false - } - - fun setControllerStatusCallback(tag: String, callback: ILoginStatusChangeListener?) { - if (tag.isBlank()) return - if (callback == null) { - mStatusChangeListener.remove(tag) - return - } - mStatusChangeListener[tag] = callback - } - - interface ILoginStatusChangeListener{ - fun onStatusChange(currentStatus:TaxiLoginStatusEnum) - } -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt new file mode 100644 index 0000000000..7fa2623b27 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt @@ -0,0 +1,101 @@ +package com.mogo.och.common.module.biz.lansocket + +import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.common.module.BuildConfig +import com.mogo.och.common.module.biz.login.ILoginCallback +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck +import com.mogo.och.common.module.utils.FlavorUtils + +object LoginLanDriverSocket : ILoginCallback { + private const val TAG = "LoginLanSocket" + + // 客户端注册 + private val registerListener = object : ILanMessageListener { + override fun target(): Class { + return BaseDPMsg::class.java + } + + override fun onMsgReceived(obj: Array) { + println("-------${obj}") + if(LoginStatusManager.isLogin()) { + FlavorUtils.getEnvCheck() + val msg = + ChangeBusinessType(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!) + LanSocketManager.sendMsgToClient(msg) + }else{ + FlavorUtils.getEnvCheck() + val msg = + ChangeBusinessType(FlavorUtils.vehicleType!!, BusinessType.none, FlavorUtils.projectType!!, FlavorUtils.envType!!) + LanSocketManager.sendMsgToClient(msg) + } + } + + }; + + fun load() { + LanSocketManager.load() + } + + init { + LoginStatusManager.addListener(TAG, this) + LanSocketManager.registerSocketMessageListener( + DPMsgType.TYPE_CLIENT_REGISTER.type, + TAG, + registerListener + ) + } + + // 司机端发送业务模式更改和环境校验 + override fun onStatusChange(currentStatus: LoginStatusEnum?) { + FlavorUtils.getEnvCheck() + if (FlavorUtils.vehicleType != null && FlavorUtils.projectType != null && FlavorUtils.envType != null) { + when (currentStatus) { + LoginStatusEnum.Login -> { + val msg = + ChangeBusinessType( + FlavorUtils.vehicleType!!, + FlavorUtils.businessType!!, + FlavorUtils.projectType!!, + FlavorUtils.envType!! + ) + LanSocketManager.sendMsgToClient(msg) + if (BuildConfig.DEBUG) { + BizLoopManager.setLoopFunction(TAG, LoopInfo(60*1, ::loopCheck)) + }else{ + BizLoopManager.setLoopFunction(TAG, LoopInfo(60*10, ::loopCheck)) + } + } + else -> { + BizLoopManager.removeLoopFunction(TAG) + val msg = + ChangeBusinessType( + FlavorUtils.vehicleType!!, + BusinessType.none, + FlavorUtils.projectType!!, + FlavorUtils.envType!! + ) + LanSocketManager.sendMsgToClient(msg) + } + } + } + } + + private fun loopCheck() { + FlavorUtils.getEnvCheck() + val msg = EnvCheck(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!) + LanSocketManager.sendMsgToClient(msg) + } + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt new file mode 100644 index 0000000000..f126372eea --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt @@ -0,0 +1,167 @@ +package com.mogo.och.common.module.biz.lansocket + +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.Logger +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.biz.login.BusinessEnum +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import java.lang.StringBuilder +import kotlin.properties.Delegates + +object LoginLanPassengerSocket : IReceivedMsgListener { + private const val TAG = "LoginLanSocket" + + var driverSn: String by Delegates.observable("") { _, oldV, newV -> + if (oldV != newV) { + // 司机屏发生变化 + val msg = BaseDPMsg(type = DPMsgType.TYPE_CLIENT_REGISTER.type) + LanSocketManager.sendMsgToServer(msg) + LoginStatusManager.changeStatus("连接成功 司机SN:${newV}") + if(newV.isNotEmpty()){ + OchChainLogManager.writeChainLogNetLanSocketConnect("局域网socket链接状态","已连接 sn${newV}") + } + } + } + + var isConnected:Boolean by Delegates.observable(false) { _, oldV, newV -> + if (oldV != newV) { + if(newV){// 已连接 + if(driverSn.isEmpty()){ + LoginStatusManager.changeStatus("连接成功 未收到司机屏sn") + }else{ + LoginStatusManager.changeStatus("连接成功 司机SN:${driverSn}") + } + }else{// 未连接 + if(driverSn.isEmpty()){ + LoginStatusManager.changeStatus("当前状态:连接司机屏中") + }else{ + LoginStatusManager.changeStatus("连接断开 司机SN:${driverSn}") + } + } + } + } + + // 环境监测 + private val checkListener = object : ILanMessageListener { + override fun target(): Class { + return EnvCheck::class.java + } + + override fun onMsgReceived(obj: Array) { + if (obj.isNotEmpty()) { + val first = obj.first() as EnvCheck + val checkEnv = checkEnv(first.projectType, first.envType, first.vehicleType, first.businessType) + if(checkEnv){ + + }else{ + LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) + } + } + } + + } + + private fun checkEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ): Boolean { + return LoginStatusManager.checkAllEnv(projectType, envType, vehicleType, businessType) + } + + // 环境监测+业务展示和跳转 + private val changeBusinessType = object : ILanMessageListener { + override fun target(): Class { + return ChangeBusinessType::class.java + } + + override fun onMsgReceived(obj: Array) { + if (obj.isNotEmpty()) { + val first = obj.first() as ChangeBusinessType + val checkEnv = checkEnv( + first.projectType, + first.envType, + first.vehicleType, + first.businessType + ) + if(checkEnv){ + val status = StringBuilder() + status.append("切换业务模式<当前:${LoginStatusManager.getBusInessType().name}") + when (first.businessType) { + BusinessType.none -> { + LoginStatusManager.setBusinessType(BusinessEnum.None.code) + return LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) + } + BusinessType.bus -> LoginStatusManager.setBusinessType(BusinessEnum.Bus.code) + BusinessType.shuttle -> LoginStatusManager.setBusinessType(BusinessEnum.Shuttle.code) + BusinessType.charter -> LoginStatusManager.setBusinessType(BusinessEnum.Charter.code) + BusinessType.taxi -> LoginStatusManager.setBusinessType(BusinessEnum.Taxi.code) + BusinessType.taxiunmanned ->LoginStatusManager.setBusinessType(BusinessEnum.Taxi.code) + } + status.append(", 切换后:${LoginStatusManager.getBusInessType().name}>") + LoginStatusManager.changeStatus(status.toString()) + UiThreadHandler.postDelayed({ + LoginStatusManager.setLoginStatus(LoginStatusEnum.Login) + },2000) + + } + } + } + + }; + + fun load() { + LanSocketManager.load() + } + + init { + //监听司机端消息 + CallerTelematicListenerManager.addListener(TAG, this) + BizLoopManager.setLoopFunction(TAG, LoopInfo(3, ::showConnectStatusWithDriver)) + // 乘客屏 + LanSocketManager.registerSocketMessageListener( + DPMsgType.TYPE_ENV_CHECK.type, + TAG, + checkListener + ) + LanSocketManager.registerSocketMessageListener( + DPMsgType.TYPE_CHANGE_BUSINESS_TYPE.type, + TAG, + changeBusinessType + ) + } + + override fun onReceivedMsg(type: Int, byteArray: ByteArray) { + + } + + private fun showConnectStatusWithDriver(){ + CallerLogger.d(TAG,"司机屏连接状态:${CallerTelematicManager.getClientConnStatus()}") + isConnected = CallerTelematicManager.getClientConnStatus() + } + + override fun onReceivedServerSn(sn: String?) { + Logger.d(TAG, "司机屏sn:$sn") + driverSn = sn ?: "" + } + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/TaxiLoginStatusEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt similarity index 63% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/TaxiLoginStatusEnum.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt index 451196d777..420c9bbc9c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/constant/TaxiLoginStatusEnum.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.constant +package com.mogo.och.common.module.biz.login /** * Created on 2022/08/19 @@ -8,14 +8,16 @@ package com.mogo.och.common.module.biz.constant * 10 已登录, * 20 已登出, */ -enum class TaxiLoginStatusEnum(val code: Int) { +enum class BusinessEnum(val code: Int) { None( 0 ), - Login( 10), - Logout( 20),; + Taxi( 9), + Bus( 10), + Shuttle( 11), + Charter( 13),; companion object { @JvmStatic - fun valueOf(code: Int): TaxiLoginStatusEnum? { + fun valueOf(code: Int): BusinessEnum { for (value in values()) { if (value.code == code) { return value diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java new file mode 100644 index 0000000000..85e78b76e0 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java @@ -0,0 +1,13 @@ +package com.mogo.och.common.module.biz.login; + +public interface ILoginCallback { + + default void onStatusChange(LoginStatusEnum currentStatus){} + + default void onBusinessChange(BusinessEnum businessEnum){} + + default void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum){} + + default void onBusinessChangeDebug(BusinessEnum businessEnum){} + +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java new file mode 100644 index 0000000000..64841b8c13 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java @@ -0,0 +1,94 @@ +package com.mogo.och.common.module.biz.login; + +public class LoginInfo { + public int driverStatus; //1登录,0登出 + public int servingStatus;//1接单中,0暂停接单 + public int businessType; //9: taxi. 10: bus公交 11:接驳 13:包车 + public String orderNo; + public int purpose; // 1 运营, 2 测试, 3演示 + public String sn; + public String plateNumber;//车牌号 + public String phone;//手机号 + public Integer lineId;//线路id + public Integer taskId;//任务id + + public int getDriverStatus() { + return driverStatus; + } + + public void setDriverStatus(int driverStatus) { + this.driverStatus = driverStatus; + } + + public String getOrderNo() { + return orderNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public int getPurpose() { + return purpose; + } + + public void setPurpose(int purpose) { + this.purpose = purpose; + } + + public String getSn() { + return sn; + } + + public void setSn(String sn) { + this.sn = sn; + } + + public String getPlateNumber() { + return plateNumber; + } + + public void setPlateNumber(String plateNumber) { + this.plateNumber = plateNumber; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Integer getLineId() { + return lineId; + } + + public void setLineId(Integer lineId) { + this.lineId = lineId; + } + + public Integer getTaskId() { + return taskId; + } + + public void setTaskId(Integer taskId) { + this.taskId = taskId; + } + + @Override + public String toString() { + return "LoginInfo{" + + "driverStatus=" + driverStatus + + ", servingStatus=" + servingStatus + + ", businessType=" + businessType + + ", orderNo='" + orderNo + '\'' + + ", purpose=" + purpose + + ", sn='" + sn + '\'' + + ", plateNumber='" + plateNumber + '\'' + + ", phone='" + phone + '\'' + + ", lineId=" + lineId + + ", taskId=" + taskId + + '}'; + } +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt new file mode 100644 index 0000000000..d7e53c0832 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt @@ -0,0 +1,45 @@ +package com.mogo.och.common.module.biz.login + +import com.mogo.och.common.module.biz.provider.CommonService +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType + +interface LoginService :CommonService { + fun setLoginInfo(loginInfo: LoginInfo) + fun getLoginInfo():LoginInfo? + + fun getPurpose():RoleEnum + + fun isLogin():Boolean + fun getLoginStatus(): LoginStatusEnum + fun setLoginStatus(loginStatus: LoginStatusEnum) + fun setLoginStatus(status: Int) + fun setBusinessType(type: Int) + + fun getBusinessType():BusinessEnum + + fun queryLoginStatusByNet() + + /** + * 登出 + */ + fun loginOut(mLatitude:Double,mLongitude:Double) + fun checkBusiness(businessType: Int): Boolean + fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ): Boolean + + fun changeStatus(currentStatus: String) + + fun setOpenOrderStatusType(type: Int) + + fun getOpenOrderStatusType(): OpenOrderStatusEnum + + fun isOpenOrderType(): Boolean + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusEnum.kt new file mode 100644 index 0000000000..7ec1da16f6 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusEnum.kt @@ -0,0 +1,27 @@ +package com.mogo.och.common.module.biz.login + +/** + * Created on 2022/08/19 + * + * + * 0 初始状态, + * 10 已登录, + * 20 已登出, + */ +enum class LoginStatusEnum(val code: Int) { + None( -1 ), + Login( 1), + Logout( 0),; + + companion object { + @JvmStatic + fun valueOf(code: Int): LoginStatusEnum? { + for (value in values()) { + if (value.code == code) { + return value + } + } + return None + } + } +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt new file mode 100644 index 0000000000..9c3e8cf55c --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt @@ -0,0 +1,187 @@ +package com.mogo.och.common.module.biz.login + + +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import com.mogo.och.common.module.utils.CallerBase +import io.reactivex.schedulers.Schedulers + +object LoginStatusManager : CallerBase() { + + private var loginService: LoginService? = + ARouter.getInstance().build(OchCommonConst.BIZ_LOGIN).navigation() as LoginService + + private var TAG = "LoginStatusManager" + private var TAGLoopStatus = "LoginStatusManagerLoop" + + @JvmStatic + fun getFragment():Fragment { + loginService?.let { + return it.getFragment() + } + throw ClassNotFoundException("没有找到登录Fragment"); + } + @JvmStatic + fun resetFragment(){ + loginService?.let { + return it.resetFragment() + } + } + + @JvmStatic + fun loginOut(mLatitude: Double, mLongitude: Double) { + loginService?.loginOut(mLatitude, mLongitude) + } + + @JvmStatic + fun queryLoginStatusByNet() { + loginService?.queryLoginStatusByNet() + } + @JvmStatic + fun getPurpose(): RoleEnum { + loginService?.let { + return it.getPurpose() + } + return RoleEnum.None + } + + @JvmStatic + fun setLoginInfo(loginInfo: LoginInfo) { + loginService?.setLoginInfo(loginInfo) + } + + fun getLoginInfo(): LoginInfo? { + return loginService?.getLoginInfo() + } + + @JvmStatic + fun setLoginStatus(status: Int) { + loginService?.setLoginStatus(status) + } + @JvmStatic + fun setBusinessType(type: Int) { + loginService?.setBusinessType(type) + } + + fun getBusInessType():BusinessEnum{ + loginService?.let { + return it.getBusinessType() + } + return BusinessEnum.None + } + + @JvmStatic + fun setOpenOrderType(type: Int) { + loginService?.setOpenOrderStatusType(type) + } + + @JvmStatic + fun getOpenOrderType():OpenOrderStatusEnum{ + loginService?.let { + return it.getOpenOrderStatusType() + } + return OpenOrderStatusEnum.None + } + @JvmStatic + fun isOpenOrderType():Boolean{ + loginService?.let { + return it.isOpenOrderType() + } + return false + } + + @JvmStatic + fun setLoginStatus(loginStatus: LoginStatusEnum) { + loginService?.setLoginStatus(loginStatus) + } + + @JvmStatic + fun getLoginStatus(): LoginStatusEnum { + loginService?.let { + return it.getLoginStatus() + } + return LoginStatusEnum.None + } + + @JvmStatic + fun isLogin(): Boolean { + loginService?.let { + return it.isLogin() + } + return false + } + + fun invokeLoginStatusChange(currentStatus: LoginStatusEnum) { + if(currentStatus==LoginStatusEnum.Login){ + BizLoopManager.setLoopFunction(TAGLoopStatus, LoopInfo(60*10, ::queryLoginStatusByNet, scheduler = Schedulers.io())) + }else{ + BizLoopManager.removeLoopFunction(TAGLoopStatus) + } + M_LISTENERS.forEach { + val listener = it.value + listener.onStatusChange(currentStatus) + } + } + + fun invokeLBusinessTypeChange(currentStatus: BusinessEnum) { + M_LISTENERS.forEach { + val listener = it.value + listener.onBusinessChange(currentStatus) + } + } + fun invokeLBusinessTypeChangeDebug(currentStatus: BusinessEnum) { + M_LISTENERS.forEach { + val listener = it.value + listener.onBusinessChangeDebug(currentStatus) + } + } + + fun invokeLOpenOrderStatusChange(currentStatus: OpenOrderStatusEnum) { + M_LISTENERS.forEach { + val listener = it.value + listener.onOpenOrderStatusEnumChange(currentStatus) + } + } + + @JvmStatic + fun checkBusiness(businessType: Int):Boolean { + loginService?.let { + return it.checkBusiness(businessType) + } + return false + } + + fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ):Boolean { + loginService?.let { + return it.checkAllEnv(projectType,envType,vehicleType,businessType) + } + return false + } + + fun changeStatus(status: String) { + loginService?.let { + it.changeStatus(status) + } + } + + override fun doSomeAfterAddListener(tag: String, listener: ILoginCallback) { + super.doSomeAfterAddListener(tag, listener) + listener.onStatusChange(getLoginStatus()) + listener.onBusinessChange(getBusInessType()) + listener.onOpenOrderStatusEnumChange(getOpenOrderType()) + } + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/OpenOrderStatusEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/OpenOrderStatusEnum.kt new file mode 100644 index 0000000000..7ab675ba2d --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/OpenOrderStatusEnum.kt @@ -0,0 +1,27 @@ +package com.mogo.och.common.module.biz.login + +/** + * Created on 2022/08/19 + * + * + * 0 初始状态, + * 10 接单状态 可接单, + * 20 暂停接到哪 不可接单, + */ +enum class OpenOrderStatusEnum(val code: Int) { + UnOrdering( 0 ), + Ordering( 1), + None( -1),; + + companion object { + @JvmStatic + fun valueOf(code: Int): OpenOrderStatusEnum { + for (value in values()) { + if (value.code == code) { + return value + } + } + return None + } + } +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/RoleEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/RoleEnum.kt new file mode 100644 index 0000000000..4ef732cb09 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/RoleEnum.kt @@ -0,0 +1,25 @@ +package com.mogo.och.common.module.biz.login + +/** + * Created on 2021/12/7 + * 1 运营, 2 测试, 3演示 + */ +enum class RoleEnum(val code: Int) { + None( 0), + OPERATION( 1), + TEST( 2), + DEMO( 3); + + + companion object { + @JvmStatic + fun valueOf(code: Int?): RoleEnum { + for (value in RoleEnum.values()) { + if (value.code == code) { + return value + } + } + return RoleEnum.None + } + } +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt deleted file mode 100644 index ebf531dbfb..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt +++ /dev/null @@ -1,128 +0,0 @@ -package com.mogo.och.common.module.biz.model - -import android.annotation.SuppressLint -import android.content.Context -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager -import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.NetworkUtils -import com.mogo.och.common.module.R -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback -import com.mogo.och.common.module.biz.constant.LoginStatusManager -import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.biz.network.OchCommonServiceManager -import com.mogo.och.common.module.utils.ToastUtilsOch -import com.mogo.och.common.module.wigets.toast.ToastCharterUtils - -/** - * Created by pangfan on 2021/8/19 - * - * - * 网约车 - 出租车业务逻辑处理 - */ -@SuppressLint("StaticFieldLeak") -object OchCommonLoginModel { - - private val TAG = "TaxiLoginModel" - private var mContext: Context? = null - var iTaxiLoginCallback: ITaxiLoginCallback? = null - fun init(context: Context) { - mContext = context.applicationContext - } - - fun hasInit(): Boolean { - if (mContext == null && iTaxiLoginCallback == null) { - return false - } - return true - } - - fun getiTaxiLoginCallback(): ITaxiLoginCallback? { - return iTaxiLoginCallback - } - - fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) { - this.iTaxiLoginCallback = iTaxiLoginCallback - } - - fun release() { - mContext = null - iTaxiLoginCallback = null - } - - /** - * 获取手机验证码 - */ - fun getPhoneCode(phone: String?) { - mContext?.let { - OchCommonServiceManager.getPhoneCode(it, phone, - object : OchCommonServiceCallback { - override fun onSuccess(data: BaseData?) { - if (null != data && 0 == data.code) { - // 获取验证码成功 - ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_get_code_success)) - iTaxiLoginCallback?.getPhoneCodeSuccess() - } else { - if (data != null) { - ToastCharterUtils.showToastShort(data.code.toString()) - } - } - } - - override fun onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) - } else { - ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) - } - } - - override fun onFail(code: Int, msg: String) { - ToastUtilsOch.showWithCodeMessage(code, msg) - } - }) - } - - } - - fun gotoLogin(phone: String, code: String) { - mContext?.let { - val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() - val location4Login = TaxiLoginReqBean.Location4Login(location.latitude, location.longitude) - OchCommonServiceManager.gotoLoginBycode(it, phone, code, location4Login, - object : OchCommonServiceCallback { - override fun onSuccess(data: TaxiLoginRespBean?) { - if (null != data && 0 == data.code) { - // 获取验证码成功 - ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) - LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Login) - mContext?.let { c -> - SharedPrefsMgr.getInstance().putString("och_account", phone) - } - iTaxiLoginCallback?.loginSuccess() - } else { - if (data != null) { - ToastCharterUtils.showToastShort(data.code.toString()) - } - } - } - - override fun onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) - } else { - ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) - } - } - - override fun onFail(code: Int, msg: String) { - ToastUtilsOch.showWithCodeMessage(code, msg) - } - }) - } - } - -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt deleted file mode 100644 index afaf7bbf28..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt +++ /dev/null @@ -1,60 +0,0 @@ -package com.mogo.och.common.module.biz.model - -import android.annotation.SuppressLint -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.common.module.bean.dpmsg.BusCacheKey -import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.callback.ILoginCallback -import com.mogo.och.common.module.biz.callback.ILoginViewCallback -import com.mogo.och.common.module.biz.constant.LoginStatusManager -import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.data.manager.cache.CacheDataManager - -@SuppressLint("StaticFieldLeak") -object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() { - - - const val TAG = "OchCommonLoginStatusDefaultModel" - - - var loginCallback: ILoginCallback? = null - var loginViewCallback: ILoginViewCallback? = null - - override fun loginSuccess(data: DriverStatusQueryRespBean?) { - CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginSuccess:${LoginStatusManager.isLogin()}") - if (LoginStatusManager.isLogin()) { - SharedPrefsMgr.getInstance().putString("och_account", data?.data?.phone) - loginViewCallback?.hideLoginDialogFragment() - } else { - SharedPrefsMgr.getInstance().putString("och_account", "") - loginViewCallback?.showLoginDialogFragment() - } - loginCallback?.loginSuccess(data) - - data?.data?.driverStatus?.let { updateLoginLocalStatus(it) } - - } - - private fun updateLoginLocalStatus(loginStatus: Int = 0) { - val loginCacheStatus = LoginCacheStatus(loginStatus,DateTimeUtil.getCurrentTimeStamp()) - CacheDataManager.instance.putCacheData(mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE, - GsonUtils.toJson(loginCacheStatus)) - } - - override fun loginFail(isLogin: Boolean) { - CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginFail:$isLogin") - if (isLogin) { - loginViewCallback?.hideLoginDialogFragment() - } else { - loginViewCallback?.showLoginDialogFragment() - } - loginCallback?.loginFail(isLogin) - - updateLoginLocalStatus(0) - } - -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java deleted file mode 100644 index 9d23783a11..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.mogo.och.common.module.biz.model; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.content.Context; - -import com.mogo.commons.AbsMogoApplication; -import com.mogo.eagle.core.data.BaseData; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.common.module.R; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean; -import com.mogo.och.common.module.biz.constant.LoginStatusManager; -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.OchCommonServiceManager; -import com.mogo.och.common.module.utils.ToastUtilsOch; -import com.mogo.och.common.module.wigets.toast.ToastCharterUtils; - -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; - -public abstract class OchCommonLoginStatusModel { - - private static final String TAG = "OchCommonLoginStatusModel"; - - protected Context mContext; - - private Disposable subscribe; - - - public void init() { - mContext = AbsMogoApplication.getApp(); - queryCarStatus(); - } - - protected abstract void loginSuccess(DriverStatusQueryRespBean data); - - protected abstract void loginFail(boolean isLogin); - - /** - * 接单状态和登录状态查询 - * 1、初始化查询 - * 2、错误重试 - * 3、错误重试 - * 4、登出后重试 - * 5、变更出车状态查下 - * 6、变更出车状态查下 - * 7、网络状态变更后查询 - * 8、登录页面关闭后查下状态 - */ - public void queryCarStatus() { - OchCommonServiceManager.queryDriverServiceStatus(mContext, - new OchCommonServiceCallback() { - @Override - public void onSuccess(DriverStatusQueryRespBean data) { - if (null != data && 0 == data.code) { - LoginStatusManager.setLoginStatus(data.data.driverStatus); - CallerLogger.d(M_TAXI + TAG, "changeCarStatus:" + LoginStatusManager.getLoginStatus()); - loginSuccess(data); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastCharterUtils.showToastShort(mContext.getString(R.string.request_error_tip)); - } - subscribe = Observable.timer(5, TimeUnit.SECONDS).subscribe(aLong -> { - queryCarStatus(); - }); - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code,msg); - if(code== OchCommonConst.WAIT_TAKEN){ - subscribe = Observable.timer(3, TimeUnit.SECONDS).subscribe(aLong -> { - queryCarStatus(); - }); - }else { - loginFail(LoginStatusManager.isLogin()); - } - } - }); - } - - // 登出 - public void logout(double mLatitude,double mLongitude) { - TaxiLogoutReqBean.Location4Login location4Login = new TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude); - OchCommonServiceManager.logout(mContext,location4Login, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - if (null != data && 0 == data.code) { - loginFail(false); - queryCarStatus(); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastCharterUtils.showToastShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code,msg); - } - }); - } - - public void release() { - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } - } - -} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/LoginDefaultManage.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/LoginDefaultManage.kt deleted file mode 100644 index 9637d39f2c..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/LoginDefaultManage.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.mogo.och.common.module.biz.network - -import android.content.Context -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean - -interface LoginDefaultManage { - fun getPhoneCode( - context: Context, - phone: String?, - callback: OchCommonServiceCallback? - ) - fun gotoLoginBycode( - context: Context, phone: String?, code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) - fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) - fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt deleted file mode 100644 index ba78e36d5b..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt +++ /dev/null @@ -1,85 +0,0 @@ -package com.mogo.och.common.module.biz.network - -import android.content.Context -import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.commons.debug.DebugConfig -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.och.common.module.biz.network.interceptor.transformTry -import io.reactivex.Observable - -/** - * Created by pangfan on 2021/8/19 - */ -object OchCommonServiceManager { - - private const val TAG = "OchCommonServiceManager" - - private var loginDefaultManage: LoginDefaultManage?=null - - fun setLoginDefaultManage(loginDefaultManage: LoginDefaultManage?){ - this.loginDefaultManage = loginDefaultManage - } - - /** - * 获取手机验证码 - * @param context - * @param callback - */ - @JvmStatic - fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - loginDefaultManage?.getPhoneCode(context,phone,callback) - } - - /** - * 通过验证码登录 - * @param context - * @param callback - */ - @JvmStatic - fun gotoLoginBycode( - context: Context, phone: String?, code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - loginDefaultManage?.gotoLoginBycode(context,phone,code,location4Login,callback) - } - - /** - * 登出 - */ - @JvmStatic - fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - loginDefaultManage?.logout(context,location4Login,callback) - } - - /** - * 接单状态和登录状态查询 - * - * @param context - * @param callback - */ - @JvmStatic - fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - loginDefaultManage?.queryDriverServiceStatus(context,callback) - } - -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginStatusDefaultPresenter.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginStatusDefaultPresenter.kt deleted file mode 100644 index a4c77ec190..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginStatusDefaultPresenter.kt +++ /dev/null @@ -1,48 +0,0 @@ -package com.mogo.och.common.module.biz.presenter - -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.LifecycleObserver -import androidx.lifecycle.LifecycleOwner -import androidx.lifecycle.OnLifecycleEvent -import com.mogo.och.common.module.biz.callback.ILoginCallback -import com.mogo.och.common.module.biz.callback.ILoginViewCallback -import com.mogo.och.common.module.biz.model.OchCommonLoginStatusDefaultModel - -/** - * @author yangyakun - * @since 2020-09-19 - */ -class OchCommonLoginStatusDefaultPresenter : LifecycleObserver { - private var isFirstShow = true - - @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) - fun onCreate(owner: LifecycleOwner) { - OchCommonLoginStatusDefaultModel.init() - } - - @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) - fun onResume(owner: LifecycleOwner) { - if (isFirstShow) { - isFirstShow = false - } else { - queryLoginStatus() - } - } - @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) - fun onDestory(owner: LifecycleOwner) { - OchCommonLoginStatusDefaultModel.release() - } - - fun queryLoginStatus() { - OchCommonLoginStatusDefaultModel.queryCarStatus() - } - - fun logOut(mLatitude:Double,mLongitude:Double){ - OchCommonLoginStatusDefaultModel.logout(mLatitude, mLongitude) - } - - fun setLoginCallback(loginCallback: ILoginCallback?,loginViewCallback: ILoginViewCallback?){ - OchCommonLoginStatusDefaultModel.loginCallback = loginCallback - OchCommonLoginStatusDefaultModel.loginViewCallback = loginViewCallback - } -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt new file mode 100644 index 0000000000..3c7c909910 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt @@ -0,0 +1,18 @@ +package com.mogo.och.common.module.biz.provider + +import android.content.Context +import android.view.View +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.template.IProvider + +interface CommonService : IProvider { + + fun getFragment(): Fragment + + fun resetFragment(){} + + fun getStatusBarView(context: Context): View + + fun invokeByName(type:String,value:Any){} + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonServiceImpl.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonServiceImpl.kt new file mode 100644 index 0000000000..301c0df123 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonServiceImpl.kt @@ -0,0 +1,18 @@ +package com.mogo.och.common.module.biz.provider + +import android.content.Context +import android.view.View +import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView + +abstract class CommonServiceImpl : CommonService { + + var statusBarView: View?= null + + override fun getStatusBarView(context: Context): View { + if (statusBarView == null) { + statusBarView = StatusBarView(context) + } + return statusBarView!! + } + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt deleted file mode 100644 index 485014cee5..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.mogo.och.common.module.biz.provider - -import androidx.fragment.app.Fragment -import com.alibaba.android.arouter.facade.template.IProvider -import com.mogo.och.common.module.biz.callback.ILoginCallback -import com.mogo.och.common.module.biz.network.LoginDefaultManage - -interface LoginService : IProvider { - /** - * 注册页面 - * @param fragment 主页面 - * @param callback 回调 - */ - fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?,logindefaultmanage: LoginDefaultManage?) - - fun unRegisterFragment() - - /** - * 查询登录状态 - */ - fun queryLoginStatus():Boolean - - fun queryLoginStatusByNet() - - fun showUiModel(show:Boolean) - - /** - * 登出 - */ - fun loginOut(mLatitude:Double,mLongitude:Double) - -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt deleted file mode 100644 index 71a2afd619..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt +++ /dev/null @@ -1,139 +0,0 @@ -package com.mogo.och.common.module.biz.provider - -import android.content.Context -import android.content.DialogInterface -import androidx.fragment.app.DialogFragment -import androidx.fragment.app.Fragment -import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -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.AppStateManager.currentActivity -import com.mogo.eagle.core.utilcode.util.ClickUtils -import com.mogo.och.common.module.biz.callback.ILoginCallback -import com.mogo.och.common.module.biz.callback.ILoginViewCallback -import com.mogo.och.common.module.biz.constant.LoginStatusManager -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.LoginDefaultManage -import com.mogo.och.common.module.biz.network.OchCommonServiceManager -import com.mogo.och.common.module.biz.presenter.OchCommonLoginStatusDefaultPresenter -import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment -import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment.Companion.newInstance -import java.lang.ref.WeakReference - -@Route(path = OchCommonConst.LOGINSERVICE) -class LoginServiceImpl : LoginService,ILoginViewCallback { - - companion object{ - const val TAG = "LoginServiceImpl" - } - - private var fragment: Fragment?=null - private var taxiLoginDialogFragment: WeakReference? = null - private var presenter: OchCommonLoginStatusDefaultPresenter?=null - private var uiModel = true - - override fun init(context: Context) { - - } - - override fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?,logindefaultmanage: LoginDefaultManage?) { - OchCommonServiceManager.setLoginDefaultManage(logindefaultmanage) - presenter = OchCommonLoginStatusDefaultPresenter() - this.fragment = fragment - presenter?.let { - it.setLoginCallback(loginCallback, this) - this.fragment?.lifecycle?.addObserver(it) - } - } - - override fun unRegisterFragment() { - this.presenter?.let { - it.setLoginCallback(null,null) - this.fragment?.lifecycle?.removeObserver(it) - } - this.fragment = null - } - - - override fun showLoginDialogFragment() { - if(uiModel) { - fragment?.let { - CallerHmiManager.hideToolsView() - CallerHmiManager.hideSOPSettingView() - val parentFragmentManager = it.childFragmentManager - val fragmentByTag: Fragment? = parentFragmentManager.findFragmentByTag(TAG) - if (fragmentByTag is DialogFragment) { - if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) { - return - } - if (fragmentByTag.dialog != null && fragmentByTag.isAdded) { - if (currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用 - CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 权限验证") - return - } - } - } - - if (taxiLoginDialogFragment?.get() == null) { - taxiLoginDialogFragment = WeakReference(newInstance()) - } - val taxiLoginDialog = taxiLoginDialogFragment?.get() - if (taxiLoginDialog != null) { - if (taxiLoginDialog.dialog != null && taxiLoginDialog.dialog!!.isShowing) { - return - } - if (taxiLoginDialog.isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。 - parentFragmentManager.beginTransaction().remove(taxiLoginDialog) - .commitAllowingStateLoss() - } - if (isFastClick()) { - taxiLoginDialog.show(parentFragmentManager, TAG) - taxiLoginDialog.setOnDismissListener(DialogInterface.OnDismissListener { dialog: DialogInterface? -> - taxiLoginDialogFragment?.clear() - presenter?.queryLoginStatus() - }) - CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面") - }else{ - CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面 5s内执行一次") - } - } - } - } - } - // 5s 还没有执行说明在anr了 - private val MIN_CLICK_DELAY_TIME = 5000 - private var lastClickTime: Long = 0 - - fun isFastClick(): Boolean { - var flag = false - val curClickTime = System.currentTimeMillis() - if (curClickTime - lastClickTime >= MIN_CLICK_DELAY_TIME) { - flag = true - } - lastClickTime = curClickTime - return flag - } - - override fun hideLoginDialogFragment() { - CallerLogger.d(SceneConstant.M_TAXI + TAG, "hideLoginDialogFragment 隐藏登录界面") - if (taxiLoginDialogFragment?.get() != null) { - taxiLoginDialogFragment?.get()?.dismissAllowingStateLoss() - } - } - override fun queryLoginStatus():Boolean { - return LoginStatusManager.isLogin() - } - - override fun queryLoginStatusByNet() { - presenter?.queryLoginStatus() - } - - override fun showUiModel(show:Boolean) { - uiModel = show; - } - - override fun loginOut(mLatitude:Double,mLongitude:Double) { - presenter?.logOut(mLatitude,mLongitude) - } -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt deleted file mode 100644 index 802b3e6c32..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt +++ /dev/null @@ -1,284 +0,0 @@ -package com.mogo.och.common.module.biz.ui - -import android.annotation.SuppressLint -import android.content.DialogInterface -import android.graphics.Rect -import android.os.Bundle -import android.os.SystemClock -import android.util.Log -import android.view.* -import androidx.appcompat.widget.AppCompatButton -import androidx.appcompat.widget.AppCompatEditText -import androidx.appcompat.widget.AppCompatImageView -import androidx.appcompat.widget.AppCompatTextView -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.core.content.ContextCompat -import androidx.core.widget.addTextChangedListener -import androidx.fragment.app.DialogFragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentTransaction -import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.commons.mvp.MvpDialogFragment -import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -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.KeyboardUtils -import com.mogo.och.common.module.R -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.presenter.OchCommonLoginPresenter -import com.mogo.och.common.module.biz.provider.LoginService - - -/** - * @author: yangyakun - * @date: 2022/8/15 - */ -class TaxiLoginDialogFragment : - MvpDialogFragment(), - DialogInterface.OnKeyListener { - - lateinit var clMain: ConstraintLayout - lateinit var acbtnLogin: AppCompatButton - lateinit var actvLoginGetCode: AppCompatTextView - lateinit var actvLoginShowSn: AppCompatTextView - lateinit var aceLoginPhoneValue: AppCompatEditText - lateinit var acetPhoneCodeValue: AppCompatEditText - lateinit var actvWelcomeLoginTitle: AppCompatTextView - lateinit var acivLoginBg: AppCompatImageView - private var mOnClickListener: DialogInterface.OnDismissListener? = null - - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏 - } - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - dialog?.setOnKeyListener(this) - return super.onCreateView(inflater, container, savedInstanceState) - } - - override fun getLayoutId(): Int { - return R.layout.taxi_login_view - } - - override fun initViews() { - clMain = mRootView.findViewById(R.id.cl_main) - acbtnLogin = mRootView.findViewById(R.id.acbtn_login) - actvLoginGetCode = mRootView.findViewById(R.id.actv_login_get_code) - aceLoginPhoneValue = mRootView.findViewById(R.id.ace_login_phone_value) - acetPhoneCodeValue = mRootView.findViewById(R.id.acet_phone_code_value) - actvWelcomeLoginTitle = mRootView.findViewById(R.id.actv_welcome_login_title) - actvLoginShowSn = mRootView.findViewById(R.id.actv_login_show_sn) - acivLoginBg = mRootView.findViewById(R.id.aciv_login_bg) - inputPhoneNormal() - initBg() - initListener() - dialog?.window?.let { - context?.let { _ -> - CallerHmiManager.setStatusBarDarkOrLight(false) - } - } - } - - private fun initBg() { - if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) && - AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { - //出租车司机 - acivLoginBg.setImageResource(R.drawable.taxi_ic_login_bg) - } else if ((AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) - || AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode) - || AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)) && - AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { - //小巴车司机 - acivLoginBg.setImageResource(R.drawable.bus_ic_login_bg) - } - } - - @SuppressLint("ClickableViewAccessibility") - private fun initListener() { - mRootView.isFocusable = true - mRootView.isFocusableInTouchMode = true - mRootView.setOnTouchListener { _, event -> - when (event?.action) { - MotionEvent.ACTION_DOWN -> { - closeSoftInput() - } - } - false - } - acbtnLogin.onClick { - val phone = aceLoginPhoneValue.text.toString() - val code = acetPhoneCodeValue.text.toString() - mPresenter?.gotoLogin(phone, code) - } - actvWelcomeLoginTitle.setOnClickListener { - continuousClick() - } - clMain.viewTreeObserver.addOnGlobalLayoutListener { - val rect = Rect() - clMain.getWindowVisibleDisplayFrame(rect) - val mainInvisibleHeight = clMain.rootView.height - rect.bottom - if (mainInvisibleHeight > 100) { - val outLocation = IntArray(2) - acbtnLogin.getLocationInWindow(outLocation) - val srollHeight = (outLocation[1] + acbtnLogin.height) - rect.bottom - if (srollHeight > 0) { - clMain.scrollTo(0, srollHeight) - } - CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight") - } else { - clMain.scrollTo(0, 0) - } - } - actvLoginGetCode.onClick { - mPresenter?.getPhoneCode(aceLoginPhoneValue.text.toString()) - } - actvLoginShowSn.setOnLongClickListener { - val loginService = ARouter.getInstance().build(OchCommonConst.LOGINSERVICE) - .navigation() as LoginService - loginService.showUiModel(false) - dismissAllowingStateLoss() - true - } - aceLoginPhoneValue.addTextChangedListener { - it?.let { itEditable -> - if (itEditable.isNotEmpty()) { - inputPhoneNormal() - } - } - } - actvLoginShowSn.text = SharedPrefsMgr.getInstance().sn - } - - /** - * 关闭键盘 - */ - fun closeSoftInput() { - mRootView.requestFocus() - dialog?.window?.let { - KeyboardUtils.hideSoftInput(it) - } - } - - fun setCountDownText(text: String, enable: Boolean) { - if (enable) { - actvLoginGetCode.setText(R.string.module_och_taxi_login_get_code) - actvLoginGetCode.isEnabled = true - } else { - actvLoginGetCode.text = text - actvLoginGetCode.isEnabled = false - } - } - - fun inputPhoneError() { - aceLoginPhoneValue.text?.clear() - aceLoginPhoneValue.setHint(R.string.module_och_taxi_login_phone_error) - context?.let { - aceLoginPhoneValue.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_EF262C)) - aceLoginPhoneValue.setBackgroundResource(R.drawable.taxi_login_phone_error) - } - } - - private fun inputPhoneNormal() { - //aceLoginPhoneValue.setHint(R.string.module_och_taxi_login_phone_hint_text) - context?.let { - aceLoginPhoneValue.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_878890)) - aceLoginPhoneValue.setBackgroundResource(R.drawable.taxi_login_phone_normal) - } - } - - override fun createPresenter(): OchCommonLoginPresenter { - return OchCommonLoginPresenter(this) - } - - override fun getTagName(): String { - return TAG - } - - companion object { - private const val COUNTS = 4 // 点击次数 - private const val DURATION: Long = 1000 // 规定有效时间 - val TAG = TaxiLoginDialogFragment::class.java.simpleName - - @JvmStatic - fun newInstance(): TaxiLoginDialogFragment { - val args = Bundle() - val fragment = TaxiLoginDialogFragment() - fragment.arguments = args - return fragment - } - } - - private var mHits = LongArray(COUNTS) - - private fun continuousClick() { - //每次点击时,数组向前移动一位 - System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1) - //为数组最后一位赋值 - mHits[mHits.size - 1] = SystemClock.uptimeMillis() - if (mHits[0] >= (SystemClock.uptimeMillis() - DURATION)) { - mHits = LongArray(COUNTS) //重新初始化数组 - mPresenter?.gotoLogin("13288888888", "8888") - } - } - - override fun onKey(dialog: DialogInterface, keyCode: Int, event: KeyEvent): Boolean { - return keyCode == KeyEvent.KEYCODE_BACK - } - - fun loginSuccess() { - dismissAllowingStateLoss() - } - - fun setOnDismissListener(listener: DialogInterface.OnDismissListener?) { - mOnClickListener = listener - } - - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - mOnClickListener?.onDismiss(dialog) - CallerHmiManager.setStatusBarDarkOrLight(false) - } - - /** - * 重写父类show()方法 - * 避免出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState - */ - override fun show(manager: FragmentManager, tag: String?) { - try { - var cls = this.javaClass.superclass ?: return - while (cls != null) { - if (cls.name == "java.lang.Object") { - break - } - cls = cls.superclass!! - if (cls == DialogFragment::class.java) { - break - } - } - val mDismissed = cls.getDeclaredField("mDismissed") - val mShownByMe = cls.getDeclaredField("mShownByMe") - mDismissed.isAccessible = true - mShownByMe.isAccessible = true - mDismissed.setBoolean(this, false) - mShownByMe.setBoolean(this, true) - if (isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。 - return - } - val ft: FragmentTransaction = manager.beginTransaction() - ft.add(this, tag) - ft.commitAllowingStateLoss() - } catch (e: Exception) { - Log.e("DialogFragment", "show", e.fillInStackTrace()) - } - } - -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt new file mode 100644 index 0000000000..cae81e1970 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt @@ -0,0 +1,55 @@ +package com.mogo.och.common.module.constant + +import com.mogo.eagle.core.data.config.FunctionBuildConfig + +/** + * Created on 2021/12/6 + */ +class OchCommonConst { + companion object { + @JvmStatic + fun getBaseUrl(): String { + return FunctionBuildConfig.urlJson.ochUrl + } + @JvmStatic + fun getShuttleUrl(): String { + return FunctionBuildConfig.urlJson.shuttleUrl + } + @JvmStatic + fun getSweeperUrl(): String { + return FunctionBuildConfig.urlJson.sweeperUrl + } + + @JvmStatic + fun getEagleMisUrl(): String { + return FunctionBuildConfig.urlJson.eagleMisUrl + } + + // token 失效 重新获取token + const val WAIT_TAKEN = 100046 + + const val BIZ_LOGIN = "/ochbiz/common/login" + + const val BUS_DRIVER = "/bus/busdriver" + const val BUS_PASSENGER = "/bus/buspassenger" + + const val CHARTER_DRIVER = "/charter/charterdriver" + const val CHARTER_PASSENGER = "/charter/charterpassenger" + + const val SHUTTLE_DRIVER = "/shuttle/shuttledriver" + const val SHUTTLE_PASSENGER = "/shuttle/shuttlepassenger" + + const val SWEEPER_DRIVER = "/sweeper/sweeperdriver" + + const val TAXI_DRIVER = "/taxi/taxidriver" + const val TAXI_PASSENGER = "/taxi/taxipassenger" + + const val TAXI_UNMANNED_DRIVER = "/taxiunman/taxiunmandriver" + const val TAXI_UNMANNED_PASSENGER = "/taxiunman/taxiunmanpassenger" + + const val BUSINESS_STRING = 100 + + // 自动驾驶自动规划的最大距离 + const val AUTOMATIC_PLANNING_MAX_DISTANCE = 15 + } +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/LanSocketManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/LanSocketManager.kt deleted file mode 100644 index 4e07bf5b0f..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/LanSocketManager.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.mogo.och.common.module.manager - -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager -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.GsonUtils -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.biz.constant.OchCommonConst - -object LanSocketManager { - private const val TAG = "LanSocket" - fun sendMsgToClient(msg: BaseDPMsg?) { - CallerLogger.d(SceneConstant.M_CHARTER_D + TAG, "sendMsgToClient" + GsonUtils.toJson(msg)) - CallerTelematicManager.sendMsgToAllClients( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - } - - fun sendMsgToServer(msg: BaseDPMsg?) { - CallerLogger.d(SceneConstant.M_CHARTER_D + TAG, "sendMsgToServer" + GsonUtils.toJson(msg)) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - } - - -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocusmanager/AudioFocusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocus/AudioFocusManager.kt similarity index 89% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocusmanager/AudioFocusManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocus/AudioFocusManager.kt index 86ac59ffa8..43b236de8a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocusmanager/AudioFocusManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocus/AudioFocusManager.kt @@ -1,12 +1,12 @@ -package com.mogo.och.common.module.manager.audiofocusmanager +package com.mogo.och.common.module.manager.audiofocus import android.content.Context import android.media.AudioManager import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.auditionmanager.AuditionManager -import com.mogo.och.common.module.manager.auditionmanager.MusicData -import com.mogo.och.common.module.manager.auditionmanager.PlayState +import com.mogo.och.common.module.manager.audition.AuditionManager +import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.manager.audition.PlayState object AudioFocusManager : AuditionManager.MusicDataChangeListener { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/Audition.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/Audition.kt similarity index 98% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/Audition.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/Audition.kt index ce67a0be3c..f85f6a061f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/Audition.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/Audition.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.auditionmanager +package com.mogo.och.common.module.manager.audition import android.media.AudioManager import android.media.MediaPlayer diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/AuditionCacheManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionCacheManager.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/AuditionCacheManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionCacheManager.kt index 15dc2810cb..d8d95e1c9f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/AuditionCacheManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionCacheManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.auditionmanager +package com.mogo.och.common.module.manager.audition import android.media.MediaExtractor import android.media.MediaFormat @@ -14,12 +14,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.eagle.core.utilcode.util.Utils -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager.EVENT_KEY_INFE_WITH_MUSIC +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager.EVENT_KEY_INFE_WITH_MUSIC import com.mogo.och.common.module.utils.FileUtils import com.mogo.och.common.module.wigets.media.MediaPlayLogger -import rx.Single import java.io.File import java.io.FileOutputStream import java.io.IOException diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/AuditionManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionManager.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/AuditionManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionManager.kt index ac95684224..3409e0ed9b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/AuditionManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionManager.kt @@ -1,9 +1,8 @@ -package com.mogo.och.common.module.manager.auditionmanager +package com.mogo.och.common.module.manager.audition import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.audiofocusmanager.AudioFocusManager +import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager import java.util.concurrent.ConcurrentHashMap object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAuditionListener { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/MusicData.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/MusicData.kt similarity index 91% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/MusicData.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/MusicData.kt index 54b407aba3..cf1af2b82b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/MusicData.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/MusicData.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.auditionmanager +package com.mogo.och.common.module.manager.audition data class MusicDataList(val musics: MutableList) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/OCHAdasAbilityManager.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/OCHAdasAbilityManager.java similarity index 98% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/OCHAdasAbilityManager.java rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/OCHAdasAbilityManager.java index 906e0f45f7..1c96ec1414 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/OCHAdasAbilityManager.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/OCHAdasAbilityManager.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilotmanager; +package com.mogo.och.common.module.manager.autopilot; import android.content.Context; @@ -113,7 +113,7 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo Logger.d(TAG,"onAutopilotAbility = " + isAutopilotAbility + " onAutopilotAbility =" + unableAutopilotReasons.toString()); if (unableAutopilotReasons.toString().contains(UnableLaunchReason.SourceType.CHASSIS.name()) - && unableAutopilotReasons.toString().contains(UnableLaunchReason.UnableType.BRAKE.name())) { + && unableAutopilotReasons.toString().contains(UnableLaunchReason.UnableType.CHASSIS_BRAKE.name())) { failureCallback.brakeStatusChanged(isAutopilotAbility); } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/ArrivedStation.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/ArrivedStation.java similarity index 78% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/ArrivedStation.java rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/ArrivedStation.java index e07c77c4eb..9f995c3761 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/ArrivedStation.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/ArrivedStation.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilotmanager.autopilot; +package com.mogo.och.common.module.manager.autopilot.autopilot; import com.mogo.eagle.core.data.map.MogoLocation; @@ -28,4 +28,10 @@ public class ArrivedStation { return new ArrivedStation(mogoLocation); } + @Override + public String toString() { + return "ArrivedStation{" + + "mogoLocation=" + mogoLocation + + '}'; + } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchAutopilotStatusListener.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchAutopilotStatusListener.java new file mode 100644 index 0000000000..f22459686e --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchAutopilotStatusListener.java @@ -0,0 +1,100 @@ +package com.mogo.och.common.module.manager.autopilot.autopilot; + +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; +import com.zhjt.mogo.adas.data.AdasConstants; + +import mogo.telematics.pad.MessagePad; +import mogo_msg.MogoReportMsg; +import system_master.SsmInfo; +import system_master.SystemStatusInfo; + +public interface IOchAutopilotStatusListener { + /** + * 自驾路线触发下载请求回调 + */ + default void onAutopilotTrajectoryDownloadReq(AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) { + } + + /** + * 自动驾驶状态信息 + * + * @param state 状态信息 + */ + default void onAutopilotStatusResponse(int state) { + } + + /** + * 自动驾驶docker信息 + * + * @param dockerVersion docker版本 + */ + default void onAutopilotDockerInfo(String dockerVersion) { + } + + /** + * 自动驾驶到站 + * + * @param arrivalNotification 所到车站的简单信息 + */ + default void onAutopilotArriveAtStation(ArrivedStation arrivalNotification) { + } + + /** + * 工控机获取SN + */ + default void onAutopilotSNRequest(MessagePad.BasicInfoReq basicInfoReq) { + } + + /** + * 监控事件报告 + */ + default void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo) { + } + + /** + * 监控事件报告 + */ + default void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { + } + + /** + * 工控机连接状态回调 + */ + default void onAutopilotIpcConnectStatusChanged(AdasConstants.IpcConnectionStatus status, String reason) { + } + + /** + * 域控SSM接口接收超时 + * 状态变动时才会回调,默认SSM状态正常 + * + * @param isTimeout true:SSM接口接收超时 false:SSM接口恢复正常 + */ + default void onSsmReceiveTimeout(boolean isTimeout) { + } + + /** + * 工控机主动查询 AdasManager#sendStatusQueryReq(),后会收到如下回调 + */ + default void onAutopilotStatusRespByQuery(SystemStatusInfo.StatusInfo status) { + } + + /** + * 定频SSM + * 老版本 SSM(SystemStatusInfo.StatusInfo) HQ、M1 MAP350开始弃用,其他车型MAP360开始弃用 + */ + default void onSystemStatus(SsmInfo.SsmStatusInf statusInf) { + } + + /** + * 自动驾驶路线ID回调 + */ + default void onAutopilotRouteLineId(long lineId) { + } + /** + * 自动驾驶路线ID回调 + */ + default void canStartAutopilot(boolean canStart) { + } + +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotManager.kt new file mode 100644 index 0000000000..3ed811f9c1 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotManager.kt @@ -0,0 +1,18 @@ +package com.mogo.och.common.module.manager.autopilot.autopilot + +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager + +object OchAutoPilotManager { + + const val TAG = "OchAutoPilotManager" + init { + + } + + @JvmStatic + fun startAutoPilot(controlParameters: AutopilotControlParameters?) { + CallerAutoPilotControlManager.startAutoPilot(controlParameters) + } + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/OchAutoPilotStatusListenerManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt similarity index 55% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/OchAutoPilotStatusListenerManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt index 8b7a23f68c..733f62b82a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/OchAutoPilotStatusListenerManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt @@ -1,20 +1,38 @@ -package com.mogo.och.common.module.manager.autopilotmanager.autopilot +package com.mogo.och.common.module.manager.autopilot.autopilot +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryManager import com.mogo.och.common.module.utils.CallerBase import com.zhjt.mogo.adas.data.AdasConstants +import com.zhjt.mogo.adas.data.bean.MogoReport import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg import system_master.SsmInfo import system_master.SystemStatusInfo +import java.lang.Exception -object OchAutoPilotStatusListenerManager : CallerBase(),IMoGoAutopilotStatusListener { +object OchAutoPilotStatusListenerManager : CallerBase(),IMoGoAutopilotStatusListener, + (Boolean) -> Unit { const val TAG = "OCHAutoPilotStatusListenerManager" init { //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 CallerAutoPilotStatusListenerManager.addListener(TAG, this) + CallerAutoPilotControlManager.addStartAutopilotStateListener(TAG,this) + } + + override fun onAutopilotTrajectoryDownloadReq( + autoPilotLine: AutopilotControlParameters.AutoPilotLine, + downloadType: Int + ) { + super.onAutopilotTrajectoryDownloadReq(autoPilotLine, downloadType) + M_LISTENERS.forEach { + val listener = it.value + listener.onAutopilotTrajectoryDownloadReq(autoPilotLine,downloadType) + } } override fun onAutopilotStatusResponse(state: Int) { @@ -52,9 +70,46 @@ object OchAutoPilotStatusListenerManager : CallerBase = ConcurrentHashMap() + private val downLoadSuccessLineIds = mutableListOf() + /** * 所有轨迹点 */ @@ -88,11 +92,27 @@ object TrajectoryManager : IMoGoPlanningRottingListener { } } - fun addTrajectoryListListenerr(tag: String, listener: ITrajectoryListListener) { + fun addTrajectoryListListenerr(tag: String, listener: ITrajectoryListListener?) { if (distanceListeners.containsKey(tag)) { return } + if(listener==null){ + distanceListeners.remove(tag) + return + } distanceListeners[tag] = listener } + fun addDownLoadSuccessLine(lineId:Long){ + if(lineId>0){ + writeChainLog("轨迹监控", "onAutopilotGuardian() 轨迹下载成功${lineId}", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) + downLoadSuccessLineIds.add(lineId) + } + } + fun removeDownLoadSuccessLine(lineId:Long){ + if(lineId>0&& downLoadSuccessLineIds.contains(lineId)){ + downLoadSuccessLineIds.remove(lineId) + } + } + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/IOchAutopilotStatusListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/IOchAutopilotStatusListener.kt deleted file mode 100644 index 6d895c2268..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/autopilot/IOchAutopilotStatusListener.kt +++ /dev/null @@ -1,90 +0,0 @@ -package com.mogo.och.common.module.manager.autopilotmanager.autopilot - -import com.zhjt.mogo.adas.data.AdasConstants -import mogo.telematics.pad.MessagePad -import mogo_msg.MogoReportMsg -import system_master.SsmInfo -import system_master.SystemStatusInfo - -interface IOchAutopilotStatusListener { - /** - * 自动驾驶状态信息 - * - * @param state 状态信息 - */ - fun onAutopilotStatusResponse(state: Int) {} - - /** - * 自动驾驶docker信息 - * - * @param dockerVersion docker版本 - */ - fun onAutopilotDockerInfo(dockerVersion:String){} - - /** - * 自动驾驶到站 - * - * @param arrivalNotification 所到车站的简单信息 - */ - fun onAutopilotArriveAtStation(arrivalNotification: ArrivedStation?) {} - - /** - * 工控机获取SN - */ - fun onAutopilotSNRequest(basicInfoReq: MessagePad.BasicInfoReq) {} - - /** - * 工控机监控节点 - */ - fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {} - - /** - * 工控机连接状态回调 - */ - fun onAutopilotIpcConnectStatusChanged(status: AdasConstants.IpcConnectionStatus, reason: String?) {} - - /** - * 域控SSM接口接收超时 - * 状态变动时才会回调,默认SSM状态正常 - * @param isTimeout true:SSM接口接收超时 false:SSM接口恢复正常 - */ - fun onSsmReceiveTimeout(isTimeout: Boolean) {} - - /** - * 工控机主动查询 AdasManager#sendStatusQueryReq(),后会收到如下回调 - */ - fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {} - - /** - * 定频SSM - * 老版本 SSM(SystemStatusInfo.StatusInfo) HQ、M1 MAP350开始弃用,其他车型MAP360开始弃用 - */ - fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) {} - - /** - * 自动驾驶路线ID回调 - */ - fun onAutopilotRouteLineId(lineId: Long){} - - companion object { - /** - * 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接 - */ - const val STATUS_AUTOPILOT_DISABLE = 0 - - /** - * 可自动驾驶,工控机连接正常,且处于人工干预状态 - */ - const val STATUS_AUTOPILOT_ENABLE = 1 - - /** - * 自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人 - */ - const val STATUS_AUTOPILOT_RUNNING = 2 - - /** - * 平行驾驶 - */ - const val STATUS_PARALLEL_DRIVING = 7 - } -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorManager.kt similarity index 75% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorManager.kt index 2fa555553a..784ffddf91 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorManager.kt @@ -1,16 +1,8 @@ -package com.mogo.och.common.module.manager.devicemanage +package com.mogo.och.common.module.manager.device -import com.mogo.commons.voice.AIAssist -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.manager.LanSocketManager -import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.RxUtils -import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import io.reactivex.disposables.Disposable diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorStatusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorStatusManager.kt similarity index 91% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorStatusManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorStatusManager.kt index af3e06b237..b5d7224342 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorStatusManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorStatusManager.kt @@ -1,13 +1,13 @@ -package com.mogo.och.common.module.manager.devicemanage +package com.mogo.och.common.module.manager.device import chassis.VehicleStateOuterClass import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StatesListenerManager -import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus -import com.mogo.och.common.module.manager.devicemanage.data.DoorStatus -import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue -import com.mogo.och.common.module.manager.devicemanage.data.LightStatus +import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.device.data.AirconditionStatus +import com.mogo.och.common.module.manager.device.data.DoorStatus +import com.mogo.och.common.module.manager.device.data.HeaterStatue +import com.mogo.och.common.module.manager.device.data.LightStatus import java.util.concurrent.ConcurrentHashMap object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/TaxiDoorStateManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/TaxiDoorStateManager.kt similarity index 93% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/TaxiDoorStateManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/TaxiDoorStateManager.kt index daf0ec52eb..053142e944 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/TaxiDoorStateManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/TaxiDoorStateManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.devicemanage +package com.mogo.och.common.module.manager.device import chassis.Chassis import chassis.VehicleStateOuterClass @@ -7,9 +7,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisDoorStateListene import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.common.module.manager.devicemanage.callback.DoorStateCallback -import com.mogo.och.common.module.manager.devicemanage.data.DoorPosition -import com.mogo.och.common.module.manager.devicemanage.data.DoorState +import com.mogo.och.common.module.manager.device.callback.DoorStateCallback +import com.mogo.och.common.module.manager.device.data.DoorPosition +import com.mogo.och.common.module.manager.device.data.DoorState object TaxiDoorStateManager : IMoGoChassisDoorStateListener, CallerBase() { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/callback/DoorStateCallback.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/DoorStateCallback.kt similarity index 63% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/callback/DoorStateCallback.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/DoorStateCallback.kt index 37886350be..04e690690a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/callback/DoorStateCallback.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/DoorStateCallback.kt @@ -1,7 +1,7 @@ -package com.mogo.och.common.module.manager.devicemanage.callback +package com.mogo.och.common.module.manager.device.callback -import com.mogo.och.common.module.manager.devicemanage.data.DoorPosition -import com.mogo.och.common.module.manager.devicemanage.data.DoorState +import com.mogo.och.common.module.manager.device.data.DoorPosition +import com.mogo.och.common.module.manager.device.data.DoorState interface DoorStateCallback { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/callback/LightAirconditionDoorCallback.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/LightAirconditionDoorCallback.kt similarity index 67% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/callback/LightAirconditionDoorCallback.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/LightAirconditionDoorCallback.kt index a9a5f7f607..54406dec6d 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/callback/LightAirconditionDoorCallback.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/LightAirconditionDoorCallback.kt @@ -1,8 +1,8 @@ -package com.mogo.och.common.module.manager.devicemanage.callback +package com.mogo.och.common.module.manager.device.callback -import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus -import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue -import com.mogo.och.common.module.manager.devicemanage.data.LightStatus +import com.mogo.och.common.module.manager.device.data.AirconditionStatus +import com.mogo.och.common.module.manager.device.data.HeaterStatue +import com.mogo.och.common.module.manager.device.data.LightStatus interface LightAirconditionDoorCallback { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/AirconditionStatus.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/AirconditionStatus.kt similarity index 68% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/AirconditionStatus.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/AirconditionStatus.kt index 31bc8a474a..6eca247f1e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/AirconditionStatus.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/AirconditionStatus.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.devicemanage.data +package com.mogo.och.common.module.manager.device.data data class AirconditionStatus( var isOpen: Boolean, diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/DoorStatus.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/DoorStatus.kt similarity index 74% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/DoorStatus.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/DoorStatus.kt index 7f6121e562..7d2c168f12 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/DoorStatus.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/DoorStatus.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.devicemanage.data +package com.mogo.och.common.module.manager.device.data data class DoorStatus(var isOpen: Boolean) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/HeaterStatue.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/HeaterStatue.kt similarity index 51% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/HeaterStatue.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/HeaterStatue.kt index 80d2ef5690..753814fd82 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/HeaterStatue.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/HeaterStatue.kt @@ -1,3 +1,3 @@ -package com.mogo.och.common.module.manager.devicemanage.data +package com.mogo.och.common.module.manager.device.data data class HeaterStatue(var isOpen: Boolean, var windSpeed: Int) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/LightStatus.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/LightStatus.kt similarity index 66% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/LightStatus.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/LightStatus.kt index 69f047a7cf..d23adad76b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/LightStatus.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/LightStatus.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.devicemanage.data +package com.mogo.och.common.module.manager.device.data data class LightStatus( var isOpenLight1: Boolean, diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/DistanceDegree.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/DistanceDegree.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/DistanceDegree.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/DistanceDegree.kt index bc30038358..5c335f7757 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/DistanceDegree.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/DistanceDegree.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distancemamager +package com.mogo.och.common.module.manager.distance data class DistanceDegree(var distance: Float, var degree: Double?, var isNext: Boolean?) : Comparable { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/IDistanceListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/IDistanceListener.kt similarity index 95% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/IDistanceListener.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/IDistanceListener.kt index 53a5f0425c..977db15d01 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/IDistanceListener.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/IDistanceListener.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distancemamager +package com.mogo.och.common.module.manager.distance import com.mogo.eagle.core.data.map.MogoLocation diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/StationAndIndex.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/StationAndIndex.kt similarity index 87% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/StationAndIndex.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/StationAndIndex.kt index b99a200bdb..3ae219b294 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/StationAndIndex.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/StationAndIndex.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distancemamager +package com.mogo.och.common.module.manager.distance import com.mogo.eagle.core.data.map.MogoLocation diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt similarity index 91% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt index c39f502b01..c4b765ca1c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distancemamager +package com.mogo.och.common.module.manager.distance import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.data.map.MogoLocation @@ -11,10 +11,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.LocationUtils -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.manager.autopilotmanager.trajectory.TrajectoryCache -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryCache +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import io.reactivex.schedulers.Schedulers import mogo.telematics.pad.MessagePad @@ -36,6 +37,8 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { private const val TAG = "DistanceManager" private const val DISTANCE = "BusPassengerModelDistance" + const val errorTypeNoneLineId = "起始站点值异常,请重新选择此任务执行并上报问题" + fun addDistanceListener(tag: String, listener: IDistanceListener) { if (distanceListeners.containsKey(tag)) { @@ -659,9 +662,12 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { */ fun canStartAutopilot(lineId: Long?): String { if (lineId == null) { + OchChainLogManager.writeChainLog("启动自驾距离判断","未传轨迹ID", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) return "请确认线路ID" } + OchChainLogManager.writeChainLog("启动自驾距离判断","条件记录:lineId:${lineId}----this.lineId:${this.lineId}", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + try { if (mRoutePoints.isNullOrEmpty()) { // 判断距离起始站的距离 @@ -695,6 +701,7 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { } catch (e: Exception) { e.printStackTrace() } + OchChainLogManager.writeChainLog("启动自驾距离判断","距离站点距离:不支持的条件直接放过", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) return "" } @@ -703,7 +710,7 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { */ private fun distanceWithStartStation(): String { if (startStationInfo.stationPoint == null) { - return "起始站点值异常,请重新选择此任务执行并上报问题" + return errorTypeNoneLineId } val currentPoint = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() val distance = CoordinateUtils.calculateLineDistance( @@ -712,10 +719,11 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { startStationInfo.stationPoint!!.longitude, startStationInfo.stationPoint!!.latitude ) + OchChainLogManager.writeChainLog("启动自驾距离判断","距离站点距离:${distance}", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) return if (distance <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE) { "" } else { - "距离起始站点过远:${distance}米" + "距离起始站点超过15米" } } @@ -723,54 +731,25 @@ object TrajectoryAndDistanceManager : IMoGoPlanningRottingListener { * 距离轨迹的距离 */ fun distanceWithTrajectory(redCatche: MutableList,currentPoint:MogoLocation): String { - // 判断距离轨迹的距离 - val carLocationInfo: Triple = - CoordinateCalculateRouteUtil.getNearestPointInfo( - 0, - redCatche.size - 1, - redCatche, - currentPoint, - 2 - ) - if (carLocationInfo.third <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE) { - return ""// 可以启动自驾 - } else { - // 判断距离线段的距离 垂足的距离 - val nextPoint: MogoLocation - val prePoint: MogoLocation - // isNext true 最近的点是在下一个 - // isNext false 最近的点是在上一个 - if (carLocationInfo.second == true) { - if (carLocationInfo.first > 0) { - nextPoint = redCatche[carLocationInfo.first] - prePoint = redCatche[carLocationInfo.first - 1] - } else { - // 距离第一个点大于15m 过远 - return "距离轨迹线超过15m:${carLocationInfo.first}米,无法启动自驾" + redCatche.forEachIndexed { index, mogoLocation -> + if(index!=0){ + val prePoint = redCatche.get(index - 1) + val pointToLine = LocationUtils.pointToLine( + prePoint.longitude, + prePoint.latitude, + mogoLocation.longitude, + mogoLocation.latitude, + currentPoint.longitude, + currentPoint.latitude + ) + if(pointToLine<=OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE){ + OchChainLogManager.writeChainLog("启动自驾距离判断","距离轨迹线距离:${pointToLine}", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + return "" } - } else { - if (carLocationInfo.first + 1 < redCatche.size) { - nextPoint = redCatche[carLocationInfo.first + 1] - prePoint = redCatche[carLocationInfo.first] - } else { - nextPoint = redCatche[carLocationInfo.first] - prePoint = redCatche[carLocationInfo.first - 1] - } - } - val pointToLine = LocationUtils.pointToLine( - prePoint.longitude, - prePoint.latitude, - nextPoint.longitude, - nextPoint.latitude, - currentPoint.longitude, - currentPoint.latitude - ) - return if (pointToLine <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE) { - "" - } else { - "距离轨迹线超过15m,无法启动自驾" } } + OchChainLogManager.writeChainLog("启动自驾距离判断","距离轨迹线超过15m,无法启动自驾", eventID = OchChainLogManager.EVENT_KEY_INFO_AUTOPILOT_DISTANCE) + return "距离轨迹线超过15米" } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/lightmanager/BreakLightManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/light/BreakLightManager.kt similarity index 91% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/lightmanager/BreakLightManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/light/BreakLightManager.kt index b5789f43b2..2f0b73e966 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/lightmanager/BreakLightManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/light/BreakLightManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.lightmanager +package com.mogo.och.common.module.manager.light import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/lightmanager/TurnLightManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/light/TurnLightManager.kt similarity index 90% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/lightmanager/TurnLightManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/light/TurnLightManager.kt index 68f9033c22..e4c69bd8f4 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/lightmanager/TurnLightManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/light/TurnLightManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.lightmanager +package com.mogo.och.common.module.manager.light import chassis.Chassis import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener @@ -34,6 +34,12 @@ object TurnLightManager : IMoGoChassisLamplightListener { listener.statusChange(turnLightStatus) } + fun removeTurnLightStatusChangeListener(tag:String){ + if (lightStatusChange.containsKey(tag)){ + lightStatusChange.remove(tag) + } + } + // 转向灯 override fun onAutopilotLightSwitchData(lightSwitch: Chassis.LightSwitch?) { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt similarity index 64% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index 0162529472..eed3f14937 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.orderlogmanager +package com.mogo.och.common.module.manager.logchainanalytic import android.text.TextUtils import com.mogo.commons.debug.DebugConfig @@ -22,6 +22,30 @@ object OchChainLogManager { // 需要举行观察的 const val EVENT_KEY_INFE_ERROR = "event_key_och_error" + const val EVENT_KEY_INFO_Net = "event_key_och_net" + const val EVENT_KEY_INFO_SOCKET = "analytics_event_och_track_screen_msg" + const val EVENT_KEY_INFO_SOCKET_CONNECT = "analytics_event_och_track_screen_connect" + + const val EVENT_KEY_INFO_AUTOPILOT_DISTANCE = "event_key_vehicle_start_autopilot_state_distance_15" + + + fun writeChainLogNet(info: String, changeInfo: String){ + writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_Net) + } + fun writeChainLogNetLanSocketConnect(info: String, changeInfo: String){ + writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_SOCKET_CONNECT) + } + fun writeChainLogLanSocket(info: String, changeInfo: String,action:String){ + val map = hashMapOf() + map["action"] = action + writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_SOCKET, map) + } + + @JvmStatic + fun writeChainLog(info: String, changeInfo: String,upload:Boolean = true,eventID:String=EVENT_KEY_INFE_WITH_CHANGE) { + writeChainLog(info,changeInfo,upload,eventID,null) + } + /** * @param Info 订单详细信息 * @param changeInfo 变化信息 @@ -33,7 +57,7 @@ object OchChainLogManager { paramIndexes = [0,1] ) @JvmStatic - fun writeChainLog(Info: String, changeInfo: String,upload:Boolean = true,eventID:String=EVENT_KEY_INFE_WITH_CHANGE) { + fun writeChainLog(Info: String, changeInfo: String,upload:Boolean = true,eventID:String=EVENT_KEY_INFE_WITH_CHANGE,patch:HashMap?=null) { try { d(SceneConstant.M_OCHCOMMON + TAG, Info) d(SceneConstant.M_OCHCOMMON + TAG, changeInfo) @@ -46,6 +70,9 @@ object OchChainLogManager { params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) params["info"] = Info params["changeInfo"] = changeInfo + patch?.let { + params.putAll(it) + } MogoAnalyticUtils.track(eventID, params) } }catch (e:Exception){ diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/BizLoopManager.kt similarity index 98% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/BizLoopManager.kt index f40e96513c..d91edc23b4 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/BizLoopManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.loopmanager +package com.mogo.och.common.module.manager.loop import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/LoopInfo.kt similarity index 84% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/LoopInfo.kt index a987ec2d5c..6b9249cf23 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/loop/LoopInfo.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.loopmanager +package com.mogo.och.common.module.manager.loop import io.reactivex.Scheduler diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/AbnormalFactorsLoopManager.kt similarity index 98% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/AbnormalFactorsLoopManager.kt index 76db0f8f1c..2260880938 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/AbnormalFactorsLoopManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager +package com.mogo.och.common.module.manager.socket.cloud import android.Manifest import android.content.Context diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/OCHSocketMessageManager.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/OCHSocketMessageManager.kt index 6c8c71bc2d..6b92440565 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/OCHSocketMessageManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.common.socketmessage +package com.mogo.och.common.module.manager.socket.cloud import com.mogo.aicloud.services.socket.IMogoOnMessageListener import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/DataBaseMsg.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/DataBaseMsg.kt similarity index 69% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/DataBaseMsg.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/DataBaseMsg.kt index 813ff0d5b2..f22ecf65c8 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/DataBaseMsg.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/DataBaseMsg.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.common.socketmessage.data +package com.mogo.och.common.module.manager.socket.cloud.data /** * @author: wangmingjun diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OCHOperationalMessage.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OCHOperationalMessage.kt similarity index 85% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OCHOperationalMessage.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OCHOperationalMessage.kt index 87867287ea..4f864310ea 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OCHOperationalMessage.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OCHOperationalMessage.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.common.socketmessage.data +package com.mogo.och.common.module.manager.socket.cloud.data import java.io.Serializable diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OperateDoorMsg.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OperateDoorMsg.kt similarity index 78% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OperateDoorMsg.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OperateDoorMsg.kt index f9dddb3e98..1f0f42ef96 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OperateDoorMsg.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OperateDoorMsg.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.common.socketmessage.data +package com.mogo.och.common.module.manager.socket.cloud.data /** * @author: wangmingjun * @date: 2023/2/25 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OrderCloseMsg.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OrderCloseMsg.kt similarity index 76% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OrderCloseMsg.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OrderCloseMsg.kt index 438ce06c0c..ecb5d306c9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/OrderCloseMsg.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/OrderCloseMsg.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.common.socketmessage.data +package com.mogo.och.common.module.manager.socket.cloud.data /** * @author: wangmingjun * @date: 2023/2/25 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/SystemMsg.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/SystemMsg.kt similarity index 79% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/SystemMsg.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/SystemMsg.kt index f321b2c108..7379b89c76 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/data/SystemMsg.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/cloud/data/SystemMsg.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.common.socketmessage.data +package com.mogo.och.common.module.manager.socket.cloud.data /** * @author: wangmingjun * @date: 2023/2/25 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/ILanMessageListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/ILanMessageListener.kt new file mode 100644 index 0000000000..197b4745cc --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/ILanMessageListener.kt @@ -0,0 +1,18 @@ +package com.mogo.och.common.module.manager.socket.lan + +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg + +/** + * @author congtaowang + * @since 2019-12-31 + * + * + * 消息回调 + */ +interface ILanMessageListener { + + fun target(): Class + + fun onMsgReceived(obj: Array) + +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/LanSocketManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/LanSocketManager.kt new file mode 100644 index 0000000000..cb9b15f299 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/LanSocketManager.kt @@ -0,0 +1,90 @@ +package com.mogo.och.common.module.manager.socket.lan + +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import java.util.concurrent.ConcurrentHashMap + + +object LanSocketManager : IReceivedMsgListener { + private const val TAG = "LanSocketManager" + + init { + CallerTelematicListenerManager.addListener(TAG, this) + } + + fun load(){ + + } + + @JvmStatic + fun sendMsgToClient(msg: BaseDPMsg?) { + val message = GsonUtils.toJson(msg) + CallerLogger.d(TAG, "sendMsgToClient: $message") + OchChainLogManager.writeChainLogLanSocket("发送msg到各个端",message,"send") + CallerTelematicManager.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, message.toByteArray()) + } + + @JvmStatic + fun sendMsgToServer(msg: BaseDPMsg?) { + val message = GsonUtils.toJson(msg) + CallerLogger.d(TAG, "sendMsgToServer:$message") + OchChainLogManager.writeChainLogLanSocket("发送msg到服务端(司机)",message,"send") + CallerTelematicManager.sendMsgToServer(OchCommonConst.BUSINESS_STRING, message.toByteArray()) + } + + override fun onReceivedMsg(type: Int, byteArray: ByteArray) { + CallerLogger.d(TAG, "收到数据:_type:${type},byteArray:${String(byteArray)}") + OchChainLogManager.writeChainLogLanSocket("收到数据","type:${type},byteArray:${String(byteArray)}","receive") + if (OchCommonConst.BUSINESS_STRING == type) { + try { + val baseMsg = GsonUtils.fromJson(String(byteArray), BaseDPMsg::class.java) + baseMsg?.let { + mListeners.forEach { action -> + if(action.key==it.type){ + action.value.let {keyAndListenerMap-> + var fromJson:BaseDPMsg?=null + keyAndListenerMap.forEach {listeners-> + if(fromJson==null) { + val target = listeners.value.target() + fromJson = GsonUtils.fromJson( + String(byteArray), target + ) + } + + listeners.value.onMsgReceived(arrayOf(fromJson)) + } + + } + } + } + } + }catch (e:Exception){ + e.printStackTrace() + } + + } + } + fun registerSocketMessageListener(msgType:Int, tag:String ,mogoOnMessageListener : ILanMessageListener){ + val typeMap = mListeners[msgType] + if (typeMap==null) { + val concurrentHashMap = ConcurrentHashMap>() + concurrentHashMap[tag] = mogoOnMessageListener + mListeners[msgType] = concurrentHashMap + }else{ + if (!typeMap.contains(tag)) { + typeMap[tag] = mogoOnMessageListener + } + } + } + + private val mListeners: ConcurrentHashMap>> = + ConcurrentHashMap() + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/BaseDPMsg.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/BaseDPMsg.kt new file mode 100644 index 0000000000..57a8ed3caa --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/BaseDPMsg.kt @@ -0,0 +1,35 @@ +package com.mogo.och.common.module.manager.socket.lan.bean + +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils + +open class BaseDPMsg( + open var type: Int = DPMsgType.TYPE_CLIENT_REGISTER.type, + open var msgVersion: Int = 1, + open var targetScreenTypes: MutableList = + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + mutableListOf(ScreenType.Passenger, ScreenType.Guide) + } else { + mutableListOf(ScreenType.Driver, ScreenType.Guide) + }, + open var sourceScreenType: ScreenType = + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + ScreenType.Driver + } else { + ScreenType.Passenger + }, + open var sourceSn: String = SharedPrefsMgr.getInstance().sn, + open var timestamp: Long = System.currentTimeMillis() +) { + companion object { + const val TAG = "BaseDPMsg" + } +} + +enum class ScreenType { + Driver, // 司机屏 + Passenger,// 乘客屏 + Guide // 报站屏 +} + diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DPMsgType.kt similarity index 60% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DPMsgType.kt index cada587957..9633fa762a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DPMsgType.kt @@ -1,4 +1,6 @@ -package com.mogo.och.common.module.bean.dpmsg +package com.mogo.och.common.module.manager.socket.lan.bean + +import com.mogo.eagle.core.utilcode.util.GsonUtils /** * @author: wangmingjun @@ -14,5 +16,8 @@ enum class DPMsgType(val type: Int) { TYPE_ARRIVEDEST_STATUS(6), //到站通知 status TYPE_ORDER_CLOSED_BY_M1_STATUS(7), //到站通知 status TYPE_WRITEOFF_INFO(8), //核销信息 - TYPE_WRITEOFF_DEVICES_INFO(9) //核销设备信息 + TYPE_WRITEOFF_DEVICES_INFO(9), //核销设备信息 + TYPE_CHANGE_BUSINESS_TYPE(10), //业务模式切换 + TYPE_ENV_CHECK(11), //环境核验 + TYPE_CLIENT_REGISTER(12); //客户端注册 服务端需要 } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt new file mode 100644 index 0000000000..f13ecc3230 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt @@ -0,0 +1,125 @@ +package com.mogo.och.common.module.manager.socket.lan.bean + +/** + * @author: wangmingjun + * @date: 2023/3/27 + */ + +object BusCacheKey { + const val BUS_LINE_CACHE = "bus_line_cache" + const val BUS_LOGIN_STATUS_CACHE = "bus_login_status_cache" +} + +data class LoginCacheStatus( + var loginStatus: Int, + var updateTime: Long +) : BaseDPMsg(DPMsgType.TYPE_LOGIN_STATUS.type) + +data class ChangeDestMsg( + var orderNo: String,// 订单号 + var lineId: Int, //线路id + var lineName: String = "", //线路名称 + var startSiteId: Int = 0, //当前站点 + var startSiteName: String = "", + var destSiteId: Int = 0, //目的地 + var destSiteName: String = "", + var isConfirmed: Boolean = false, //司机端是否同意 + var arriveStatus: Int?, //1:未到达 2:到达 + var writeVersion: Long?, //版本标记 + var lineSiteList: MutableList? = null +) : BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) + +data class LineSite( + val lineId: Long?,//线路Id + val lineName: String?,//线路名称 + val siteId: Long?,//线路Id + val siteName: String?,//站点名称 + val Wgs84Lon: Double?,//高精坐标 + val Wgs84Lat: Double?,//高精坐标 + val GcjLon: Double?,//高德坐标 + val GcjLat: Double?,//高德坐标 + val seq: Double?, + val type: Int?, +) + +data class EndOrderMsg( + var orderNo: String, //订单id +) : BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED_BY_M1_STATUS.type) + +data class DPOrderClosedMsg( + var closed: Boolean = true // true: 结束 +) : BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) + +data class AppConnectMsg( + var isViewShow: Boolean = true, + var isPlay: Boolean = false, + var msg: String, + var boxType: Int = -1 +) : BaseDPMsg(DPMsgType.TYPE_COMMON.type) + +data class TaskDetailsMsg( + var msg: String?, +) : BaseDPMsg(DPMsgType.TYPE_TASK_DETAILS.type) + +data class WriteOffMsg( + val isScuccess: Boolean?, + val phone: String?, + val ticketSize: Int?, + val ticketName: String?, + val failedReason: String?, + val orderNo: String? +) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO.type) + +data class WriteOffDevicesMsg( + val isConnectScanner: Boolean?, + val reason: String? +) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.type) + +// 更换支持的业务模式 +data class ChangeBusinessType( + val vehicleType: VehicleType, + val businessType: BusinessType, + val projectType: ProjectType, + val envType: EnvType, +) : BaseDPMsg(DPMsgType.TYPE_CHANGE_BUSINESS_TYPE.type) + +// 检测环境 +data class EnvCheck( + val vehicleType: VehicleType, + val businessType: BusinessType, + val projectType: ProjectType, + val envType: EnvType, +) : BaseDPMsg(DPMsgType.TYPE_ENV_CHECK.type) + +// 车辆类型 +enum class VehicleType { + T1T2, + C1, + B1, + B2, + M1, +} + +enum class BusinessType { + none, + bus, + shuttle, + charter, + taxi, + taxiunmanned +} + +enum class ProjectType { + dali, + mogo, + saas, + yantai +} + +enum class EnvType { + qa, + online, + demo +} + + diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/OCHPlanningActionsCallback.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/OCHPlanningActionsCallback.kt similarity index 71% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/OCHPlanningActionsCallback.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/OCHPlanningActionsCallback.kt index 558504a408..145d21d2f4 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/OCHPlanningActionsCallback.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/OCHPlanningActionsCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.stopsidemanager +package com.mogo.och.common.module.manager.stopside interface OCHPlanningActionsCallback { fun onStartAutopilotFailure(actionStatus: StopSideStatus, stopSideStatus : Boolean?, errorInfo : String?) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/StopSideManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/StopSideManager.kt similarity index 99% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/StopSideManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/StopSideManager.kt index fbf4e26315..8f49e6a825 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/StopSideManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/StopSideManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.stopsidemanager +package com.mogo.och.common.module.manager.stopside import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/StopSideStatus.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/StopSideStatus.kt similarity index 80% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/StopSideStatus.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/StopSideStatus.kt index 87d60dfdb0..f7ffe2ae75 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopsidemanager/StopSideStatus.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/stopside/StopSideStatus.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.stopsidemanager +package com.mogo.och.common.module.manager.stopside enum class StopSideStatus { START(),// 开始靠边停车 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiStateManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiStateManager.kt similarity index 99% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiStateManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiStateManager.kt index e47708c6ac..f264434b89 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiStateManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiStateManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.xiaozhimanager +package com.mogo.och.common.module.manager.xiaozhi import android.Manifest import androidx.core.app.ActivityCompat diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiV2NManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiV2NManager.kt similarity index 99% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiV2NManager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiV2NManager.kt index 03a507408f..ff37f33553 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiV2NManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiV2NManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.xiaozhimanager +package com.mogo.och.common.module.manager.xiaozhi import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.function.api.hmi.xiaozhi.event.Event diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiView.kt similarity index 91% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiView.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiView.kt index 20783d5640..7298141888 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiView.kt @@ -1,23 +1,16 @@ -package com.mogo.och.common.module.manager.xiaozhimanager +package com.mogo.och.common.module.manager.xiaozhi import android.animation.ObjectAnimator import android.animation.ValueAnimator import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater -import android.view.View import android.view.animation.LinearInterpolator -import androidx.appcompat.widget.AppCompatImageView import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.common.module.R import com.mogo.och.common.module.utils.FrameAnimatorContainer -import com.mogo.tts.base.zhi.CallbackWidget -import com.mogo.tts.base.zhi.ZhiRecordWinUi import kotlinx.android.synthetic.main.common_xiaozhi.view.aciv_v2n_event import kotlinx.android.synthetic.main.common_xiaozhi.view.aciv_xiaozhi -import java.util.concurrent.ArrayBlockingQueue -import java.util.concurrent.atomic.AtomicBoolean class ZhiView : ConstraintLayout, ZhiViewmanager.IViewCallback { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiViewmanager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiViewmanager.kt similarity index 99% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiViewmanager.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiViewmanager.kt index 3ddd1a58a7..8d90d6f0fb 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiViewmanager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhi/ZhiViewmanager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.xiaozhimanager +package com.mogo.och.common.module.manager.xiaozhi import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.common.module.R diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceCallback.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonServiceCallback.java similarity index 85% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceCallback.java rename to OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonServiceCallback.java index 7aa1d80dc2..3ad859723e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceCallback.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonServiceCallback.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.network; +package com.mogo.och.common.module.network; /** * @author congtaowang diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonSubscribeImpl.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonSubscribeImpl.kt similarity index 56% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonSubscribeImpl.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonSubscribeImpl.kt index 3345bd2980..1f008ebf20 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonSubscribeImpl.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/OchCommonSubscribeImpl.kt @@ -1,36 +1,58 @@ -package com.mogo.och.common.module.biz.network +package com.mogo.och.common.module.network import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.RequestOptions import com.mogo.eagle.core.network.SubscribeImpl import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.CallerLoggerUtils.flavorTag class OchCommonSubscribeImpl( val context: Any, val callback: OchCommonServiceCallback?, - val apiName: String + val apiName: String, + val writeLog:Boolean = true ) : SubscribeImpl(RequestOptions.create(context)) { companion object { const val TAG = "OchCommonSubscribeImpl" } + init { + CallerLogger.e("$flavorTag$TAG", "$apiName: 去请求()") + if(writeLog) { + OchChainLogManager.writeChainLogNet("接口:${apiName}", "去请求") + } + } + override fun onSuccess(o: T) { super.onSuccess(o) CallerLogger.d("$flavorTag$TAG", "$apiName: onSuccess() ${o.msg}") + if(writeLog) { + OchChainLogManager.writeChainLogNet("接口:${apiName}", "请求成功:${o}") + } callback?.onSuccess(o) } override fun onError(e: Throwable) { super.onError(e) CallerLogger.e("$flavorTag$TAG", "$apiName: onError() ${e.message}") + if(writeLog) { + OchChainLogManager.writeChainLogNet("接口:${apiName}", "请求失败:${e.message}") + } callback?.onError("$apiName: onError() ${e.message}") + callback?.onError() } override fun onError(message: String, code: Int) { super.onError(message, code) CallerLogger.e("$flavorTag$TAG", "$apiName: onError() code = $code; message = $message") + if(writeLog) { + OchChainLogManager.writeChainLogNet( + "接口:${apiName}", + "请求失败: onError() code = $code; message = $message\"" + ) + } callback?.onFail(code, message) } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/FRetryWithTime.kt similarity index 60% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/FRetryWithTime.kt index 5e7796806e..9323b8cb1a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/FRetryWithTime.kt @@ -1,9 +1,11 @@ -package com.mogo.och.common.module.biz.network.interceptor +package com.mogo.och.common.module.network.interceptor import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.eagle.core.data.BaseData -import com.mogo.och.common.module.biz.constant.LoginStatusManager -import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.biz.login.LoginStatusEnum import io.reactivex.Observable import io.reactivex.ObservableSource import io.reactivex.functions.Function @@ -16,7 +18,9 @@ class FRetryWithTime : Function> { MoGoAiCloudClient.getInstance().refreshToken() return Observable.error(OchCommonRetryException()) }else if(it.code == 1003){ - LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Logout) + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) + } } } return Observable.just(baseData) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/OchCommonNetInterceptor.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/OchCommonNetInterceptor.kt similarity index 91% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/OchCommonNetInterceptor.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/OchCommonNetInterceptor.kt index ef94848e01..6bb7e3de4e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/OchCommonNetInterceptor.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/OchCommonNetInterceptor.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.network.interceptor +package com.mogo.och.common.module.network.interceptor import io.reactivex.Observable import com.mogo.eagle.core.data.BaseData diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/OchCommonRetryException.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/OchCommonRetryException.java similarity index 52% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/OchCommonRetryException.java rename to OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/OchCommonRetryException.java index 262d1806c0..4078aa0f55 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/OchCommonRetryException.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/OchCommonRetryException.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.network.interceptor; +package com.mogo.och.common.module.network.interceptor; public class OchCommonRetryException extends RuntimeException{ diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/RetryWithTime.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/RetryWithTime.kt similarity index 85% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/RetryWithTime.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/RetryWithTime.kt index 83606fdea0..5c06544bc0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/RetryWithTime.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/RetryWithTime.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.network.interceptor +package com.mogo.och.common.module.network.interceptor import com.mogo.eagle.core.utilcode.constant.TimeConstants import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -19,7 +19,7 @@ class RetryWithTime : Function, ObservableSource> { override fun apply(throwableObservable: Observable): ObservableSource? { return throwableObservable.flatMap { ++current - CallerLogger.e("${flavorTag}${TAG}", " 时间:${TimeUtils.getStringByNow(0, TimeConstants.SEC)}") + CallerLogger.e("${flavorTag}$TAG", " 时间:${TimeUtils.getStringByNow(0, TimeConstants.SEC)}") if (it is OchCommonRetryException && current < timeDelys.size) { Observable.timer(timeDelys[current].toLong(), TimeUnit.SECONDS) } else { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt index 97735b8d7a..e119eed607 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt @@ -9,7 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils -import com.mogo.och.common.module.manager.distancemamager.DistanceDegree +import com.mogo.och.common.module.manager.distance.DistanceDegree import mogo.telematics.pad.MessagePad import java.util.TreeMap import kotlin.math.acos diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FlavorUtils.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FlavorUtils.kt new file mode 100644 index 0000000000..e1b2128c18 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FlavorUtils.kt @@ -0,0 +1,294 @@ +package com.mogo.och.common.module.utils + +import com.mogo.commons.debug.DebugConfig +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.util.AppUtils +import com.mogo.och.common.module.biz.login.BusinessEnum +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import kotlin.text.StringBuilder + +object FlavorUtils { + + var vehicleType: VehicleType? = null + var businessType: BusinessType? = null + var projectType: ProjectType? = null + var envType: EnvType? = null + + + fun getInfo():String{ + val info = StringBuilder() + + when (ProjectUtils.getProjectType()) { + Project.SAAS -> info.append("saas") + Project.DALI -> info.append("dali") + Project.MOGO -> info.append("mogo") + Project.YANTAI -> info.append("yantai") + } + + if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { + info.append(" T1T2") + } else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { + info.append(" M1") + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + info.append(" B1") + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + info.append(" B2") + } else { + info.append(" C1") + } + + when (DebugConfig.getNetMode()) { + 2 -> { + info.append(" qa ") + } + + 3 -> { + info.append(" online ") + } + + 4 -> { + info.append(" demo ") + } + + else -> { + info.append(" qa ") + } + } + if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + info.append(" Driver") + }else if(AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + info.append(" Passenger") + } + + info.append(" ${AppUtils.getAppVersionName()}") + info.append(" AppSN:${SharedPrefsMgr.getInstance().sn}") + return info.toString() + } + + fun getBusinessInfo(businessType: Int):String { + val businessEnum = BusinessEnum.valueOf(businessType) + FunctionBuildConfig.supportBusiness.forEach { + when (it) { + "shuttle" -> { + val isSupply = businessEnum == BusinessEnum.Shuttle + if (isSupply) { + return "" + } + } + + "bus" -> { + val isSupply = businessEnum == BusinessEnum.Bus + if (isSupply) { + return "" + } + } + + "taxi" -> { + val isSupply = businessEnum == BusinessEnum.Taxi + if (isSupply) { + return "" + } + } + + "charter" -> { + val isSupply = businessEnum == BusinessEnum.Charter + if (isSupply) { + return "" + } + } + + else -> {} + } + } + val reason = StringBuilder() + reason.append("业务异常<当前支持:") + FunctionBuildConfig.supportBusiness.forEachIndexed { index, s -> + if(index==FunctionBuildConfig.supportBusiness.size-1){ + reason.append(s) + }else{ + reason.append("${s},") + } + } + when (businessEnum) { + BusinessEnum.Taxi -> reason.append(" 后台配置:taxi>") + BusinessEnum.Bus -> reason.append(" 后台配置:bus>") + BusinessEnum.Shuttle -> reason.append(" 后台配置:shuttle>") + BusinessEnum.Charter -> reason.append(" 后台配置:charter>") + else -> { + reason.clear() + reason.append("后台未配置业务模式,请联系运营人员为该车配置") + } + } + return reason.toString() + } + + fun getEnvCheck() { + businessType = + when (AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode)) { + AppIdentityModeUtils.Product.BUS -> { + BusinessType.bus + } + + AppIdentityModeUtils.Product.TAXI -> { + BusinessType.taxi + } + + AppIdentityModeUtils.Product.SWEEPER -> { + BusinessType.none + } + + AppIdentityModeUtils.Product.SHUTTLE -> { + BusinessType.shuttle + } + + AppIdentityModeUtils.Product.CHARTER -> { + BusinessType.charter + } + + else -> { + BusinessType.none + } + } + + if(vehicleType==null||projectType==null||envType==null) { + vehicleType = + if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { + VehicleType.T1T2 + } else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { + VehicleType.M1 + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + VehicleType.B1 + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + VehicleType.B2 + } else { + VehicleType.C1 + } + + projectType = when (ProjectUtils.getProjectType()) { + Project.SAAS -> ProjectType.saas + Project.DALI -> ProjectType.dali + Project.MOGO -> ProjectType.mogo + Project.YANTAI -> ProjectType.yantai + } + envType = when (DebugConfig.getNetMode()) { + + 2 -> { + EnvType.qa + } + + 3 -> { + EnvType.online + } + + 4 -> { + EnvType.demo + } + + else -> { + EnvType.qa + } + } + } + } + + fun checkAllEnv( projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType):String{ + + val reason = StringBuilder() + + val isProjectSupply = when (ProjectUtils.getProjectType()) { + Project.SAAS -> projectType == ProjectType.saas + Project.DALI -> projectType == ProjectType.dali + Project.MOGO -> projectType == ProjectType.mogo + Project.YANTAI -> projectType == ProjectType.yantai + } + if(!isProjectSupply){ + reason.append("项目异常<当前:${ProjectUtils.getProjectType().name}, 后台配置:${projectType.name}> ") + } + + val currentVehicle:String + val vehicleTypeSupply = + if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { + currentVehicle = VehicleType.T1T2.name + vehicleType == VehicleType.T1T2 + } else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { + currentVehicle = VehicleType.M1.name + vehicleType == VehicleType.M1 + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + currentVehicle = VehicleType.B1.name + vehicleType == VehicleType.B1 + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + currentVehicle = VehicleType.B2.name + vehicleType == VehicleType.B2 + } else { + currentVehicle = VehicleType.C1.name + vehicleType == VehicleType.C1 + } + if(!vehicleTypeSupply){ + reason.append("车型异常<当前:${currentVehicle}, 后台配置:${vehicleType.name}> ") + } + + val currentenvType:String + val envTypeSupply = when (DebugConfig.getNetMode()) { + 2 -> { + currentenvType = EnvType.qa.name + envType == EnvType.qa + } + + 3 -> { + currentenvType = EnvType.online.name + envType == EnvType.online + } + + 4 -> { + currentenvType = EnvType.demo.name + envType == EnvType.demo + } + + else -> { + currentenvType = EnvType.qa.name + envType == EnvType.qa + } + } + if(!envTypeSupply){ + reason.append("环境异常<当前:${currentenvType} 后台配置:${envType.name}> ") + } + + + val businessTypeSupply = checkBusinessMine(businessType) + + if(!businessTypeSupply){ + reason.append("业务异常<当前支持:") + FunctionBuildConfig.supportBusiness.forEachIndexed { index, s -> + if(index==FunctionBuildConfig.supportBusiness.size-1){ + reason.append(s) + }else{ + reason.append("${s},") + } + } + reason.append(" 后台配置:${businessType.name}> ") + } + + return reason.toString() + } + + fun checkBusinessMine(businessType: BusinessType) :Boolean{ + if(businessType==BusinessType.none){ + return true + } + FunctionBuildConfig.supportBusiness.forEach { + if (businessType.name == it) { + return true + } + } + return false + } + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/ProjectUtils.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/ProjectUtils.kt new file mode 100644 index 0000000000..a16951fb2f --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/ProjectUtils.kt @@ -0,0 +1,50 @@ +package com.mogo.och.common.module.utils + +import com.mogo.commons.debug.DebugConfig + +object ProjectUtils { + fun isSaas(): Boolean { + return DebugConfig.getProjectFlavor() == Project.SAAS.value + } + + fun isDali(): Boolean { + return DebugConfig.getProjectFlavor() == Project.DALI.value + } + + fun isMogo(): Boolean { + return DebugConfig.getProjectFlavor() == Project.MOGO.value + } + + fun isYantai(): Boolean { + return DebugConfig.getProjectFlavor() == Project.YANTAI.value + } + + fun getProjectType(): Project { + when (DebugConfig.getProjectFlavor()) { + Project.DALI.value -> { + return Project.DALI + } + + Project.SAAS.value -> { + return Project.SAAS + } + + Project.MOGO.value -> { + return Project.MOGO + } + + Project.YANTAI.value -> { + return Project.YANTAI + } + } + return Project.MOGO + } + +} + +enum class Project(val value: String) { + SAAS("saas"), + DALI("dali"), + MOGO("mogo"), + YANTAI("yantai") +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/ResourcesUtils.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/ResourcesUtils.kt new file mode 100644 index 0000000000..a0b95be62d --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/ResourcesUtils.kt @@ -0,0 +1,20 @@ +package com.mogo.och.common.module.utils + +import android.graphics.BitmapFactory +import androidx.annotation.ColorRes +import androidx.annotation.StringRes +import androidx.core.content.ContextCompat +import com.mogo.commons.AbsMogoApplication + +object ResourcesUtils { + @JvmStatic + fun getColor(@ColorRes id: Int): Int { + return ContextCompat.getColor(AbsMogoApplication.getApp(),id) + } + + @JvmStatic + fun getString(@StringRes id: Int): String { + return AbsMogoApplication.getApp().getString(id) + } + +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt index 7794099b4f..09021ada3f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt @@ -3,7 +3,7 @@ package com.mogo.och.common.module.voice import com.mogo.commons.AbsMogoApplication import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.audiofocusmanager.AudioFocusManager +import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager import com.mogo.tts.base.IMogoTTSCallback import com.mogo.tts.base.LangTtsEntity import com.mogo.tts.base.MultiLangTtsEntity diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/DriverConnectStatusView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/DriverConnectStatusView.kt index dcfd21e62c..5c0448c7e0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/DriverConnectStatusView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/DriverConnectStatusView.kt @@ -8,8 +8,8 @@ import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.R -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo class DriverConnectStatusView @JvmOverloads constructor( context: Context, diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/LoadingMapStatusView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/LoadingMapStatusView.kt new file mode 100644 index 0000000000..841b3418b8 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/LoadingMapStatusView.kt @@ -0,0 +1,69 @@ +package com.mogo.och.common.module.wigets + +import android.animation.ObjectAnimator +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.animation.LinearInterpolator +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.commons.module.status.MogoStatusManager +import com.mogo.eagle.core.data.config.HdMapBuildConfig +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.map.listener.IMogoMapListener +import com.mogo.map.listener.MogoMapListenerHandler +import com.mogo.map.uicontroller.EnumMapUI +import com.mogo.och.common.module.R +import kotlinx.android.synthetic.main.common_loading_map.view.aciv_loading_map + +class LoadingMapStatusView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr),IMogoMapListener { + companion object { + const val TAG = "LoadingMapStatusView" + } + + private var autopilotLoadingAnimator: ObjectAnimator? = null + + init { + LayoutInflater.from(context).inflate(R.layout.common_loading_map, this, true) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerLogger.d(TAG,"onAttachedToWindow") + visibility = VISIBLE + MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener(TAG,this) + if (autopilotLoadingAnimator == null) { + autopilotLoadingAnimator = + ObjectAnimator.ofFloat(aciv_loading_map, "rotation", 0f, 360f) + autopilotLoadingAnimator?.setInterpolator(LinearInterpolator()) + autopilotLoadingAnimator?.setRepeatCount(-1) //无限循环 + autopilotLoadingAnimator?.setDuration(1000) //设置持续时间 + } + autopilotLoadingAnimator!!.start() //动画开始 + + setOnClickListener { + CallerLogger.d(TAG,"点击") + } + } + + override fun onMapLoaded() { + MogoStatusManager.getInstance().setScreenCoverMode(TAG, true) + HdMapBuildConfig.isMapLoaded = true + // 设置地图样式 + MogoMapListenerHandler.mogoMapListenerHandler.onMapModeChanged(EnumMapUI.MAP_STYLE_DAY_VR) + UiThreadHandler.postDelayed({ visibility = GONE },2_000,UiThreadHandler.MODE.QUEUE) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerLogger.d(TAG,"onDetachedFromWindow") + MogoMapListenerHandler.mogoMapListenerHandler.unregisterHostMapListener(TAG) + } + + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionViewModel.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionViewModel.kt index 3b2df2feec..e21fb838d2 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionViewModel.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionViewModel.kt @@ -4,8 +4,8 @@ import androidx.lifecycle.ViewModel import com.amap.api.maps.model.LatLng import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager +import com.mogo.och.common.module.manager.distance.ITrajectoryListener +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager class MapDirectionViewModel: ViewModel(), ITrajectoryListener { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt index 03577124d4..f429a6fb8e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt @@ -13,10 +13,10 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -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.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.common.module.wigets.media.MediaItem.Companion.MEDIA_TYPE_IMAGE import com.mogo.och.common.module.wigets.media.MediaItem.Companion.MEDIA_TYPE_VIDEO import io.reactivex.Observable @@ -93,6 +93,7 @@ object MediaDataSourceManager { if (mMediaDataSourceListenerMap.containsKey(tag)) { mMediaDataSourceListenerMap.remove(tag) } + mLastMediaDataSourceList.clear() } /** diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt index bd51e3d55f..4489566f02 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt @@ -7,6 +7,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.R +import com.shuyu.gsyvideoplayer.GSYVideoManager import kotlinx.android.synthetic.main.fragment_video_player.imageVideoRotationView /** @@ -57,7 +58,7 @@ class MediaPlayerFragment : override fun onPause() { super.onPause() - //imageVideoRotationView.setPause() + imageVideoRotationView.setPause() } override fun onResume() { @@ -67,6 +68,7 @@ class MediaPlayerFragment : override fun onDestroy() { MediaDataSourceManager.unInit(TAG) + GSYVideoManager.releaseAllVideos() super.onDestroy() } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterUtils.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterUtils.kt index 751d21222e..0e86882483 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterUtils.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterUtils.kt @@ -11,7 +11,6 @@ import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import me.jessyan.autosize.utils.AutoSizeUtils object ToastCharterUtils { diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_able.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_able.png new file mode 100755 index 0000000000..0266a6cb60 Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_able.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_in_autopilot.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_in_autopilot.png new file mode 100755 index 0000000000..1d08b0f359 Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_in_autopilot.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_press.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_press.png new file mode 100755 index 0000000000..e0370edd24 Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_press.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_pxjs.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_pxjs.png new file mode 100755 index 0000000000..c5bfb8e5ba Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_pxjs.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_start_fail.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_start_fail.png new file mode 100755 index 0000000000..0266a6cb60 Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_start_fail.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_start_success.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_start_success.png new file mode 100755 index 0000000000..3a58c70b24 Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_start_success.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_starting.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_starting.png new file mode 100755 index 0000000000..fe1b9b82b4 Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_starting.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_unable.png b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_unable.png new file mode 100755 index 0000000000..a8d5e1a53c Binary files /dev/null and b/OCH/common/common/src/main/res/autopilot/drawable-nodpi/common_autopilot_unable.png differ diff --git a/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_able_bg.xml b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_able_bg.xml new file mode 100644 index 0000000000..b99a0a1a8f --- /dev/null +++ b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_able_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_in_bg.xml b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_in_bg.xml new file mode 100644 index 0000000000..ffcaaae7f1 --- /dev/null +++ b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_in_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_start_fail_bg.xml b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_start_fail_bg.xml new file mode 100644 index 0000000000..d765512c7c --- /dev/null +++ b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_start_fail_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_start_success_bg.xml b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_start_success_bg.xml new file mode 100644 index 0000000000..c40596b9dc --- /dev/null +++ b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_start_success_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_starting_bg.xml b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_starting_bg.xml new file mode 100644 index 0000000000..b0a24ad7f7 --- /dev/null +++ b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_starting_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_unable_bg.xml b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_unable_bg.xml new file mode 100644 index 0000000000..9bd804af80 --- /dev/null +++ b/OCH/common/common/src/main/res/autopilot/drawable/common_autopilot_unable_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_loading_map.png b/OCH/common/common/src/main/res/drawable-nodpi/common_loading_map.png new file mode 100755 index 0000000000..bec43bcdde Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/common_loading_map.png differ diff --git a/OCH/common/common/src/main/res/drawable-xhdpi/bus_ic_login_bg.webp b/OCH/common/common/src/main/res/drawable-xhdpi/bus_ic_login_bg.webp deleted file mode 100644 index 7d76261863..0000000000 Binary files a/OCH/common/common/src/main/res/drawable-xhdpi/bus_ic_login_bg.webp and /dev/null differ diff --git a/OCH/common/common/src/main/res/drawable-xhdpi/taxi_ic_login_bg.webp b/OCH/common/common/src/main/res/drawable-xhdpi/taxi_ic_login_bg.webp deleted file mode 100644 index 7af7432551..0000000000 Binary files a/OCH/common/common/src/main/res/drawable-xhdpi/taxi_ic_login_bg.webp and /dev/null differ diff --git a/OCH/common/common/src/main/res/drawable/common_autopilot_loading.xml b/OCH/common/common/src/main/res/drawable/common_autopilot_loading.xml new file mode 100644 index 0000000000..3a98e6cf94 --- /dev/null +++ b/OCH/common/common/src/main/res/drawable/common_autopilot_loading.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/layout/common_loading_map.xml b/OCH/common/common/src/main/res/layout/common_loading_map.xml new file mode 100644 index 0000000000..7563fbb8b9 --- /dev/null +++ b/OCH/common/common/src/main/res/layout/common_loading_map.xml @@ -0,0 +1,22 @@ + + + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/values/colors.xml b/OCH/common/common/src/main/res/values/colors.xml index 0755fb7f2c..e58217e9df 100644 --- a/OCH/common/common/src/main/res/values/colors.xml +++ b/OCH/common/common/src/main/res/values/colors.xml @@ -22,4 +22,5 @@ #B8C2D8 #203555 #B3EFF6FF + #384270 \ No newline at end of file diff --git a/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt b/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt index 05639c7cbd..dca3cac696 100644 --- a/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt +++ b/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt @@ -6,9 +6,8 @@ import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.utilcode.util.CoordinateTransform import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.utils.DateTimeUtil -import org.junit.Assert.* import org.junit.Test /** diff --git a/OCH/facade/.gitignore b/OCH/facade/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/OCH/facade/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/OCH/facade/build.gradle b/OCH/facade/build.gradle new file mode 100644 index 0000000000..0094d2ec71 --- /dev/null +++ b/OCH/facade/build.gradle @@ -0,0 +1,75 @@ +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' + id 'kotlin-kapt' +} + +android { + compileSdkVersion rootProject.ext.android.compileSdkVersion + defaultConfig { + minSdkVersion rootProject.ext.android.minSdkVersion + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles "consumer-rules.pro" + kapt { + useBuildCache = false + arguments { + arg("AROUTER_MODULE_NAME", project.getName()) + } + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + lintOptions { + abortOnError false + } + kotlinOptions { + jvmTarget = '1.8' + } + + flavorDimensions "vehicle" + productFlavors { + // 车型:金旅星辰、开沃 小巴业务 + jinlvvan { + dimension "vehicle" + buildConfigField 'int', 'NEW_TEST', '0' + } + // 车型:金旅m2 小巴业务 + m2 { + dimension "vehicle" + buildConfigField 'int', 'NEW_TEST', '1' + } + } +} + +dependencies { + + implementation fileTree(dir: "libs", include: ["*.jar"]) + implementation rootProject.ext.dependencies.kotlinstdlib + implementation rootProject.ext.dependencies.androidxccorektx + implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.material + implementation rootProject.ext.dependencies.rxandroid + implementation rootProject.ext.dependencies.arouter + kapt rootProject.ext.dependencies.aroutercompiler + + apply from: "./script/och.gradle" + + implementation project(":OCH:common:common") + implementation project(":OCH:common:biz") + + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { + api rootProject.ext.dependencies.mogoutils + }else { + api project(":core:mogo-core-utils") + } +} \ No newline at end of file diff --git a/OCH/facade/consumer-rules.pro b/OCH/facade/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/OCH/facade/proguard-rules.pro b/OCH/facade/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/OCH/facade/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/script/functions/och.gradle b/OCH/facade/script/och.gradle similarity index 55% rename from app/script/functions/och.gradle rename to OCH/facade/script/och.gradle index f95942131d..70556fd4cd 100644 --- a/app/script/functions/och.gradle +++ b/OCH/facade/script/och.gradle @@ -2,44 +2,42 @@ apply from: "./script/utils.gradle" // 网约车服务:仅小巴车、出租车渠道用 project.dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { -// fPadLenovoImplementation(rootProject.ext.dependencies.mogoochnoop) - - // Bus司机端 -// fMultiDisplayOchBusImplementation(rootProject.ext.dependencies.mogoochbus) -// // Bus乘客端 -// fMultiDisplayOchBusImplementation(rootProject.ext.dependencies.mogoochbus) -// -// // taxi司机端 -// fMultiDisplayOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi) -// // taxi乘客端 -// fMultiDisplayOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi) } else { - - if (isCurrentDriver("bus")) { + if (isCurrentDriver("C1")) { + implementation project.project(':OCH:sweeper:driver') + } else if (isCurrentDriver("B1")) { + implementation project.project(':OCH:shuttle:driver') implementation project.project(':OCH:bus:driver') - } else if (isCurrentPassenger("bus")) { + } else if (isCurrentPassenger("B1")) { implementation project.project(':OCH:bus:passenger') - } else if (isCurrentDriver("charter")) { - implementation project.project(':OCH:charter:driver') - } else if (isCurrentPassenger("charter")) { - implementation project.project(':OCH:charter:passenger') - } else if (isCurrentDriver("shuttle")) { - implementation project(':OCH:shuttle:driver') - } else if (isCurrentPassenger("shuttle")) { implementation project.project(':OCH:shuttle:passenger') - } else if (isCurrentDriver("sweeperOperate")) { - implementation project.project(':OCH:sweeper:driver') - } else if (isCurrentDriver("sweeperCloud")) { - implementation project.project(':OCH:sweeper:driver') - } else if (isCurrentDriver("taxiunmanned")) { - implementation project.project(':OCH:taxi:unmanned-driver') - } else if (isCurrentPassenger("taxiunmanned")) { - implementation project.project(':OCH:taxi:unmanned-passenger') - } else if (isCurrentDriver("taxi")) { - implementation project.project(':OCH:taxi:driver') - } else if (isCurrentPassenger("taxi")) { - implementation project.project(':OCH:taxi:passenger') + } else if (isCurrentDriver("M1")) { + implementation project.project(':OCH:charter:driver') + implementation project.project(':OCH:shuttle:driver') + } else if (isCurrentPassenger("M1")) { + implementation project.project(':OCH:charter:passenger') + implementation project.project(':OCH:shuttle:passenger') + } else if (isCurrentDriver("B2")) { + implementation project.project(':OCH:shuttle:driver') + implementation project.project(':OCH:bus:driver') + } else if (isCurrentPassenger("B2")) { + implementation project.project(':OCH:bus:passenger') + implementation project.project(':OCH:shuttle:passenger') + } else if (isCurrentDriver("T1T2")) { + if(isCurrentDriver("saas")){ + implementation project.project(':OCH:taxi:unmanned-driver') + } + if(isCurrentDriver("mogo")){ + implementation project.project(':OCH:taxi:driver') + } + } else if (isCurrentPassenger("T1T2")) { + if(isCurrentPassenger("saas")){ + implementation project.project(':OCH:taxi:unmanned-passenger') + } + if(isCurrentPassenger("mogo")){ + implementation project.project(':OCH:taxi:passenger') + } } else { implementation project.project(':OCH:bus:driver') implementation project.project(':OCH:bus:passenger') diff --git a/OCH/facade/script/utils.gradle b/OCH/facade/script/utils.gradle new file mode 100644 index 0000000000..0e854c72c6 --- /dev/null +++ b/OCH/facade/script/utils.gradle @@ -0,0 +1,81 @@ +boolean isCurrentDriver(String flavors) { + if(isDriver() && isCurrentFlavors(flavors)){ + return true + } + return false +} + +boolean isCurrentPassenger(String flavors) { + if(isPassenger() && isCurrentFlavors(flavors)){ + return true + } + return false +} + +boolean isDriver() { + for (String s : gradle.startParameter.taskNames) { + if (s.contains("Driver") | s.contains("driver")) { + return true + } + } + return false +} + +boolean isPassenger() { + for (String s : gradle.startParameter.taskNames) { + if (s.contains("Passenger") | s.contains("passenger")) { + return true + } + } + return false +} + +boolean isJL() { + for (String s : gradle.startParameter.taskNames) { + if (s.contains("b1") | s.contains("B1")) { + return true + } + } + return false +} + +boolean isM2() { + for (String s : gradle.startParameter.taskNames) { + if (s.contains("b2") | s.contains("B2")) { + return true + } + } + return false +} + +boolean isCurrentFlavors(String flavors){ + for (String s : gradle.startParameter.taskNames) { + + def lowerCase = flavors.toLowerCase() + if (s.toLowerCase().contains(lowerCase)) { + return true + } + } + return false +} + +boolean isBaiLing() { + for (String s : gradle.startParameter.taskNames) { + println "----------isPassenger------${s}" + if (s.contains("Bailing") | s.contains("bailing")) { + return true + } + } + return false +} + +ext { + isPassenger = this.&isPassenger + isDriver = this.&isDriver + isBaiLing = this.&isBaiLing + isCurrentFlavors = this.&isCurrentFlavors + isCurrentDriver = this.&isCurrentDriver + isCurrentPassenger = this.&isCurrentPassenger + isJL = this.&isJL + isM2 = this.&isM2 +} \ No newline at end of file diff --git a/OCH/bus/passenger/src/m2/AndroidManifest.xml b/OCH/facade/src/m2/AndroidManifest.xml similarity index 66% rename from OCH/bus/passenger/src/m2/AndroidManifest.xml rename to OCH/facade/src/m2/AndroidManifest.xml index ef86a3875d..b618877172 100644 --- a/OCH/bus/passenger/src/m2/AndroidManifest.xml +++ b/OCH/facade/src/m2/AndroidManifest.xml @@ -1,9 +1,7 @@ - - + package="com.mogo.och.facade"> + + + \ No newline at end of file diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/constant/FacadeConst.kt b/OCH/facade/src/main/java/com/mogo/och/facade/constant/FacadeConst.kt new file mode 100644 index 0000000000..cf5bd72fe3 --- /dev/null +++ b/OCH/facade/src/main/java/com/mogo/och/facade/constant/FacadeConst.kt @@ -0,0 +1,13 @@ +package com.mogo.och.facade.constant + +/** + * Created on 2021/12/6 + */ +class FacadeConst { + companion object { + // OCH arouter 路由path + const val DRIVER_PATH = "/driver/api" + const val PASSENGER_PATH = "/passenger/api" + + } +} \ No newline at end of file diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt new file mode 100644 index 0000000000..f8f2e04638 --- /dev/null +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt @@ -0,0 +1,55 @@ +package com.mogo.och.facade.route + +import android.content.Context +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.facade.constant.FacadeConst + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ +@Route(path = FacadeConst.DRIVER_PATH) +class FacadeDriverProvider : FacadeProvider() { + private val TAG = "FacadeDriverProvider" + + private val sweeperFacadeProvider:SweeperFacadeProvider by lazy { + SweeperFacadeProvider() + } + + override val functionName: String + get() = TAG + + override fun init(context: Context) { + if (AppIdentityModeUtils.isC1(FunctionBuildConfig.appIdentityMode)) { + sweeperFacadeProvider.init(context) + }else { + super.init(context) + LoginStatusManager.queryLoginStatusByNet() + LoginLanDriverSocket.load() + } + } + + override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? { + if (AppIdentityModeUtils.isC1(FunctionBuildConfig.appIdentityMode)) { + return sweeperFacadeProvider.createCoverage(fragmentActivity,integer) + }else { + return super.createCoverage(fragmentActivity, integer) + } + } + + override fun onDestroy() { + super.onDestroy() + } + + override fun onStatusChange(currentStatus: LoginStatusEnum) { + super.onStatusChange(currentStatus) + } +} diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadePassengerProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadePassengerProvider.kt new file mode 100644 index 0000000000..7d27e9bebf --- /dev/null +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadePassengerProvider.kt @@ -0,0 +1,26 @@ +package com.mogo.och.facade.route + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket +import com.mogo.och.facade.constant.FacadeConst + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ +@Route(path = FacadeConst.PASSENGER_PATH) +class FacadePassengerProvider : FacadeProvider() { + private val TAG = FacadePassengerProvider::class.java.simpleName + + override val functionName: String + get() = TAG + + override fun init(context: Context) { + super.init(context) + LoginLanPassengerSocket.load() + } + + +} diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt new file mode 100644 index 0000000000..b42c284043 --- /dev/null +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -0,0 +1,208 @@ +package com.mogo.och.facade.route + +import android.content.Context +import android.view.Gravity +import android.view.View +import android.view.ViewGroup +import android.widget.FrameLayout +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.fragment.app.FragmentManager +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.hmi.ui.setting.SopView +import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView +import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.login.BusinessEnum +import com.mogo.och.common.module.biz.login.ILoginCallback +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.provider.CommonService +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.utils.ProjectUtils + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ +abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { + private var containerId = 0 + private var activity: FragmentActivity? = null + private val TAG = "FacadeProvider" + private var commonService: CommonService? = null + override fun init(context: Context) { + d(TAG, "FacadeProvider:init") + LoginStatusManager.addListener(TAG, this) + } + + override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? { + containerId = integer!! + activity = fragmentActivity + showFragment() + return null + } + + private fun showFragment() { + val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager + val fragment = if (LoginStatusManager.isLogin()) { + val fragment = getFragment() + injectStatusBar() + LoginStatusManager.resetFragment() + fragment + } else { + removeStatusBar() + CallerHmiManager.hideToolsView() + ToggleDebugView.toggleDebugView.dismiss() + SopView.sopView.dismiss() + commonService?.resetFragment() + LoginStatusManager.getFragment() + } + + d(TAG, "切换 fragment:${fragment}") + + if (supportFragmentManager != null) { + val back = supportFragmentManager.beginTransaction() + back.replace(containerId, fragment, fragment.tag) + back.commitAllowingStateLoss() + } + } + + private fun getFragment(): Fragment { + if (AppIdentityModeUtils.isBusDriver(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.BUS_DRIVER) + } else if (AppIdentityModeUtils.isShuttleDriver(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.SHUTTLE_DRIVER) + } else if (AppIdentityModeUtils.isCharterDriver(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.CHARTER_DRIVER) + } else if (AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode)) { + return if(ProjectUtils.isMogo()){ + getFragmentByServeName(OchCommonConst.TAXI_DRIVER) + }else if(ProjectUtils.isSaas()){ + getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_DRIVER) + }else{ + getFragmentByServeName(OchCommonConst.TAXI_DRIVER) + } + } else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.SWEEPER_DRIVER) + } else if (AppIdentityModeUtils.isBusPassenger(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.BUS_PASSENGER) + } else if (AppIdentityModeUtils.isShuttlePassenger(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.SHUTTLE_PASSENGER) + } else if (AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.CHARTER_PASSENGER) + } else if (AppIdentityModeUtils.isTaxiPassenger(FunctionBuildConfig.appIdentityMode)) { + return if(ProjectUtils.isMogo()){ + getFragmentByServeName(OchCommonConst.TAXI_PASSENGER) + }else if(ProjectUtils.isSaas()){ + getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_PASSENGER) + }else{ + getFragmentByServeName(OchCommonConst.TAXI_PASSENGER) + } + } + return LoginStatusManager.getFragment() + } + + private fun getFragmentByServeName(serviceName: String): Fragment { + commonService = ARouter.getInstance().build(serviceName).navigation() as CommonService? + return if (commonService == null) { + try { + LoginStatusManager.getFragment() + } catch (e: ClassNotFoundException) { + OchChainLogManager.writeChainLog( + "Init", + "没有找到登录Fragment", + eventID = OchChainLogManager.EVENT_KEY_INFE_ERROR + ) + Fragment() + } + } else { + commonService!!.getFragment() + } + } + + override fun onDestroy() { + //若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 + if (activity == null) return + activity!!.finish() + } + + override fun onStatusChange(currentStatus: LoginStatusEnum) { + d(TAG, "登录状态发生改变 ${currentStatus}") + UiThreadHandler.post { + showFragment() + } + } + + override fun onBusinessChange(businessEnum: BusinessEnum) { + super.onBusinessChange(businessEnum) + val (_, identity, model) =AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode) + when (businessEnum) { + BusinessEnum.None -> {} + BusinessEnum.Taxi -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.TAXI}_${identity}_${model}" + BusinessEnum.Bus -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.BUS}_${identity}_${model}" + BusinessEnum.Shuttle -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SHUTTLE}_${identity}_${model}" + BusinessEnum.Charter -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.CHARTER}_${identity}_${model}" + } + } + + override fun onBusinessChangeDebug(businessEnum: BusinessEnum) { + onBusinessChange(businessEnum) + val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager + val fragment = getFragment() + injectStatusBar() + d(TAG, "切换 fragment:${fragment}") + LoginStatusManager.resetFragment() + if (supportFragmentManager != null) { + val back = supportFragmentManager.beginTransaction() + back.replace(containerId, fragment, fragment.tag) + back.commit() + } + } + + private fun injectStatusBar() { + activity?.let { it -> + val decorView = it.window.decorView as? FrameLayout ?: return + val contentView = + (decorView.findViewById(android.R.id.content) as? ViewGroup)?.getChildAt(0) + ?: return + contentView.fitsSystemWindows = false + decorView.clipToPadding = false + var statusBarView = decorView.findViewWithTag("status_bar") + val statusBar = commonService?.getStatusBarView(it) + statusBarView = statusBar ?: StatusBarView(it) + statusBarView.tag = "status_bar" + val statusBarLP = FrameLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT, + ) + statusBarLP.topMargin = 0 + statusBarLP.gravity = Gravity.TOP + statusBar?.let {view-> + if(view.isAttachedToWindow){ + return + } + } + CallerLogger.d(TAG,"添加statusBar---${commonService}") + decorView.addView(statusBarView, statusBarLP) + } + } + private fun removeStatusBar(){ + activity?.let { + CallerLogger.d(TAG,"移除statusBar") + val decorView = it.window.decorView as? FrameLayout ?: return + val statusBar = decorView.findViewWithTag("status_bar") + statusBar?.let { + decorView.removeView(it) + } + } + } + +} diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/SweeperFacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/SweeperFacadeProvider.kt new file mode 100644 index 0000000000..37eb9d8fe8 --- /dev/null +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/SweeperFacadeProvider.kt @@ -0,0 +1,73 @@ +package com.mogo.och.facade.route + +import android.content.Context +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.fragment.app.FragmentManager +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider +import com.mogo.eagle.core.function.api.vehicle.IMoGoSweeperModeListener +import com.mogo.eagle.core.function.call.vehicle.CallerSweeperModeListenerManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonService + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ + class SweeperFacadeProvider : IMoGoFunctionProvider, IMoGoSweeperModeListener { + private var containerId = 0 + private var activity: FragmentActivity? = null + private val TAG = "SweeperFacadeProvider" + private var commonService: CommonService? = null + + override val functionName: String + get() = TAG + + override fun init(context: Context) { + d(TAG, "SweeperFacadeProvider:init") + CallerSweeperModeListenerManager.addListener(TAG, this) + } + + override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? { + containerId = integer!! + activity = fragmentActivity + showFragment() + return null + } + + private fun showFragment() { + val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager + val (_, identity, model) =AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode) + FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SWEEPER}_${identity}_${model}" + val fragment = getFragmentByServeName(OchCommonConst.SWEEPER_DRIVER) + + d(TAG, "切换 fragment:${fragment}") + + if (supportFragmentManager != null) { + val back = supportFragmentManager.beginTransaction() + back.replace(containerId, fragment, fragment.tag) + back.commit() + } + } + + private fun getFragmentByServeName(serviceName: String): Fragment { + commonService = ARouter.getInstance().build(serviceName).navigation() as CommonService? + return commonService!!.getFragment() + } + + override fun onDestroy() { + //若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 + if (activity == null) return + activity!!.finish() + } + + override fun onSweeperCurrentModeChanged(currentMode: String) { + commonService?.invokeByName("reStart",currentMode) + } + +} diff --git a/OCH/facade/src/main/res/layout/taxi_login_view_1.xml b/OCH/facade/src/main/res/layout/taxi_login_view_1.xml new file mode 100644 index 0000000000..5ebb33a52c --- /dev/null +++ b/OCH/facade/src/main/res/layout/taxi_login_view_1.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/OCH/shuttle/driver/build.gradle b/OCH/shuttle/driver/build.gradle index 49905dadd6..9d0078f8e6 100644 --- a/OCH/shuttle/driver/build.gradle +++ b/OCH/shuttle/driver/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -15,9 +16,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" - javaCompileOptions { - annotationProcessorOptions { - arguments = [AROUTER_MODULE_NAME: project.getName()] + kapt { + useBuildCache = false + arguments { + arg("AROUTER_MODULE_NAME", "shuttle"+project.getName()) } } } @@ -49,7 +51,7 @@ dependencies { implementation rootProject.ext.dependencies.kotlinstdlib implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.arouter - annotationProcessor rootProject.ext.dependencies.aroutercompiler + kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap diff --git a/OCH/shuttle/driver/src/main/AndroidManifest.xml b/OCH/shuttle/driver/src/main/AndroidManifest.xml index 76856fd226..d77be24a42 100644 --- a/OCH/shuttle/driver/src/main/AndroidManifest.xml +++ b/OCH/shuttle/driver/src/main/AndroidManifest.xml @@ -1,16 +1,16 @@ + package="com.mogo.och.shuttle"> - + - diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/BusProvider.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/BusProvider.java deleted file mode 100644 index 5d4584dd99..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/BusProvider.java +++ /dev/null @@ -1,85 +0,0 @@ - -package com.mogo.och.bus; - -import android.content.Context; - -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.bus.constant.BusConst; -import com.mogo.och.bus.fragment.ShuttleFragment; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * 网约车小巴业务实现入口 - * - * @author tongchenfei - */ -@Route(path = BusConst.PATH) -public class BusProvider implements IMoGoFunctionProvider { - - private static final String TAG = "BusProvider"; - - private ShuttleFragment busFragment; - private int containerId; - private FragmentActivity activity; - - @Override - public void init(Context context) { - } - - private void showFragment() { - FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); - if (busFragment == null) { - CallerLogger.d(TAG, "准备add fragment======"); - Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(ShuttleFragment.TAG); - if (fragmentByTag instanceof ShuttleFragment) { - busFragment = (ShuttleFragment) fragmentByTag; - } else { - busFragment = new ShuttleFragment(); - } - if(!busFragment.isAdded()) { - supportFragmentManager.beginTransaction().add(containerId, busFragment, ShuttleFragment.TAG).commitAllowingStateLoss(); - } - return; - } - CallerLogger.d(TAG, "准备show fragment"); - supportFragmentManager.beginTransaction().show(busFragment).commitAllowingStateLoss(); - } - - private void hideFragment() { - if (busFragment != null) { - CallerLogger.d(TAG, "准备hide fragment"); - activity.getSupportFragmentManager().beginTransaction().hide(busFragment).commitAllowingStateLoss(); - } - - } - - @NotNull - @Override - public String getFunctionName() { - return TAG; - } - - @Nullable - @Override - public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) { - this.containerId = integer; - this.activity = fragmentActivity; - showFragment(); - return null; - } - - @Override - public void onDestroy() { - //若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 - if (activity == null) return; - activity.finish(); - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt deleted file mode 100644 index 0f3c2d294f..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.och.bus.net.login - -import android.content.Context -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.network.LoginDefaultManage -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback - -class LoginBusImpl: LoginDefaultManage { - - override fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.getPhoneCode(context,phone,callback) - } - - override fun gotoLoginBycode( - context: Context, - phone: String?, - code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback) - } - - override fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.logout(context,location4Login,callback) - } - - override fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.queryDriverServiceStatus(context,callback) - } - - -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt deleted file mode 100644 index a31ffeb463..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt +++ /dev/null @@ -1,108 +0,0 @@ -package com.mogo.och.bus.net.login - -import android.content.Context -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.commons.storage.SharedPrefsMgr -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 - -/** - * Created by pangfan on 2021/8/19 - */ -object OchCommonServiceManager { - - private const val TAG = "OchCommonServiceManager" - - private val mLoginServiceApi: OchLoginServiceApi = - MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create( - OchLoginServiceApi::class.java - ) - - /** - * 获取手机验证码 - * @param context - * @param callback - */ - @JvmStatic - fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - mLoginServiceApi.getPhoneCode( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLoginSmsReqBean(phone) - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode")) - } - - /** - * 通过验证码登录 - * @param context - * @param callback - */ - @JvmStatic - fun gotoLoginBycode( - context: Context, phone: String?, code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - val sn = SharedPrefsMgr.getInstance().sn - mLoginServiceApi.gotoLoginBycode4Bus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode")) - } - - /** - * 登出 - */ - @JvmStatic - fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - mLoginServiceApi.logout4Bus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout")) - } - - /** - * 接单状态和登录状态查询 - * - * @param context - * @param callback - */ - @JvmStatic - fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - if (SharedPrefsMgr.getInstance().token.isEmpty()) { - callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") - MoGoAiCloudClient.getInstance().refreshToken() - return - } - mLoginServiceApi.queryDriverServiceStatusAndLoginStatus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) - } - -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java deleted file mode 100644 index 81a0206a40..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.mogo.och.bus.net.login; - -import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean; - -import io.reactivex.Observable; -import retrofit2.http.Body; -import retrofit2.http.GET; -import retrofit2.http.Header; -import retrofit2.http.Headers; -import retrofit2.http.POST; -import retrofit2.http.Path; -import retrofit2.http.Query; - -/** - * Created by pangfan on 2021/8/19 - *

- * 网约车-出租车接口定义 - */ -interface OchLoginServiceApi { - /** - * 获取手机验证码 - * - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/och-shuttle-cabin/api/sms/v1/driver/sendSms" ) - Observable getPhoneCode(@Header("appId") String appId - , @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data); - - /** - * 通过验证码登录 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/och-shuttle-cabin/api/flow/v1/driver/startOperation" ) - Observable gotoLoginBycode4Bus(@Header("appId") String appId - , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); - - /** - * 登出接口 - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-shuttle-cabin/api/flow/v1/driver/endOperation") - Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket, - @Body TaxiLogoutReqBean data); - - /** - * 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端 - * @param sn - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET( "/och-shuttle-cabin/api/business/v1/driver/loginStatus") - Observable queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId - , @Header("ticket") String ticket, @Query("sn") String sn); - -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ShuttleDriverProvider.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ShuttleDriverProvider.kt new file mode 100644 index 0000000000..ff8e351db4 --- /dev/null +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ShuttleDriverProvider.kt @@ -0,0 +1,38 @@ +package com.mogo.och.shuttle + +import android.content.Context +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.och.shuttle.fragment.ShuttleFragment +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonServiceImpl + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ +@Route(path = OchCommonConst.SHUTTLE_DRIVER) +class ShuttleDriverProvider : CommonServiceImpl() { + + private val TAG = ShuttleDriverProvider::class.java.simpleName + private var busFragment: ShuttleFragment?=null + + override fun init(context: Context) { + d(SceneConstant.M_TAXI + TAG, "init") + } + + override fun getFragment(): Fragment { + if(busFragment==null){ + busFragment = ShuttleFragment() + } + return busFragment!! + } + + override fun resetFragment() { + busFragment = null + } + +} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java similarity index 93% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java index 14346ad51a..7854aa0e07 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; import com.mogo.och.common.module.utils.DateTimeUtil; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOperationStatusRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOperationStatusRequest.java similarity index 95% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOperationStatusRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOperationStatusRequest.java index 11b865f15c..2b45d47011 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOperationStatusRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOperationStatusRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOrderBean.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOrderBean.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java index 85c3a1da58..4a4230ccd6 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOrderBean.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; /** * @author congtaowang diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOrdersResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java similarity index 92% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOrdersResponse.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java index 2215a298a5..03a2b23b96 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusOrdersResponse.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.eagle.core.data.BaseData; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java similarity index 90% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java index f6c9828873..0f3cd777ea 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineTaskResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java similarity index 89% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineTaskResponse.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java index 4911c3cf99..fbf8f22c3b 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineTaskResponse.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.eagle.core.data.BaseData; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLinesResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java similarity index 94% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLinesResponse.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java index 17540e3eed..a5ad54daa8 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLinesResponse.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.eagle.core.data.BaseData; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryWriteOffPassengersResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryWriteOffPassengersResponse.java similarity index 86% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryWriteOffPassengersResponse.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryWriteOffPassengersResponse.java index 36a5e3b409..0d1139ee93 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusQueryWriteOffPassengersResponse.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryWriteOffPassengersResponse.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.eagle.core.data.BaseData; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java similarity index 93% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java index 75432c7782..ef6cdbda93 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; import com.mogo.och.common.module.utils.DateTimeUtil; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusResetLineStatusRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetLineStatusRequest.java similarity index 91% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusResetLineStatusRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetLineStatusRequest.java index e3642a892e..24bdcb8a59 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusResetLineStatusRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetLineStatusRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusRoutePlanningUpdateReqBean.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutePlanningUpdateReqBean.java similarity index 95% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusRoutePlanningUpdateReqBean.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutePlanningUpdateReqBean.java index 080e7d47bd..598b8c8ef5 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusRoutePlanningUpdateReqBean.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutePlanningUpdateReqBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import java.util.List; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java similarity index 94% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java index 39d43217af..667135077b 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.eagle.core.data.BaseData; import com.mogo.och.data.bean.BusRoutesResult; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java similarity index 94% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java index 92f5f22ea4..13ba2e4f3c 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusWriteOffPassengersQueryRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusWriteOffPassengersQueryRequest.java similarity index 94% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusWriteOffPassengersQueryRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusWriteOffPassengersQueryRequest.java index 3e41b91727..d0148f79e9 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/BusWriteOffPassengersQueryRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusWriteOffPassengersQueryRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/CarHeartbeatReqBean.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/CarHeartbeatReqBean.java similarity index 82% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/CarHeartbeatReqBean.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/CarHeartbeatReqBean.java index dcacb5e380..b1489610ea 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/CarHeartbeatReqBean.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/CarHeartbeatReqBean.java @@ -1,6 +1,7 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; -import com.mogo.och.bus.constant.BusConst; +import com.mogo.och.shuttle.constant.BusConst; +import com.mogo.och.shuttle.constant.BusConst; import java.util.UUID; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java similarity index 95% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersRequest.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java index 72e5a3a68f..8c13428bff 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersRequest.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.commons.storage.SharedPrefsMgr; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersResponse.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java index 98105058b8..b11ba9329b 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersResponse.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.eagle.core.data.BaseData; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffCountResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java similarity index 85% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffCountResponse.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java index c34204a1b1..b8eaa7e68d 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffCountResponse.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import com.mogo.eagle.core.data.BaseData; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java similarity index 89% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java index dd9f9f67c6..624c296d9f 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.shuttle.bean; import java.io.Serializable; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java similarity index 85% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java index 186fc0b5f4..8a59bcb206 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.callback; +package com.mogo.och.shuttle.callback; /** * Created on 2021/9/8 diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java similarity index 91% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java index 8e4528feba..2e3a71fff3 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.callback; +package com.mogo.och.shuttle.callback; import com.mogo.eagle.core.data.map.MogoLocation; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java similarity index 63% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java index 8250b337c5..f52a9c7454 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java @@ -1,7 +1,7 @@ -package com.mogo.och.bus.callback; +package com.mogo.och.shuttle.callback; -import com.mogo.och.bus.bean.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.BusQueryLinesResponse; +import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse; +import com.mogo.och.shuttle.bean.BusQueryLinesResponse; /** * @author: wangmingjun diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java similarity index 93% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java index 4f28bf76b9..14e30a34fa 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.callback; +package com.mogo.och.shuttle.callback; import com.mogo.och.data.bean.BusStationBean; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/ISlidePannelHideCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java similarity index 76% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/ISlidePannelHideCallback.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java index 16e6893135..6acad8a540 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/ISlidePannelHideCallback.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.callback; +package com.mogo.och.shuttle.callback; /** * @author: wangmingjun diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt index d62d02cebe..0c68d7b5e0 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.constant +package com.mogo.och.shuttle.constant import com.mogo.commons.debug.DebugConfig diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BaseShuttleTabFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java similarity index 81% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BaseShuttleTabFragment.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java index 5f69222cbd..7337247cac 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BaseShuttleTabFragment.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java @@ -1,6 +1,6 @@ -package com.mogo.och.bus.fragment; +package com.mogo.och.shuttle.fragment; -import static com.mogo.och.bus.constant.BusConst.TIMER_START_AUTOPILOT_INTERVAL; +import static com.mogo.och.shuttle.constant.BusConst.TIMER_START_AUTOPILOT_INTERVAL; import android.animation.ObjectAnimator; import android.os.Bundle; @@ -17,13 +17,16 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.Group; +import androidx.core.content.ContextCompat; +import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.config.HdMapBuildConfig; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; @@ -32,7 +35,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxBubbleView; import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView; import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView; -import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView; import com.mogo.eagle.core.function.smp.view.SmallMapView; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; @@ -42,12 +44,12 @@ import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.listener.MogoMapListenerHandler; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; -import com.mogo.och.bus.R; -import com.mogo.och.bus.ui.ShuttleTrafficDataView; -import com.mogo.och.bus.view.BizMapView; +import com.mogo.och.common.module.utils.ResourcesUtils; +import com.mogo.och.shuttle.R; +import com.mogo.och.shuttle.view.BizMapView; import com.mogo.och.data.bean.BusRoutesResult; -import com.mogo.och.bus.model.OrderModel; -import com.mogo.och.bus.view.SlidePanelView; +import com.mogo.och.shuttle.model.OrderModel; +import com.mogo.och.shuttle.view.SlidePanelView; import com.mogo.och.common.module.utils.SoundPoolHelper; import org.greenrobot.eventbus.EventBus; @@ -73,7 +75,7 @@ public abstract class BaseShuttleTabFragment { - slidePanelView.setText(text); - slidePanelView.setVisibility(View.VISIBLE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setText(text); + slidePanelView.setVisibility(View.VISIBLE); + } + }, UiThreadHandler.MODE.QUEUE); setArrivedClikable(false); } @@ -334,23 +347,29 @@ public abstract class BaseShuttleTabFragment { - tvArrived.setEnabled(isClickable); - if (isClickable) { - tvArrived.setTextColor(getResources().getColor(R.color.bus_white)); - } else { - tvArrived.setTextColor(getResources().getColor(R.color.bus_arrived_btn_un_clickable_color)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + tvArrived.setEnabled(isClickable); + if (isClickable) { + tvArrived.setTextColor(ContextCompat.getColor(AbsMogoApplication.getApp(),R.color.bus_white)); + } else { + tvArrived.setTextColor(ContextCompat.getColor(AbsMogoApplication.getApp(),R.color.bus_arrived_btn_un_clickable_color)); + } } - }); + }, UiThreadHandler.MODE.QUEUE); } /** * 隐藏滑动按钮 */ public void hideSlidePanel() { - getActivity().runOnUiThread(() -> { - slidePanelView.setVisibility(View.GONE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setVisibility(View.GONE); + } + }, UiThreadHandler.MODE.QUEUE); } public void playDI() { @@ -362,42 +381,46 @@ public abstract class BaseShuttleTabFragment { - changeAutopilotBtnView(autopilotStatus, isAnimateRunning); - }); + public void onAutopilotStatusChanged(int autopilotStatus,boolean canStartAuto) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + changeAutopilotBtnView(autopilotStatus, isAnimateRunning,canStartAuto); + } + }, UiThreadHandler.MODE.QUEUE); } - public void setAutopilotBtnStatus(int autopilotStatus) { - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE - == autopilotStatus) {//0不可用 - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable)); - ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv)); + public void setAutopilotBtnStatus(int autopilotStatus,boolean canStartAuto) { + if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == autopilotStatus) {//0不可用 + ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_disable)); + ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_runnig_tv)); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon); -// ctvAutopilotStatus.setSelected(false); ctvAutopilotStatus.setClickable(true); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg)); - + ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_start_fail); } else { - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); + ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot); if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用 -// ctvAutopilotStatus.setSelected(false); - ctvAutopilotStatus.setClickable(true); - ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv)); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg)); + ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_runnig_tv)); + if(canStartAuto){ + ctvAutopilotStatus.setClickable(true); + ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_press); + }else { + ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_disable)); + ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon); + ctvAutopilotStatus.setClickable(true); + ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_start_fail); + } } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) { ctvAutopilotStatusTv.setText(R.string.bus_loading_autopilot_runnig_tv); ctvAutopilotStatus.setClickable(true); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_2_status_bg)); -// ctvAutopilotStatus.setSelected(true); + ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_in_autopilot); } else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING == autopilotStatus){ ctvAutopilotStatusTv.setText(R.string.bus_pingxing_driver); ctvAutopilotStatus.setClickable(false); - ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.pingxingjiashi)); + ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_pxjs); } - } } @@ -405,26 +428,26 @@ public abstract class BaseShuttleTabFragment { -// ctvAutopilotStatus.setVisibility(View.GONE); -// slidePanelView.setVisibility(View.GONE); - }); } /** * 展示【自动驾驶】按钮 */ public void showAutopilotBiz() { -// getActivity().runOnUiThread(() -> { -// ctvAutopilotStatus.setVisibility(View.VISIBLE); -// }); } public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() { @@ -490,8 +506,8 @@ public abstract class BaseShuttleTabFragment { - if (stationList == null) { - // 获取小巴数据失败 - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (stationList == null) { + // 获取小巴数据失败 + return; + } + + showStationsPanel(); + showOrHideSwitchLineBtn(false); + + mLineName.setText(lineName); + mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); + // 渲染小巴路线数据 + updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); } - - showStationsPanel(); - showOrHideSwitchLineBtn(false); - - mLineName.setText(lineName); - mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); - // 渲染小巴路线数据 - updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); - }); + },UiThreadHandler.MODE.QUEUE); } private void updateBusStationStatus(List stationList, @@ -284,23 +286,23 @@ public class ShuttleFragment extends BaseShuttleTabFragment=1 代表是重试 每次到站/路线结束清空置为0 private volatile int firstStartAutopilot = 0; - private LoginService loginService; - public static OrderModel getInstance() { if (sInstance == null) { synchronized (OrderModel.class) { @@ -131,7 +132,6 @@ public class OrderModel { public void init() { mContext = AbsMogoApplication.getApp(); - loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation(); // 定位监听 CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,5,mMapLocationListener); @@ -237,8 +237,7 @@ public class OrderModel { if (list != null && list.contains(2)){ //乘客屏 AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext(),-1); - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).getBytes()); + LanSocketManager.sendMsgToClient(msg); } } @@ -265,8 +264,6 @@ public class OrderModel { // 注销定位监听 CallerChassisLocationGCJ02ListenerManager.INSTANCE.removeListener(TAG); - loginService = null; - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener( @@ -495,6 +492,10 @@ public class OrderModel { */ public void abortTask() { CallerLogger.d(M_BUS + TAG, "结束当前路线abortTask"); + if(busRoutesResult==null){ + ToastUtils.showLong("数据异常、请稍后再试"); + return; + } OrderServiceManager.abortTask(mContext, busRoutesResult.getTaskId() , new OchCommonServiceCallback() { @Override @@ -507,6 +508,7 @@ public class OrderModel { removeTipRunnables(); // 取消自驾 CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); + setTrajectoryStation(null,null,-1L); } } @@ -624,7 +626,49 @@ public class OrderModel { * @param isRestart */ private void startAutopilot(boolean isRestart, int leaveIndex) { - + //1、判断轨迹url是否可用 + if(busRoutesResult!=null){ + //根据开关和后台是否发布轨迹启动自驾 + if (FunctionBuildConfig.isPassStartAutopilotCommand + && TextUtils.isEmpty(busRoutesResult.csvFileUrl) + && TextUtils.isEmpty(busRoutesResult.csvFileUrlDPQP) + ) { + ToastUtils.showLong("无发布轨迹, 请发布后重试"); + CallerLogger.e( + TAG, "isPassStartAutopilotCommand = " + + FunctionBuildConfig.isPassStartAutopilotCommand + + "busRoutesResult.csvFileUrl = " + busRoutesResult.csvFileUrl + ); + return; + } + } + //2、6个条件判断 + if (!CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(true,0)) { + return; + } + // 3、距离轨迹15m计算 + //3、距离轨迹15m计算 + String resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long)busRoutesResult.getLineId()); + if(TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)){ + MogoLocation nextStationPoint = new MogoLocation(); + if (backgroundCurrentStationIndex < stationList.size() - 1) { + BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); + nextStationPoint.setLongitude(nextStation.getGcjLon()); + nextStationPoint.setLatitude(nextStation.getGcjLat()); + } + BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex); + MogoLocation currentStationPoint = new MogoLocation(); + currentStationPoint.setLongitude(busStationBean.getGcjLon()); + currentStationPoint.setLatitude(busStationBean.getGcjLat()); + setTrajectoryStation(currentStationPoint,nextStationPoint, (long) busRoutesResult.getLineId()); + resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long)busRoutesResult.getLineId()); + } + if(!StringUtils.isEmpty(resion)){ + ToastUtils.showShort(resion); + VoiceNotice.showNotice(resion); + return; + } + //4、ssm 给出数据 if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()) { ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + ", 请稍候重试"); @@ -642,7 +686,7 @@ public class OrderModel { return; } - CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters); + OchAutoPilotManager.startAutoPilot(parameters); CallerLogger.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + @@ -734,8 +778,7 @@ public class OrderModel { BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,busRoutesResult); TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data)); CallerLogger.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)); - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).getBytes()); + LanSocketManager.sendMsgToClient(msg); } private void pushCacheTransferData(BusRoutesResult result) { @@ -750,8 +793,7 @@ public class OrderModel { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_arrived_station_tip), arriveStation),-1); - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + LanSocketManager.sendMsgToClient(arrivedMsg); } private void sendStartStationToClient(String nextStation) { @@ -759,24 +801,18 @@ public class OrderModel { .getString(R.string.bus_leave_station_tip), nextStation),-1); - UiThreadHandler.postDelayed(()-> - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(startMsg).getBytes()),DELAY_10S); + UiThreadHandler.postDelayed(()-> LanSocketManager.sendMsgToClient(startMsg),DELAY_10S); } private void sendEndTaskToClient() { AppConnectMsg endMsg = new AppConnectMsg(false,true,mContext .getString(R.string.bus_end_task_tip),-1); - - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(endMsg).getBytes()); + LanSocketManager.sendMsgToClient(endMsg); } public void sendWriteOffNumToClient(String msg){ AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,-1); - - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(passengerMsg).getBytes()); + LanSocketManager.sendMsgToClient(passengerMsg); } /** @@ -784,11 +820,19 @@ public class OrderModel { */ public void leaveStation() { CallerLogger.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + backgroundCurrentStationIndex); + if(busRoutesResult==null){ + ToastUtils.showLong("数据异常、请稍后再试"); + return; + } String nextStationName = ""; String nextStationNameKr = ""; + MogoLocation nextStationPoint = new MogoLocation(); if (backgroundCurrentStationIndex < stationList.size() - 1) { - nextStationName = stationList.get(backgroundCurrentStationIndex + 1).getName(); - nextStationNameKr = stationList.get(backgroundCurrentStationIndex + 1).getNameKr(); + BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); + nextStationName = nextStation.getName(); + nextStationNameKr = nextStation.getNameKr(); + nextStationPoint.setLongitude(nextStation.getGcjLon()); + nextStationPoint.setLatitude(nextStation.getGcjLat()); } final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName(); String finalNextStationName = nextStationName; @@ -800,6 +844,13 @@ public class OrderModel { long writeVersion = DateTimeUtil.getCurrentTimeStamp(); leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName,finalNextStationNameKr,writeVersion); + + BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex); + MogoLocation currentStationPoint = new MogoLocation(); + currentStationPoint.setLongitude(busStationBean.getGcjLon()); + currentStationPoint.setLatitude(busStationBean.getGcjLat()); + setTrajectoryStation(currentStationPoint,nextStationPoint, (long) busRoutesResult.getLineId()); + String changeInfo = "taskId:" + busRoutesResult.getTaskId() + "--lineId:" + busRoutesResult.getLineId() + "--currentStationName:"+currentStationName+"--finalNextStationName:"+finalNextStationName; OchChainLogManager.writeChainLog("滑动出发", changeInfo, @@ -1047,7 +1098,7 @@ public class OrderModel { } CallerLogger.d(M_BUS + TAG, "单程结束===="); CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - + setTrajectoryStation(null,null,-1L); endTask(); } @@ -1135,7 +1186,7 @@ public class OrderModel { // 登出 public void logout() { MogoLocation gcj02 = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02(); - loginService.loginOut(gcj02.getLatitude(), gcj02.getLongitude()); + LoginStatusManager.loginOut(gcj02.getLatitude(), gcj02.getLongitude()); } public void triggerStartServiceEvent(boolean isRestart, boolean send) { @@ -1238,4 +1289,8 @@ public class OrderModel { return parameters; } + public void setTrajectoryStation(MogoLocation startStation,MogoLocation endStation,Long lineId){ + TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation,endStation,lineId); + } + } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt similarity index 87% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt index a48714e689..53194a5363 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt @@ -1,9 +1,8 @@ -package com.mogo.och.bus.model +package com.mogo.och.shuttle.model import com.elegant.network.utils.GsonUtil import com.mogo.aicloud.services.socket.IMogoOnMessageListener import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType @@ -15,19 +14,19 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.bus.bean.WriteOffCountResponse -import com.mogo.och.bus.bean.WriteOffPassenger -import com.mogo.och.bus.net.OrderServiceManager -import com.mogo.och.bus.util.ShuttleVoiceManager -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.DPMsgType -import com.mogo.och.common.module.bean.dpmsg.WriteOffDevicesMsg -import com.mogo.och.common.module.bean.dpmsg.WriteOffMsg -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.shuttle.bean.WriteOffCountResponse +import com.mogo.och.shuttle.bean.WriteOffPassenger +import com.mogo.och.shuttle.net.OrderServiceManager +import com.mogo.och.shuttle.util.ShuttleVoiceManager +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDevicesMsg +import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo import io.reactivex.Observable import io.reactivex.ObservableEmitter import io.reactivex.ObservableOnSubscribe @@ -54,7 +53,9 @@ object TicketModel : IReceivedMsgListener, IMogoOnMessageListener{ + object : OchCommonServiceCallback { override fun onSuccess(data: WriteOffCountResponse?) { data?.data?.let { emitterMain?.onNext(it) diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java similarity index 87% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java index 0bea27008e..d621303976 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java @@ -1,16 +1,16 @@ -package com.mogo.och.bus.net; +package com.mogo.och.shuttle.net; import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.bus.bean.BusCloseTaskRequest; -import com.mogo.och.bus.bean.BusOrdersResponse; -import com.mogo.och.bus.bean.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.BusQueryLinesResponse; -import com.mogo.och.bus.bean.BusQueryLineStationsRequest; -import com.mogo.och.bus.bean.BusRoutesResponse; -import com.mogo.och.bus.bean.QueryLeaveAwayPassengersRequest; -import com.mogo.och.bus.bean.QueryLeaveAwayPassengersResponse; -import com.mogo.och.bus.bean.BusResetDrivingLineRequest; -import com.mogo.och.bus.bean.BusUpdateSiteStatusRequest; -import com.mogo.och.bus.bean.WriteOffCountResponse; +import com.mogo.och.shuttle.bean.BusCloseTaskRequest; +import com.mogo.och.shuttle.bean.BusOrdersResponse; +import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse; +import com.mogo.och.shuttle.bean.BusQueryLinesResponse; +import com.mogo.och.shuttle.bean.BusQueryLineStationsRequest; +import com.mogo.och.shuttle.bean.BusRoutesResponse; +import com.mogo.och.shuttle.bean.QueryLeaveAwayPassengersRequest; +import com.mogo.och.shuttle.bean.QueryLeaveAwayPassengersResponse; +import com.mogo.och.shuttle.bean.BusResetDrivingLineRequest; +import com.mogo.och.shuttle.bean.BusUpdateSiteStatusRequest; +import com.mogo.och.shuttle.bean.WriteOffCountResponse; import io.reactivex.Observable; import retrofit2.http.Body; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt similarity index 86% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt index 38d1bf28ef..ccc455ef95 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt @@ -1,16 +1,26 @@ -package com.mogo.och.bus.net +package com.mogo.och.shuttle.net import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.och.bus.bean.* -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.transformIoTry -import com.mogo.och.common.module.biz.network.interceptor.transformTry +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformIoTry +import com.mogo.och.common.module.network.interceptor.transformTry +import com.mogo.och.shuttle.bean.BusCloseTaskRequest +import com.mogo.och.shuttle.bean.BusOrdersResponse +import com.mogo.och.shuttle.bean.BusQueryLineStationsRequest +import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse +import com.mogo.och.shuttle.bean.BusQueryLinesResponse +import com.mogo.och.shuttle.bean.BusResetDrivingLineRequest +import com.mogo.och.shuttle.bean.BusRoutesResponse +import com.mogo.och.shuttle.bean.BusUpdateSiteStatusRequest +import com.mogo.och.shuttle.bean.QueryLeaveAwayPassengersRequest +import com.mogo.och.shuttle.bean.QueryLeaveAwayPassengersResponse +import com.mogo.och.shuttle.bean.WriteOffCountResponse /** * @author: wangmingjun diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java similarity index 73% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java index 9411be65fd..1830692e7e 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.presenter; +package com.mogo.och.shuttle.presenter; import android.os.Looper; @@ -7,12 +7,12 @@ import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.bus.bean.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.BusQueryLinesResponse; -import com.mogo.och.bus.callback.IBusLinesCallback; -import com.mogo.och.bus.model.BusLineModel; -import com.mogo.och.bus.model.OrderModel; -import com.mogo.och.bus.ui.BusSwitchLineView; +import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse; +import com.mogo.och.shuttle.bean.BusQueryLinesResponse; +import com.mogo.och.shuttle.callback.IBusLinesCallback; +import com.mogo.och.shuttle.model.BusLineModel; +import com.mogo.och.shuttle.model.OrderModel; +import com.mogo.och.shuttle.ui.BusSwitchLineView; import java.util.concurrent.TimeUnit; @@ -56,13 +56,27 @@ public class BusLinePresenter extends Presenter implements IB @Override public void onBusLinesChange(BusQueryLinesResponse lines) { - runOnUIThread(() -> mView.onBusLinesChange(lines)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onBusLinesChange(lines); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onChangeLineIdSuccess() { OrderModel.getInstance().clearBusStationDatas(); - runOnUIThread(() -> mView.onChangeLineIdSuccess()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onChangeLineIdSuccess(); + } + } + }, UiThreadHandler.MODE.QUEUE); } public void queryBusLines(){ @@ -105,6 +119,8 @@ public class BusLinePresenter extends Presenter implements IB @Override public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) { - mView.onBusLineTasks(o,position,autoRefresh); + if(mView!=null) { + mView.onBusLineTasks(o,position,autoRefresh); + } } } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusModelLoopManager.java similarity index 78% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusModelLoopManager.java index bab7fc443b..b72fbf91e5 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusModelLoopManager.java @@ -1,17 +1,6 @@ -package com.mogo.och.bus.presenter; +package com.mogo.och.shuttle.presenter; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.bus.constant.BusConst; -import com.mogo.och.bus.model.OrderModel; - -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; /** * Created on 2021/11/22 diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java similarity index 61% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java index 5fddc0b754..76a4ceb8a0 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.presenter; +package com.mogo.och.shuttle.presenter; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; @@ -13,24 +13,25 @@ import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; 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.UiThreadHandler; -import com.mogo.och.common.module.manager.autopilotmanager.autopilot.ArrivedStation; -import com.mogo.och.common.module.manager.autopilotmanager.autopilot.IOchAutopilotStatusListener; -import com.mogo.och.common.module.manager.autopilotmanager.autopilot.OchAutoPilotStatusListenerManager; +import com.mogo.och.common.module.biz.login.LoginStatusEnum; +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener; +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager; import com.mogo.och.data.bean.BusStationBean; -import com.mogo.och.bus.callback.IBusADASStatusCallback; -import com.mogo.och.bus.callback.IBusControllerStatusCallback; -import com.mogo.och.bus.callback.IRefreshBusStationsCallback; -import com.mogo.och.bus.callback.ISlidePannelHideCallback; -import com.mogo.och.bus.fragment.ShuttleFragment; -import com.mogo.och.bus.model.OrderModel; -import com.mogo.och.bus.util.BusTrajectoryManager; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.callback.ILoginCallback; -import com.mogo.och.common.module.biz.constant.LoginStatusManager; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; +import com.mogo.och.shuttle.callback.IBusADASStatusCallback; +import com.mogo.och.shuttle.callback.IBusControllerStatusCallback; +import com.mogo.och.shuttle.callback.IRefreshBusStationsCallback; +import com.mogo.och.shuttle.callback.ISlidePannelHideCallback; +import com.mogo.och.shuttle.fragment.ShuttleFragment; +import com.mogo.och.shuttle.model.OrderModel; +import com.mogo.och.shuttle.util.BusTrajectoryManager; +import com.mogo.och.common.module.biz.login.ILoginCallback; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import com.zhjt.mogo.adas.data.AdasConstants; @@ -59,9 +60,9 @@ public class BusPresenter extends Presenter public BusPresenter(ShuttleFragment view) { super(view); //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 - OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG,this); OrderModel.getInstance().init(); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); + } @Override @@ -84,6 +85,8 @@ public class BusPresenter extends Presenter OrderModel.getInstance().setSlidePanelHideCallback(this); OrderModel.getInstance().setControllerStatusCallback(this); OrderModel.getInstance().setAdasStatusCallback(this); + OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG,this); + LoginStatusManager.INSTANCE.addListener(TAG,this); } public void releaseListener() { @@ -92,6 +95,8 @@ public class BusPresenter extends Presenter OrderModel.getInstance().setControllerStatusCallback(null); OrderModel.getInstance().setAdasStatusCallback(null); OCHAdasAbilityManager.getInstance().release(); + OchAutoPilotStatusListenerManager.INSTANCE.removeListener(TAG); + LoginStatusManager.INSTANCE.removeListener(TAG); } public void abortTask() { @@ -126,20 +131,40 @@ public class BusPresenter extends Presenter mCurrentStation = arrivingOrArrivedIndex -1; } CallerLogger.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation); - if (mView != null) { - runOnUIThread(() -> mView.updateBusTaskStatus(lineName,lineTime, - stationList, arrivingOrArrivedIndex, isArrived)); - } + + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateBusTaskStatus(lineName,lineTime, + stationList, arrivingOrArrivedIndex, isArrived); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void updateEmptyUi() { - runOnUIThread(() -> mView.updateLineEmptyUI()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateLineEmptyUI(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void clearBusStationsMarkers() { - runOnUIThread(() -> mView.clearBusStationsMarkers()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.clearBusStationsMarkers(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override @@ -160,10 +185,6 @@ public class BusPresenter extends Presenter OrderModel.getInstance().onArriveAt(arrivedStation,type); } - @Override - public void onAutopilotSNRequest(@NonNull MessagePad.BasicInfoReq basicInfoReq) { - } - @Override public void onAutopilotStatusResponse(int state) { switch (state) { @@ -180,36 +201,65 @@ public class BusPresenter extends Presenter return; } // 改变UI自动驾驶状态 - runOnUIThread(() -> mView.onAutopilotStatusChanged(state)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0)); + } + } + }, UiThreadHandler.MODE.QUEUE); break; case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING: OrderModel.getInstance().triggerStartServiceEvent( OrderModel.getInstance().isRestartAutopilot(), true); // 改变UI自动驾驶状态 - runOnUIThread(() -> mView.onAutopilotStatusChanged(state)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0)); + } + } + }, UiThreadHandler.MODE.QUEUE); break; default: - runOnUIThread(() -> mView.onAutopilotEnableChange(false)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onAutopilotEnableChange(false); + } + } + }, UiThreadHandler.MODE.QUEUE); break; } } @Override public void onCarLocationChanged(MogoLocation location) { - if (null != location) { - runOnUIThread(() -> mView.updateSpeedView(location.getGnssSpeed())); - } +// if (null != location) { +// runOnUIThread(() -> mView.updateSpeedView(location.getGnssSpeed())); +// } } @Override public void startOpenAutopilot() { //非美化模式下启动动画 - runOnUIThread(() -> mView.startAutopilotAnimation()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.startAutopilotAnimation(); + } + } + }, UiThreadHandler.MODE.QUEUE); //中间站点再次开启自驾时, 自动驾驶状态是2未改变, 此次鹰眼底层不再返给业务,需优化按钮动画显示 if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - == CallerAutoPilotStatusListenerManager.INSTANCE.getState()){ - mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState()); + == CallerAutoPilotStatusListenerManager.INSTANCE.getState()&&mView!=null){ + mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), + CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0)); } } @@ -231,31 +281,15 @@ public class BusPresenter extends Presenter onAutopilotStatusResponse(status); } - @Override - public void onAutopilotRouteLineId(long lineId) { + @Override + public void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { + BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId); } @Override - public void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo) { - BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo); - } - - @Override - public void onAutopilotIpcConnectStatusChanged(@NonNull AdasConstants.IpcConnectionStatus status, @Nullable String reason) { - } - - @Override - public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { - - } - - @Override - public void onSystemStatus(@NonNull SsmInfo.SsmStatusInf statusInf) { - } - - @Override - public void loginSuccess(DriverStatusQueryRespBean data) { + public void onStatusChange(LoginStatusEnum currentStatus) { + ILoginCallback.super.onStatusChange(currentStatus); CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); if(LoginStatusManager.isLogin()){ // OrderModel.getInstance().queryBusRoutes(); @@ -264,27 +298,34 @@ public class BusPresenter extends Presenter BusTrajectoryManager.getInstance().stopTrajReqLoop(); BusTrajectoryManager.getInstance().stopTrajReqLoop(); clearBusStationsMarkers(); - mView.hideSlidePanel(); + if(mView!=null) { + mView.hideSlidePanel(); + } OrderModel.getInstance().closeBeautificationMode(); } } - @Override - public void loginFail(boolean isLogin) { - - } - @Override public void onStartAdasFailure() { - runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.stopAnimAndUpdateBtnStatus(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void onAutopilotDockerInfo(@NonNull String dockerVersion) { - } - - @Override - public void onSsmReceiveTimeout(boolean isTimeout) { - + public void canStartAutopilot(boolean canStart) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStart); + } + } + }, UiThreadHandler.MODE.QUEUE); } } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/receiver/TestBusBroadcastReceiver.java similarity index 92% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/receiver/TestBusBroadcastReceiver.java index 3884897d04..c3c4758be8 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/receiver/TestBusBroadcastReceiver.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.receiver; +package com.mogo.och.shuttle.receiver; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; @@ -7,7 +7,7 @@ import android.content.Context; import android.content.Intent; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.bus.constant.BusConst; +import com.mogo.och.shuttle.constant.BusConst; /** * 测试小巴车的场景 diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt similarity index 92% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt index ed9f463413..9f6c121f07 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui +package com.mogo.och.shuttle.ui import android.content.Context import android.util.AttributeSet @@ -6,9 +6,9 @@ import android.view.LayoutInflater import android.widget.ImageView import android.widget.LinearLayout import androidx.core.content.ContextCompat -import com.mogo.och.bus.R +import com.mogo.och.shuttle.R import com.mogo.och.common.module.utils.BlinkAnimationUtil -import kotlinx.android.synthetic.main.bus_stations_common_item.view.* +import kotlinx.android.synthetic.main.shuttle_stations_common_item.view.* /** * @author: wangmingjun @@ -21,7 +21,7 @@ class BusStationCommonItem @JvmOverloads constructor( ) : LinearLayout(context, attrs, defStyleAttr){ init { - LayoutInflater.from(context).inflate(R.layout.bus_stations_common_item,this,true) + LayoutInflater.from(context).inflate(R.layout.shuttle_stations_common_item,this,true) } fun setStationName(name: String){ diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt similarity index 93% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt index 412574bdc4..a9fddd0ff4 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui +package com.mogo.och.shuttle.ui import android.graphics.Point import android.os.Bundle @@ -13,14 +13,14 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.mogo.commons.mvp.MvpActivity import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.och.bus.presenter.BusLinePresenter -import com.mogo.och.bus.ui.adapter.SwitchLineAdapter -import com.mogo.och.bus.bean.BusQueryLinesResponse -import com.mogo.och.bus.ui.adapter.OpenItemAnimator +import com.mogo.och.shuttle.presenter.BusLinePresenter +import com.mogo.och.shuttle.ui.adapter.SwitchLineAdapter +import com.mogo.och.shuttle.bean.BusQueryLinesResponse +import com.mogo.och.shuttle.ui.adapter.OpenItemAnimator import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.bus.R -import com.mogo.och.bus.bean.BusQueryLineTaskResponse +import com.mogo.och.shuttle.R +import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse import java.util.ArrayList /** @@ -42,7 +42,7 @@ class BusSwitchLineActivity : MvpActivity private lateinit var linearLayoutManager:LinearLayoutManager private val mData: MutableList = ArrayList() override fun getLayoutId(): Int { - return R.layout.activity_bus_switch_line + return R.layout.shuttle_switch_line } override fun createPresenter(): BusLinePresenter { @@ -80,7 +80,7 @@ class BusSwitchLineActivity : MvpActivity ) mLinesListView.setAdapter(mAdapter) //设置item 点击事件 - mAdapter.setOnLineItemClickListener(object :SwitchLineAdapter.LineItemClickListener{ + mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{ override fun onItemClick(position: Int, close: Boolean) { mPresenter?.queryBusLineTasks(mData[position].lineId, position, close) } @@ -146,7 +146,7 @@ class BusSwitchLineActivity : MvpActivity finish() } - override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int,autoRefresh:Boolean) { + override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int, autoRefresh:Boolean) { val result = mData[position] if (result.taskList == null) { result.taskList = ArrayList() diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java similarity index 68% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java index 6646068909..5a4d85d312 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java @@ -1,8 +1,8 @@ -package com.mogo.och.bus.ui; +package com.mogo.och.shuttle.ui; import com.mogo.commons.mvp.IView; -import com.mogo.och.bus.bean.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.BusQueryLinesResponse; +import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse; +import com.mogo.och.shuttle.bean.BusQueryLinesResponse; /** * @author: wangmingjun diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/ShuttleTapPositionView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/ShuttleTapPositionView.java similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/ShuttleTapPositionView.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/ShuttleTapPositionView.java index 12ba52cda7..bf24d1bb0b 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/ShuttleTapPositionView.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/ShuttleTapPositionView.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui; +package com.mogo.och.shuttle.ui; import android.content.Context; import android.content.res.TypedArray; @@ -12,7 +12,7 @@ import androidx.constraintlayout.widget.ConstraintLayout; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; -import com.mogo.och.bus.R; +import com.mogo.och.shuttle.R; import org.jetbrains.annotations.NotNull; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/ShuttleTrafficDataView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/ShuttleTrafficDataView.java similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/ShuttleTrafficDataView.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/ShuttleTrafficDataView.java index 56c48321b4..199114506c 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/ShuttleTrafficDataView.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/ShuttleTrafficDataView.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui; +package com.mogo.och.shuttle.ui; import static com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING; @@ -24,9 +24,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisBrakeStateListen import com.mogo.eagle.core.function.call.autopilot.CallerChassisGearStateListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisThrottleStateListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager; -import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView; import com.mogo.eagle.core.utilcode.util.ThreadUtils; -import com.mogo.och.bus.R; +import com.mogo.och.shuttle.R; import org.jetbrains.annotations.NotNull; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java similarity index 99% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java index 71e18d6523..bc8596d255 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui.adapter; +package com.mogo.och.shuttle.ui.adapter; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt similarity index 96% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt index 0bf345177a..19738350eb 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui.adapter +package com.mogo.och.shuttle.ui.adapter import android.content.Context import android.view.LayoutInflater @@ -9,9 +9,9 @@ import androidx.appcompat.widget.AppCompatTextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.mogo.och.bus.R -import com.mogo.och.bus.bean.BusQueryLinesResponse -import com.mogo.och.bus.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder +import com.mogo.och.shuttle.R +import com.mogo.och.shuttle.bean.BusQueryLinesResponse +import com.mogo.och.shuttle.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder import kotlin.text.StringBuilder /** @@ -33,7 +33,7 @@ class SwitchLineAdapter( viewType: Int ): SwitchLineViewHolder { val view = LayoutInflater.from(mContext).inflate( - R.layout.bus_switch_line_list_item, parent, false + R.layout.shuttle_switch_line_list_item, parent, false ) return SwitchLineViewHolder(view) } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt similarity index 89% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt index 8183e0efd4..95d5badfb8 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui.adapter +package com.mogo.och.shuttle.ui.adapter import android.content.Context import android.view.LayoutInflater @@ -7,9 +7,9 @@ import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.utilcode.util.TimeUtils -import com.mogo.och.bus.R -import com.mogo.och.bus.bean.BusQueryLineTaskResponse -import com.mogo.och.bus.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder +import com.mogo.och.shuttle.R +import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse +import com.mogo.och.shuttle.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder /** * 路线列表adapter @@ -22,7 +22,7 @@ class SwitchLineTaskAdapter( ) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineTaskViewHolder { val view = LayoutInflater.from(mContext).inflate( - R.layout.bus_switch_line_list_task_item, parent, false + R.layout.shuttle_switch_line_list_task_item, parent, false ) return SwitchLineTaskViewHolder(view) } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffView.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt similarity index 95% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffView.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt index 2f877f4691..b0d7b3851a 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffView.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.ui.writeoff +package com.mogo.och.shuttle.ui.writeoff import android.content.Context import android.util.AttributeSet @@ -7,7 +7,7 @@ import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner -import com.mogo.och.bus.R +import com.mogo.och.shuttle.R import kotlinx.android.synthetic.main.shuttle_wirte_off_view.view.tv_write_off_count class WriteOffView : ConstraintLayout, WriteOffViewModel.IwriteOffViewCallback { diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffViewModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt similarity index 93% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffViewModel.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt index 95e4f4993d..27953a4012 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffViewModel.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt @@ -1,11 +1,11 @@ -package com.mogo.och.bus.ui.writeoff +package com.mogo.och.shuttle.ui.writeoff import androidx.lifecycle.ViewModel import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.bus.R -import com.mogo.och.bus.model.TicketModel +import com.mogo.och.shuttle.R +import com.mogo.och.shuttle.model.TicketModel import com.mogo.och.common.module.utils.RxUtils import io.reactivex.Observable import io.reactivex.Observer diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusAnalyticsManager.java similarity index 97% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusAnalyticsManager.java index 789e8491fd..b7a47fc233 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusAnalyticsManager.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.util; +package com.mogo.och.shuttle.util; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; @@ -13,8 +13,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener 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.bus.constant.BusConst; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; +import com.mogo.och.shuttle.constant.BusConst; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import java.util.HashMap; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusSendTripInfoManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusSendTripInfoManager.kt similarity index 97% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusSendTripInfoManager.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusSendTripInfoManager.kt index b4da61f56f..51fb81a0d0 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusSendTripInfoManager.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusSendTripInfoManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.util +package com.mogo.och.shuttle.util import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java similarity index 95% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java index 19e5310c91..2154ea4672 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.util; +package com.mogo.och.shuttle.util; import androidx.annotation.Nullable; @@ -6,11 +6,11 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.GsonUtils; -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager; +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; import com.mogo.och.data.bean.BusRoutesResult; -import com.mogo.och.bus.constant.BusConst; -import com.mogo.och.bus.model.OrderModel; -import com.mogo.och.common.module.biz.constant.LoginStatusManager; +import com.mogo.och.shuttle.constant.BusConst; +import com.mogo.och.shuttle.model.OrderModel; +import com.mogo.och.common.module.biz.login.LoginStatusManager; import java.util.concurrent.TimeUnit; @@ -63,6 +63,10 @@ public class BusTrajectoryManager { } } + public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) { + onAutopilotGuardian(guardianInfo); + } + /** * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) * @param guardianInfo diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/ShuttleVoiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt similarity index 96% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/ShuttleVoiceManager.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt index efbbd2d883..76198fdd0f 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/ShuttleVoiceManager.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt @@ -1,10 +1,10 @@ -package com.mogo.och.bus.util +package com.mogo.och.shuttle.util import com.mogo.commons.AbsMogoApplication import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.och.bus.R +import com.mogo.och.shuttle.R import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.tts.base.LangTtsEntity import com.mogo.tts.base.LanguageType @@ -13,7 +13,7 @@ import java.util.ArrayList object ShuttleVoiceManager { fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { return } val context = AbsMogoApplication.getApp() diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt similarity index 89% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt index 0f31f1a06f..d396c664ca 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.view +package com.mogo.och.shuttle.view import android.content.Context import android.os.Bundle @@ -9,7 +9,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.view.MapBizView import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.map.uicontroller.IMogoMapUIController -import com.mogo.och.bus.R +import com.mogo.och.shuttle.R /** * 魔戒蓝牙控件 @@ -24,9 +24,9 @@ class BizMapView @JvmOverloads constructor( private lateinit var mapBizView: MapBizView init { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { LayoutInflater.from(context).inflate(R.layout.shuttle_m2_bizmap_map, this, true) - }else if(AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){ + }else if(AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){ LayoutInflater.from(context).inflate(R.layout.shuttle_jl_bizmap_map, this, true) }else{ LayoutInflater.from(context).inflate(R.layout.shuttle_jl_bizmap_map, this, true) diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/BusArcView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BusArcView.java similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/BusArcView.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BusArcView.java index 5be7429728..dc62425463 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/BusArcView.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BusArcView.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.view; +package com.mogo.och.shuttle.view; import android.animation.ValueAnimator; import android.content.Context; @@ -15,7 +15,7 @@ import android.view.View; import androidx.annotation.Nullable; -import com.mogo.och.bus.R; +import com.mogo.och.shuttle.R; /** * created by wujifei on 2021/3/24 16:20 diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/NoTouchConstraintLayout.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/NoTouchConstraintLayout.java similarity index 96% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/NoTouchConstraintLayout.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/NoTouchConstraintLayout.java index 558a515bd9..b797efe5a8 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/NoTouchConstraintLayout.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/NoTouchConstraintLayout.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.view; +package com.mogo.och.shuttle.view; import android.content.Context; import android.util.AttributeSet; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java index 1c6a0823bc..87c355ceb5 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.view; +package com.mogo.och.shuttle.view; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; @@ -22,12 +22,11 @@ import android.view.animation.DecelerateInterpolator; import androidx.annotation.Nullable; import com.mogo.commons.AbsMogoApplication; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ConvertUtils; import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.bus.R; -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager; +import com.mogo.och.shuttle.R; +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; import me.jessyan.autosize.AutoSizeConfig; import me.jessyan.autosize.utils.AutoSizeUtils; diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/VerticalDashLineView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java similarity index 98% rename from OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/VerticalDashLineView.java rename to OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java index 250d4a41b6..2b0fdfcf6d 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/view/VerticalDashLineView.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.view; +package com.mogo.och.shuttle.view; import android.content.Context; import android.graphics.Canvas; diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_check.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_check.png diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_nor.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_autopilot_status_bg_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_notice_box_bg.9.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_notice_box_bg.9.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_disable_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_disable_autopilot_icon.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_dot_line.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_ic_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_ic_autopilot.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_icon_arrived_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_icon_arrived_station.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_icon_arriving_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_icon_arriving_station.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_icon_not_arrive_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_icon_not_arrive_station.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_light_green_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_light_green_nor.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_light_red_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_light_red_nor.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_lightyellow_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_lightyellow_nor.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg_1.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg_1.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_loading_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_loading_autopilot_icon.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_och_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_och_dot_line.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_right_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_right_autopilot_icon.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_selected_btn.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_selected_btn.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_setting_btn_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_setting_btn_bg.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_close.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_switch_line_close.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_map_long.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_switch_map_long.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_map_medium.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_switch_map_medium.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_unselect_btn.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_unselect_btn.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png diff --git a/OCH/bus/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable/end_maker_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/end_maker_icon.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_ai_normal.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_ai_normal.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_ai_select.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_ai_select.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_arrow_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_arrow_blue_bus.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_arrow_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_arrow_green_bus.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_arrow_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_arrow_grey_bus.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_bad_case_normal.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_bad_case_normal.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_bad_case_select.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_bad_case_select.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_no_bus_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_no_bus_line.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_point_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_point_blue_bus.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_point_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_point_green_bus.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_point_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_point_grey_bus.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png diff --git a/OCH/bus/driver/src/main/res/drawable/icon_station_start_end.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/icon_station_start_end.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png diff --git a/OCH/bus/driver/src/main/res/drawable/no_order_data.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/no_order_data.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png diff --git a/OCH/bus/driver/src/main/res/drawable/press_start_status.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/press_start_status.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_traffic_data_speed.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_traffic_data_speed.png similarity index 100% rename from OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_traffic_data_speed.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_traffic_data_speed.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_write_off_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_write_off_bg.png new file mode 100755 index 0000000000..de9b6c49b7 Binary files /dev/null and b/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_write_off_bg.png differ diff --git a/OCH/bus/driver/src/main/res/drawable/start_failure.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/start_failure.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/start_failure.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/start_failure.png diff --git a/OCH/bus/driver/src/main/res/drawable/start_maker_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/start_maker_icon.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/start_maker_icon.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/start_maker_icon.png diff --git a/OCH/bus/driver/src/main/res/drawable/start_success.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/start_success.png similarity index 100% rename from OCH/bus/driver/src/main/res/drawable/start_success.png rename to OCH/shuttle/driver/src/main/res/drawable-nodpi/start_success.png diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png deleted file mode 100644 index 75c26c3d71..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png deleted file mode 100644 index 927296d690..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png deleted file mode 100644 index 8b4b579b56..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png deleted file mode 100644 index 170f254cd1..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_dot_line.png deleted file mode 100644 index 186001352c..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_dot_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png deleted file mode 100644 index be978145dc..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png deleted file mode 100644 index 8a065b66dd..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png deleted file mode 100644 index 4ed57a0e30..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png deleted file mode 100644 index e0bb24c526..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png deleted file mode 100644 index bc9fed952d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png deleted file mode 100644 index 8732508ded..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png deleted file mode 100644 index bae01408fd..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png deleted file mode 100755 index 3166d20e37..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png deleted file mode 100755 index 09a9c252da..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png deleted file mode 100644 index f21a1081f1..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png deleted file mode 100644 index a720a532ea..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png deleted file mode 100644 index cc2b18083d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png deleted file mode 100644 index 3f05565483..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png deleted file mode 100644 index ba41bf3a53..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png deleted file mode 100644 index 370b61de38..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png deleted file mode 100755 index cf3e5a3778..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png deleted file mode 100755 index bdc2725468..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png deleted file mode 100644 index 0114bb4f2b..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png deleted file mode 100644 index 0c8988acb3..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png deleted file mode 100755 index e98738b192..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_select.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_select.png deleted file mode 100755 index d3e0107c02..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_ai_select.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png deleted file mode 100755 index 026c36086f..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png deleted file mode 100755 index 06bebc7013..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png deleted file mode 100755 index f4f9b2bca2..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case_normal.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case_normal.png deleted file mode 100755 index c0a978fc2b..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case_normal.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case_select.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case_select.png deleted file mode 100755 index ebacf3a11a..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_bad_case_select.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png deleted file mode 100755 index fc20dca73c..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png deleted file mode 100755 index dc4c4f6f0d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png deleted file mode 100755 index ed3b871338..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png deleted file mode 100755 index d43e34bb26..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_write_off_bg.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_write_off_bg.png deleted file mode 100755 index d4d1eac25f..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_write_off_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml index 21c3611ffe..47ca8c7d4b 100644 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml +++ b/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml @@ -1,8 +1,8 @@ - + - + diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png deleted file mode 100644 index 75c26c3d71..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png deleted file mode 100644 index 927296d690..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png b/OCH/shuttle/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png deleted file mode 100644 index 8b4b579b56..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_disable_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable/bus_disable_autopilot_icon.png deleted file mode 100644 index 170f254cd1..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_disable_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable/bus_dot_line.png deleted file mode 100644 index 186001352c..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_dot_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_ic_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable/bus_ic_autopilot.png deleted file mode 100644 index be978145dc..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_ic_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_icon_arrived_station.png b/OCH/shuttle/driver/src/main/res/drawable/bus_icon_arrived_station.png deleted file mode 100644 index 8a065b66dd..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_icon_arrived_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_icon_arriving_station.png b/OCH/shuttle/driver/src/main/res/drawable/bus_icon_arriving_station.png deleted file mode 100644 index 4ed57a0e30..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_icon_arriving_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_icon_not_arrive_station.png b/OCH/shuttle/driver/src/main/res/drawable/bus_icon_not_arrive_station.png deleted file mode 100644 index e0bb24c526..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_icon_not_arrive_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_light_green_nor.png b/OCH/shuttle/driver/src/main/res/drawable/bus_light_green_nor.png deleted file mode 100644 index bc9fed952d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_light_green_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_light_red_nor.png b/OCH/shuttle/driver/src/main/res/drawable/bus_light_red_nor.png deleted file mode 100644 index 8732508ded..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_light_red_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_lightyellow_nor.png b/OCH/shuttle/driver/src/main/res/drawable/bus_lightyellow_nor.png deleted file mode 100644 index bae01408fd..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_lightyellow_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_line_panel_bg_1.png b/OCH/shuttle/driver/src/main/res/drawable/bus_line_panel_bg_1.png deleted file mode 100755 index 09a9c252da..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_line_panel_bg_1.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_loading_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable/bus_loading_autopilot_icon.png deleted file mode 100644 index f21a1081f1..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_loading_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_och_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable/bus_och_dot_line.png deleted file mode 100644 index a720a532ea..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_och_dot_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_right_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable/bus_right_autopilot_icon.png deleted file mode 100644 index cc2b18083d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_right_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_selected_btn.png b/OCH/shuttle/driver/src/main/res/drawable/bus_selected_btn.png deleted file mode 100644 index 3f05565483..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_selected_btn.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_setting_btn_bg.png b/OCH/shuttle/driver/src/main/res/drawable/bus_setting_btn_bg.png deleted file mode 100644 index ba41bf3a53..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_setting_btn_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_close.png b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_close.png deleted file mode 100644 index 370b61de38..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_close.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_long.png b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_long.png deleted file mode 100755 index cf3e5a3778..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_long.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_medium.png b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_medium.png deleted file mode 100755 index bdc2725468..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_medium.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_unselect_btn.png b/OCH/shuttle/driver/src/main/res/drawable/bus_unselect_btn.png deleted file mode 100644 index 0114bb4f2b..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_unselect_btn.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png deleted file mode 100644 index 0c8988acb3..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_ai_normal.png b/OCH/shuttle/driver/src/main/res/drawable/icon_ai_normal.png deleted file mode 100755 index e98738b192..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_ai_normal.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_ai_select.png b/OCH/shuttle/driver/src/main/res/drawable/icon_ai_select.png deleted file mode 100755 index d3e0107c02..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_ai_select.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_blue_bus.png deleted file mode 100755 index 026c36086f..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_blue_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_green_bus.png deleted file mode 100755 index 06bebc7013..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_green_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_grey_bus.png deleted file mode 100755 index f4f9b2bca2..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_arrow_grey_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_bad_case_normal.png b/OCH/shuttle/driver/src/main/res/drawable/icon_bad_case_normal.png deleted file mode 100755 index c0a978fc2b..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_bad_case_normal.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_bad_case_select.png b/OCH/shuttle/driver/src/main/res/drawable/icon_bad_case_select.png deleted file mode 100755 index ebacf3a11a..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_bad_case_select.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_no_bus_line.png b/OCH/shuttle/driver/src/main/res/drawable/icon_no_bus_line.png deleted file mode 100755 index fc20dca73c..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_no_bus_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_point_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable/icon_point_blue_bus.png deleted file mode 100755 index dc4c4f6f0d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_point_blue_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_point_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable/icon_point_green_bus.png deleted file mode 100755 index ed3b871338..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_point_green_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/icon_point_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable/icon_point_grey_bus.png deleted file mode 100755 index d43e34bb26..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/icon_point_grey_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml index f1ec45407e..6d417a595b 100644 --- a/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml +++ b/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:layout_marginTop="@dimen/dp_72"> - @@ -19,22 +19,30 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> + + + + + + + + + + + + + + + + + - - - - + app:layout_constraintTop_toTopOf="parent"/> - + android:layout_width="@dimen/dp_618" + android:layout_height="@dimen/dp_177"/> - + \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/layout/fragment_och_bus.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_fragment_och.xml similarity index 94% rename from OCH/shuttle/driver/src/main/res/layout/fragment_och_bus.xml rename to OCH/shuttle/driver/src/main/res/layout/shuttle_fragment_och.xml index e9b705fa75..e5b1c21ffb 100644 --- a/OCH/shuttle/driver/src/main/res/layout/fragment_och_bus.xml +++ b/OCH/shuttle/driver/src/main/res/layout/shuttle_fragment_och.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/module_och_bus_order_status_stationInfo" - android:layout_width="@dimen/dp_587" + android:layout_width="@dimen/dp_616" android:layout_height="wrap_content" android:paddingBottom="@dimen/dp_28" android:background="@drawable/bus_line_panel_bg" @@ -66,7 +66,7 @@ app:layout_constraintRight_toRightOf="@+id/line1" app:layout_constraintTop_toBottomOf="@+id/line1" /> - - - - diff --git a/OCH/shuttle/driver/src/main/res/layout/bus_switch_line_list_item.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_item.xml similarity index 100% rename from OCH/shuttle/driver/src/main/res/layout/bus_switch_line_list_item.xml rename to OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_item.xml diff --git a/OCH/shuttle/driver/src/main/res/layout/bus_switch_line_list_task_item.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_task_item.xml similarity index 100% rename from OCH/shuttle/driver/src/main/res/layout/bus_switch_line_list_task_item.xml rename to OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_task_item.xml diff --git a/OCH/shuttle/driver/src/main/res/layout/bus_test_bar_view.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_test_bar_view.xml similarity index 100% rename from OCH/shuttle/driver/src/main/res/layout/bus_test_bar_view.xml rename to OCH/shuttle/driver/src/main/res/layout/shuttle_test_bar_view.xml diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_traffic_data.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_traffic_data.xml index abbad9395d..9b81f97808 100644 --- a/OCH/shuttle/driver/src/main/res/layout/shuttle_traffic_data.xml +++ b/OCH/shuttle/driver/src/main/res/layout/shuttle_traffic_data.xml @@ -45,7 +45,7 @@ app:layout_constraintRight_toRightOf="@+id/speedImage" app:layout_constraintTop_toTopOf="parent" /> - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/MogoOCHShuttlePassenger.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/MogoOCHShuttlePassenger.kt deleted file mode 100644 index 4a3719d191..0000000000 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/MogoOCHShuttlePassenger.kt +++ /dev/null @@ -1,107 +0,0 @@ -package com.mogo.och.shuttle.passenger - -import android.content.Context -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity -import androidx.fragment.app.FragmentManager -import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider -import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.stepInDayMode -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils -import com.mogo.och.shuttle.passenger.constant.BusPassengerConst -import com.mogo.och.common.module.wigets.media.MediaPlayerActivity -import com.mogo.och.shuttle.passenger.model.TicketModel -import com.mogo.och.shuttle.passenger.ui.BusPassengerRouteFragment -import com.mogo.och.shuttle.passenger.ui.PM2BaseFragment - -/** - * 网约车-Bus-乘客端 - * - * Created on 2022/3/29 - */ -@Route(path = BusPassengerConst.PATH) -class MogoOCHShuttlePassenger : IMoGoFunctionProvider { - private var mActivity: FragmentActivity? = null - private var mContainerId = 0 - private var mPM2Fragment: Fragment? = null - - override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? { - mActivity = activity - mContainerId = containerId!! - showFragment() - if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { - mActivity?.let { - MultiDisplayUtils.startActWithSecond(it, MediaPlayerActivity::class.java) - } - } - TicketModel.load() - return null - } - - override val functionName: String - get() = "och-bus-passenger-m2" - - override fun onDestroy() { - // 若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 - mActivity?.finish() - } - - override fun init(context: Context) { - } - - /** - * 进入鹰眼模式,设置手势缩放地图失效 - */ - private fun stepIntoVrMode() { - d(SceneConstant.M_TAXI_P + TAG, "进入vr模式") - stepInDayMode() //白天模式 状态栏字体颜色变黑 - } - - private fun showFragment() { - val supportFragmentManager: FragmentManager? = mActivity?.supportFragmentManager - if (mPM2Fragment == null) { - - d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======") - - val fragmentByTag: Fragment? = supportFragmentManager?.findFragmentByTag(PM2BaseFragment.TAG) - - mPM2Fragment = if (fragmentByTag is Fragment){ - fragmentByTag - }else{ - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { - PM2BaseFragment() - }else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { - BusPassengerRouteFragment() - }else{ - BusPassengerRouteFragment() - } - - } - - if (!mPM2Fragment?.isAdded!!){ - supportFragmentManager?.beginTransaction() - ?.add(mContainerId, mPM2Fragment!!, PM2BaseFragment.TAG)?.commitAllowingStateLoss() - } - return - } - d(SceneConstant.M_TAXI_P + TAG, "准备show fragment") - supportFragmentManager?.beginTransaction()?.show(mPM2Fragment!!) - ?.commitAllowingStateLoss() - } - - private fun hideFragment() { - if (mPM2Fragment != null) { - mActivity?.supportFragmentManager?.beginTransaction()?.hide(mPM2Fragment!!) - ?.commitAllowingStateLoss() - } - } - - companion object { - private val TAG = MogoOCHShuttlePassenger::class.java.simpleName - } - -} \ No newline at end of file diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/ShuttlePassengerProvider.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/ShuttlePassengerProvider.kt new file mode 100644 index 0000000000..7a1a159cb6 --- /dev/null +++ b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/ShuttlePassengerProvider.kt @@ -0,0 +1,69 @@ +package com.mogo.och.shuttle.passenger + +import android.content.Context +import android.view.View +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.util.ActivityUtils +import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonServiceImpl +import com.mogo.och.common.module.wigets.media.MediaPlayerActivity +import com.mogo.och.shuttle.passenger.model.TicketModel +import com.mogo.och.shuttle.passenger.ui.BusPStatusBarView +import com.mogo.och.shuttle.passenger.ui.BusPassengerRouteFragment +import com.mogo.och.shuttle.passenger.ui.PM2BaseFragment +import com.mogo.och.shuttle.passenger.ui.widget.M2StatusBarView + +/** + * 网约车-Bus-乘客端 + * + * Created on 2022/3/29 + */ +@Route(path = OchCommonConst.SHUTTLE_PASSENGER) +class ShuttlePassengerProvider : CommonServiceImpl() { + + private val tag = ShuttlePassengerProvider::class.java.simpleName + private var mPM2Fragment: Fragment?=null + + override fun init(context: Context) { + TicketModel.load() + } + + override fun getStatusBarView(context: Context): View { + if(statusBarView==null){ + statusBarView = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + M2StatusBarView(context); + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + BusPStatusBarView(context); + }else{ + BusPStatusBarView(context); + } + } + return statusBarView!! + } + + override fun getFragment(): Fragment { + if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java) + } + if(mPM2Fragment==null){ + mPM2Fragment = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + PM2BaseFragment() + }else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + BusPassengerRouteFragment() + }else{ + BusPassengerRouteFragment() + } + } + return mPM2Fragment!! + } + + override fun resetFragment() { + super.resetFragment() + mPM2Fragment = null + } + +} \ No newline at end of file diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/manager/scnner/ScannerManager.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/manager/scnner/ScannerManager.kt index 44980dcce3..a5e19b5757 100644 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/manager/scnner/ScannerManager.kt +++ b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/manager/scnner/ScannerManager.kt @@ -11,9 +11,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.StringUtils -import com.mogo.och.common.module.bean.dpmsg.WriteOffDevicesMsg -import com.mogo.och.common.module.bean.dpmsg.WriteOffMsg -import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDevicesMsg +import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.support.serialport.client.SerialPortManager import com.mogo.support.serialport.client.SerialPortManager.SERVICE_STATE import com.mogo.support.serialport.client.listener.OnDeviceVerificationListener @@ -188,10 +189,7 @@ object ScannerManager : OnSerialPortListener, OnDeviceVerificationListener(), IR val msg = WriteOffDevicesMsg(isConnectScanner, message) CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) if(driverSn.isNotEmpty()) { - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToServer(msg) } } @@ -201,10 +199,7 @@ object ScannerManager : OnSerialPortListener, OnDeviceVerificationListener(), IR private fun sendMessage2DriverWriteOffInfo(message:String){ val msg = WriteOffMsg(false, "", 0, "", message,"") CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToServer(msg) } override fun onReceivedMsg(type: Int, byteArray: ByteArray) { diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt index 250d5ecd65..e6fa3753ef 100644 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt +++ b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt @@ -1,13 +1,12 @@ package com.mogo.och.shuttle.passenger.model import com.mogo.commons.AbsMogoApplication -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.common.module.bean.dpmsg.WriteOffMsg -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.shuttle.passenger.bean.request.PassengerWriteOffRequest import com.mogo.och.shuttle.passenger.bean.response.PassengerWriteOffResponse import com.mogo.och.shuttle.passenger.manager.scnner.ScannerChainLogManager @@ -55,7 +54,7 @@ object TicketModel : StateChangeListener { override fun onFail(code: Int, msg: String?) { CallerLogger.d(M_BUS_P + TAG, "核销失败 ${code}-----${msg}") when (code) { - 6002 -> {sendMessage2Driver("同一订单核销间隔时间需大于5分钟")} + 6002 -> {sendMessage2Driver("同一订单核销间隔时间需大于2分钟")} 1009 -> {sendMessage2Driver("车票所选乘车日期非今日")} 1005 -> {sendMessage2Driver("车辆未登录、或没有任务")} 1006 -> {sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合")} @@ -64,7 +63,7 @@ object TicketModel : StateChangeListener { 1012 -> {sendMessage2Driver("当前用户下单路线非当前的车辆所属公司")} else -> { when (msg) { - "6002" -> {sendMessage2Driver("同一订单核销间隔时间需大于5分钟")} + "6002" -> {sendMessage2Driver("同一订单核销间隔时间需大于2分钟")} "1009" -> {sendMessage2Driver("车票所选乘车日期非今日")} "1005" -> {sendMessage2Driver("车辆未登录、或没有任务")} "1006" -> {sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合")} @@ -90,19 +89,13 @@ object TicketModel : StateChangeListener { private fun sendMessage2Driver(message:String){ val msg = WriteOffMsg(false, "", 0, "", message,"") CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToServer(msg) ScannerChainLogManager.writeChainLog(TAG +"sendMessage2Driver","核验失败:message:${message}") } private fun sendMessage2DriverSuccess(message: PassengerWriteOffResponse.Result,orderNo: String){ val msg = WriteOffMsg(true, message.phone, message.ticketSize, message.ticketName, "",orderNo) CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) + LanSocketManager.sendMsgToServer(msg) ScannerChainLogManager.writeChainLog(TAG +"sendMessage2DriverSuccess","核验成功:message:${message}") } diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/network/PassengerServiceManager.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/network/PassengerServiceManager.kt index 53014e6a9b..b30d911249 100644 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/network/PassengerServiceManager.kt +++ b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/network/PassengerServiceManager.kt @@ -7,10 +7,10 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.eagle.core.utilcode.util.ToastUtils -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.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.shuttle.passenger.bean.request.PassengerQueryLineRequest import com.mogo.och.shuttle.passenger.bean.request.PassengerWriteOffRequest import com.mogo.och.shuttle.passenger.bean.response.PassengerOperationStatusResponse diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/provider/StatusViewManager.java b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/provider/StatusViewManager.java deleted file mode 100644 index 6c11478908..0000000000 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/provider/StatusViewManager.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.mogo.och.shuttle.passenger.provider; - -import android.content.Context; -import android.view.View; - -import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; -import com.mogo.och.shuttle.passenger.ui.BusPStatusBarView; -import com.mogo.och.shuttle.passenger.ui.widget.M2StatusBarView; -import androidx.annotation.NonNull; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.data.constants.MogoServicePaths; -import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout; - -/** - * @author congtaowang - * @since 2020-01-06 - *

- * 根据优先级控制显示 window view. - */ -@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER ) -public class StatusViewManager implements IStatusViewLayout { - @NonNull - @Override - public View getStatusView(Context context) { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { - return new M2StatusBarView(context); - } else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { - return new BusPStatusBarView(context); - } - return new BusPStatusBarView(context); - } - - @Override - public void init(Context context) { - - } -} diff --git a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java index 35432b5f6c..7a47f0b2e3 100644 --- a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java +++ b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java @@ -20,6 +20,7 @@ import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager; @@ -28,16 +29,17 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant; import com.mogo.eagle.core.utilcode.util.GsonUtils; import com.mogo.eagle.core.utilcode.util.StringUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager; import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.shuttle.passenger.R; -import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; -import com.mogo.och.common.module.bean.dpmsg.DPMsgType; -import com.mogo.och.common.module.bean.dpmsg.TaskDetailsMsg; -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; -import com.mogo.och.common.module.biz.constant.OchCommonConst; -import com.mogo.och.common.module.manager.distancemamager.IDistanceListener; -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager; +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg; +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg; +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType; +import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg; +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager; +import com.mogo.och.common.module.constant.OchCommonConst; +import com.mogo.och.common.module.manager.distance.IDistanceListener; +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.commons.module.status.StatusDescriptor; import com.mogo.eagle.core.data.config.FunctionBuildConfig; @@ -61,8 +63,8 @@ import com.mogo.och.shuttle.passenger.callback.IBusPassengerControllerStatusCall import com.mogo.och.shuttle.passenger.callback.IBusPassengerRouteLineInfoCallback; import com.mogo.och.shuttle.passenger.constant.BusPassengerConst; import com.mogo.och.shuttle.passenger.network.BusPassengerModelLoopManager; -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; +import com.mogo.och.common.module.network.OchCommonServiceCallback; +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.RxUtils; import com.mogo.och.data.bean.BusRoutesResult; @@ -144,7 +146,7 @@ public class BusPassengerModel { //本地去请求司机端 TaskDetailsMsg msg = new TaskDetailsMsg("task"); - sendMsgToServer(GsonUtils.toJson(msg)); + LanSocketManager.sendMsgToServer(msg); } public void setDriverStatusCallback(IBusPassegerDriverStatusCallback callback){ @@ -159,13 +161,6 @@ public class BusPassengerModel { handler.sendEmptyMessageDelayed( MSG_QUERY_BUS_P_STATION, QUERY_BUS_P_STATION_DELAY ); } - private void sendMsgToServer(String msg){ - CallerTelematicManager.INSTANCE.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - msg.getBytes() - ); - } - private void queryDriverOperationStatus() { PassengerServiceManager.queryDriverOperationStatus(mContext , new OchCommonServiceCallback() { @@ -487,6 +482,11 @@ public class BusPassengerModel { }; private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){ + + @Override + public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) { + } + @Override public void onSsmReceiveTimeout(boolean isTimeout) { // IMoGoAutopilotStatusListener.super.onSsmReceiveTimeout(isTimeout); diff --git a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/presenter/BaseBusPassengerPresenter.java index 8a7abbaa49..85d30ecf9a 100644 --- a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/presenter/BaseBusPassengerPresenter.java @@ -38,14 +38,14 @@ public class BaseBusPassengerPresenter extends Presenter mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.onAutopilotStatusChanged( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onAutopilotDisable() { - runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.onAutopilotStatusChanged( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onAutopilotRunning() { - runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.onAutopilotStatusChanged( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override @@ -109,14 +119,26 @@ public class BaseBusPassengerPresenter extends Presenter mView.onCarLocationChanged(location)); - } + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (location != null && mView != null) { + mView.onCarLocationChanged(location); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void changeOperationStatus(boolean changeStatus) { - runOnUIThread(() -> mView.changeOperationStatus(changeStatus)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.changeOperationStatus(changeStatus); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override @@ -126,27 +148,62 @@ public class BaseBusPassengerPresenter extends Presenter mView.updateLineInfo(lineName)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.updateLineInfo(lineName); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived) { - runOnUIThread(() -> mView.updateStationsInfo(stations,currentStationIndex, isArrived)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.updateStationsInfo(stations, currentStationIndex, isArrived); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void showNoTaskView() { - runOnUIThread(() -> mView.showNoTaskView()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.showNoTaskView(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void hideNoTaskView() { - runOnUIThread(() -> mView.hideNoTaskView()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.hideNoTaskView(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void routePlanningToNextStationChanged(long meters, long timeInSecond) { - runOnUIThread(() -> mView.updateRoutePlanningToNextStation(meters, timeInSecond)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (mView != null) { + mView.updateRoutePlanningToNextStation(meters, timeInSecond); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override diff --git a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java index f6dd5f98bf..cd73864019 100644 --- a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java @@ -18,6 +18,9 @@ import com.elegant.utils.UiThreadHandler; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.commons.storage.SharedPrefsMgr; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; +import com.mogo.map.overlay.IMoGoOverlayManager; +import com.mogo.och.common.module.utils.ResourcesUtils; import com.mogo.och.shuttle.passenger.R; import com.mogo.och.shuttle.passenger.ui.adapter.BusPassengerLineStationsAdapter; import com.mogo.och.shuttle.passenger.constant.BusPassengerConst; @@ -81,8 +84,8 @@ public class BusPassengerRouteFragment extends mSpeedTv = findViewById(R.id.bus_p_speed_tv); mSpeedTv.setVertrial(true); - mSpeedTv.setmColorList(new int[]{getResources().getColor(R.color.shuttle_p_jl_speed_color_start), - getResources().getColor(R.color.shuttle_p_jl_speed_color_end)}); + mSpeedTv.setmColorList(new int[]{ResourcesUtils.getColor(R.color.shuttle_p_jl_speed_color_start), + ResourcesUtils.getColor(R.color.shuttle_p_jl_speed_color_end)}); mNoLineInfoView =findViewById(R.id.bus_p_no_order_data_view); emptyTv = findViewById(R.id.no_order_data_tv); @@ -131,6 +134,19 @@ public class BusPassengerRouteFragment extends } } + @Override + public void onDestroyView() { + if (mPresenter != null) { + mPresenter.onDestroy(this); + } + IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager(); + if(overlayManager!=null) { + overlayManager.removeAllLines(); + overlayManager.removeAllPoints(); + } + super.onDestroyView(); + } + @Override public void onDestroy() { super.onDestroy(); @@ -144,8 +160,8 @@ public class BusPassengerRouteFragment extends UiThreadHandler.post(new Runnable() { @Override public void run() { -// mMapDirectionView.clearPolyline(); -// mMapDirectionView.clearCoordinatesLatLng(); + mMapDirectionView.clearPolyline(); + mMapDirectionView.clearCoordinatesLatLng(); } }); } @@ -280,26 +296,26 @@ public class BusPassengerRouteFragment extends public void updateArrivedStation(String station,int currentIndex,boolean isArrived){ if (null == station){ mCurrentArriveStation.setText("----"); - mCurrentArriveStationTitle.setText(getResources().getString(R.string.shuttle_p_jl_cur_station_title)); - mCurrentArriveTip.setText(getResources().getString(R.string.shuttle_p_jl_cur_station_arrived_tip)); + mCurrentArriveStationTitle.setText(ResourcesUtils.getString(R.string.shuttle_p_jl_cur_station_title)); + mCurrentArriveTip.setText(ResourcesUtils.getString(R.string.shuttle_p_jl_cur_station_arrived_tip)); mCurrentArriveTip.setBackgroundResource(R.drawable.shuttle_p_jl_cur_station_arrived_bg); handleArrivingSpeakIconDrawable(); }else { mCurrentArriveStation.setText(station); if (currentIndex == 0){ - mCurrentArriveStationTitle.setText(getResources().getString(R.string.shuttle_p_jl_cur_station_title)); - mCurrentArriveTip.setText(getResources().getString(R.string.shuttle_p_jl_cur_station_arrived_tip)); + mCurrentArriveStationTitle.setText(ResourcesUtils.getString(R.string.shuttle_p_jl_cur_station_title)); + mCurrentArriveTip.setText(ResourcesUtils.getString(R.string.shuttle_p_jl_cur_station_arrived_tip)); mCurrentArriveTip.setBackgroundResource(R.drawable.shuttle_p_jl_cur_station_arrived_bg); handleArrivingSpeakIconDrawable(); return; } if (isArrived){ - mCurrentArriveStationTitle.setText(getResources().getString(R.string.shuttle_p_jl_cur_station_title)); - mCurrentArriveTip.setText(getResources().getString(R.string.shuttle_p_jl_cur_station_arrived_tip)); + mCurrentArriveStationTitle.setText(ResourcesUtils.getString(R.string.shuttle_p_jl_cur_station_title)); + mCurrentArriveTip.setText(ResourcesUtils.getString(R.string.shuttle_p_jl_cur_station_arrived_tip)); mCurrentArriveTip.setBackgroundResource(R.drawable.shuttle_p_jl_cur_station_arrived_bg); handleArrivedSpeakIconDrawable(); }else { - mCurrentArriveStationTitle.setText(getResources().getString(R.string.shuttle_p_jl_cur_next_station_title)); + mCurrentArriveStationTitle.setText(ResourcesUtils.getString(R.string.shuttle_p_jl_cur_next_station_title)); mCurrentArriveTip.setBackgroundResource(R.drawable.shuttle_p_jl_cur_station_un_arrived_bg); handleArrivingSpeakIconDrawable(); } @@ -339,12 +355,15 @@ public class BusPassengerRouteFragment extends } public void onAutopilotStatusChanged(int status) { - getActivity().runOnUiThread(() -> { - // 3. 其他过程直接更新 - if (mPrevAPStatus != status){ - AutopilotStatusChanged(status); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + // 3. 其他过程直接更新 + if (mPrevAPStatus != status){ + AutopilotStatusChanged(status); + } + mPrevAPStatus = status; } - mPrevAPStatus = status; }); } diff --git a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/widget/BusPTurnLightView.kt b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/widget/BusPTurnLightView.kt index 17f9179559..0016086878 100644 --- a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/widget/BusPTurnLightView.kt +++ b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/widget/BusPTurnLightView.kt @@ -15,7 +15,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListene import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.shuttle.passenger.R -import com.mogo.och.common.module.manager.lightmanager.TurnLightManager +import com.mogo.och.common.module.manager.light.TurnLightManager import kotlinx.android.synthetic.main.shuttle_p_jl_turn_light_status.view.left_nor_image import kotlinx.android.synthetic.main.shuttle_p_jl_turn_light_status.view.left_select_image import kotlinx.android.synthetic.main.shuttle_p_jl_turn_light_status.view.right_nor_image @@ -58,6 +58,7 @@ class BusPTurnLightView @JvmOverloads constructor( super.onDetachedFromWindow() CallerChassisLamplightListenerManager.removeListener(TAG) CallerTurnLightListenerManager.removeListener(TAG) + TurnLightManager.removeTurnLightStatusChangeListener(TAG) } override fun hideTurnLightView() { diff --git a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/model/PM2DrivingModel.kt b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/model/PM2DrivingModel.kt index b0c1ef3abf..6ee079c428 100644 --- a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/model/PM2DrivingModel.kt +++ b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/model/PM2DrivingModel.kt @@ -20,7 +20,6 @@ import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToServer import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.Logger @@ -29,14 +28,20 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.common.module.bean.dpmsg.* -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.manager.distancemamager.IDistanceListener -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.distance.IDistanceListener +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.voice.VoiceNotice.showNotice import com.mogo.och.data.bean.BusRoutesResult @@ -99,12 +104,12 @@ class PM2DrivingModel private constructor() { private fun queryDriverByLocalDriver() { //本地去请求司机端 val msg = TaskDetailsMsg("task") - sendMsgToServer(GsonUtils.toJson(msg)) + LanSocketManager.sendMsgToServer(msg) } private fun initListener() { //自动驾驶状态监听 - CallerAutoPilotStatusListenerManager.addListener(TAG, mAutoPilotStatusListener) + OchAutoPilotStatusListenerManager.addListener(TAG, mAutoPilotStatusListener) // 定位监听 CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 3, mMapLocationListener) @@ -120,13 +125,6 @@ class PM2DrivingModel private constructor() { } - private fun sendMsgToServer(msg: String) { - sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - } - fun releaseListener() { //自动驾驶状态监听 CallerAutoPilotStatusListenerManager.removeListener(TAG) @@ -277,8 +275,8 @@ class PM2DrivingModel private constructor() { mDrivingInfoCallback?.updateSpeed(speedKM) } - private val mAutoPilotStatusListener: IMoGoAutopilotStatusListener = - object : IMoGoAutopilotStatusListener { + private val mAutoPilotStatusListener: IOchAutopilotStatusListener = + object : IOchAutopilotStatusListener { override fun onAutopilotStatusResponse(state: Int) { super.onAutopilotStatusResponse(state) @@ -342,7 +340,7 @@ class PM2DrivingModel private constructor() { fun queryDriverSiteByCoordinate(){ mContext?.let { PassengerServiceManager.queryDriverSiteByCoordinate(it, - object : OchCommonServiceCallback{ + object : OchCommonServiceCallback { override fun onSuccess(data: PassengerRoutesResponse?) { if (data == null || data.result == null){ diff --git a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2DrivingInfoFragment.kt index 4872a904f3..7f36c761cc 100644 --- a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2DrivingInfoFragment.kt @@ -124,11 +124,12 @@ class PM2DrivingInfoFragment : } } - override fun onDestroy() { - super.onDestroy() - overMapView?.let{ - it.onDestroy() + override fun onDestroyView() { + overMapView?.onDestroy() + if (mPresenter != null) { + mPresenter?.onDestroy(this) } + super.onDestroyView() } fun updateSpeed(speed: Int){ diff --git a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2HPMapFragment.kt b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2HPMapFragment.kt index a404d073b5..e278d6c4ae 100644 --- a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2HPMapFragment.kt +++ b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/PM2HPMapFragment.kt @@ -2,7 +2,7 @@ package com.mogo.och.shuttle.passenger.ui import android.os.Bundle import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getOverlayManager +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.map.overlay.core.Level import com.mogo.map.overlay.point.Point @@ -64,6 +64,10 @@ class PM2HPMapFragment : override fun onDestroyView() { mapBizView.onDestroy() + CallerMapUIServiceManager.getOverlayManager()?.let { + it.removeAllLines() + it.removeAllPoints() + } super.onDestroyView() } @@ -106,7 +110,7 @@ class PM2HPMapFragment : builder.rotate(it.angle.toFloat()) } } - val overlayManager = getOverlayManager() + val overlayManager = CallerMapUIServiceManager.getOverlayManager() overlayManager?.showOrUpdatePoint(builder.build()) } OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable) @@ -118,7 +122,7 @@ class PM2HPMapFragment : //开启线程移除起终点marker设置 val removeMapMarkerRunnable = Runnable { d("RemoveMapMaker=" + Thread.currentThread().name, uuid) - val overlayManager = getOverlayManager() + val overlayManager = CallerMapUIServiceManager.getOverlayManager() overlayManager?.removeAllPointsInOwner(TYPE_MARKER_M2_LINE) } OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable) diff --git a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/widget/M2TurnLightView.kt b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/widget/M2TurnLightView.kt index 663976a36c..6b2b1e8e5d 100644 --- a/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/widget/M2TurnLightView.kt +++ b/OCH/shuttle/passenger/src/main/java/m2/com/mogo/och/shuttle/passenger/ui/widget/M2TurnLightView.kt @@ -15,7 +15,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListene import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.shuttle.passenger.R -import com.mogo.och.common.module.manager.lightmanager.TurnLightManager +import com.mogo.och.common.module.manager.light.TurnLightManager import kotlinx.android.synthetic.main.shuttle_p_jl_turn_light_status.view.left_nor_image import kotlinx.android.synthetic.main.shuttle_p_jl_turn_light_status.view.left_select_image import kotlinx.android.synthetic.main.shuttle_p_jl_turn_light_status.view.right_nor_image @@ -58,6 +58,7 @@ class M2TurnLightView @JvmOverloads constructor( super.onDetachedFromWindow() CallerChassisLamplightListenerManager.removeListener(TAG) CallerTurnLightListenerManager.removeListener(TAG) + TurnLightManager.removeTurnLightStatusChangeListener(TAG) } override fun hideTurnLightView() { diff --git a/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_base_fragment.xml b/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_base_fragment.xml index 3c9f183cb0..62f371742b 100644 --- a/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_base_fragment.xml +++ b/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_base_fragment.xml @@ -57,4 +57,9 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> + + + \ No newline at end of file diff --git a/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_view_status_bar.xml b/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_view_status_bar.xml index 1756b368a8..cc89490991 100644 --- a/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_view_status_bar.xml +++ b/OCH/shuttle/passenger/src/main/res/jinlv/layout/shuttle_p_jl_view_status_bar.xml @@ -22,8 +22,9 @@ - + + \ No newline at end of file diff --git a/OCH/shuttle/passenger/src/main/res/m2/layout/shuttle_p_m2_view_status_bar.xml b/OCH/shuttle/passenger/src/main/res/m2/layout/shuttle_p_m2_view_status_bar.xml index f05bbb8358..015fc8488d 100644 --- a/OCH/shuttle/passenger/src/main/res/m2/layout/shuttle_p_m2_view_status_bar.xml +++ b/OCH/shuttle/passenger/src/main/res/m2/layout/shuttle_p_m2_view_status_bar.xml @@ -10,7 +10,7 @@ () { - @Override - public void accept(String s) throws Exception { - // 写入SP当前模式 - SweeperVehicleConfigUtils.setSPCurrentSweeperMode(currentMode); - // 清除本地业务缓存数据 - MyDataBase.getInstance().getWeltDataDao().deleteAllWeltData(); - // 等清除完数据库数据后,重启App - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - AppUtils.relaunchApp(true); - } - }, 1000L); - } - }); - } -} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.kt new file mode 100644 index 0000000000..023916ec21 --- /dev/null +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.kt @@ -0,0 +1,122 @@ +package com.mogo.och.sweeper + +import android.annotation.SuppressLint +import android.content.Context +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.vehicle.IMoGoSweeperModeListener +import com.mogo.eagle.core.function.call.vehicle.CallerSweeperModeListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isDefaultSweeperCanSwitchMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isDefaultSweeperCloudMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isDefaultSweeperOperateMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isSPCurrentSweeperCloudMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isSPCurrentSweeperOperateMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.setSPCurrentSweeperMode +import com.mogo.eagle.core.utilcode.util.AppUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonServiceImpl +import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment +import com.mogo.och.sweeper.common.database.MyDataBase +import com.mogo.och.sweeper.common.util.SweeperAnalyticsManager +import com.mogo.och.sweeper.operate.fragment.SweeperOperateFragment +import io.reactivex.Observable +import io.reactivex.schedulers.Schedulers + +/** + * 清扫车业务实现入口 + * + * @author tongchenfei + */ +@Route(path = OchCommonConst.SWEEPER_DRIVER) +class SweeperProvider : CommonServiceImpl() { + private var sweeperOperateFragment: SweeperOperateFragment? = null + private var sweeperCloudFragment: SweeperCloudFragment? = null + + override fun getFragment(): Fragment { + // 第一优先级:需要默认能切换清扫业务模式 + // 第二优先级:如果能切换清扫模式,查询SP中缓存的当前模式(用户切换后会在SP中写入当前模式,切换完后清除,因为现在产品确认还不需要每次启动时首先使用用户上次选择的模式,目前优先还是使用gradle中默认配置的模式打开) + // 第三优先级:如果不能切换清扫模式或者SP中没有用户选择的当前模式,查询gradle中默认配置的当前模式(用户不进行切换时SP中没有配置,默认使用的gradle中默认当前模式) + i( + SceneConstant.M_SWEEPER + TAG, "清扫车启动,当前业务模式:isSPCurrentSweeperOperateMode=" + + isSPCurrentSweeperOperateMode() + + ", isSPCurrentSweeperCloudMode=" + isSPCurrentSweeperCloudMode() + ) + if (isDefaultSweeperCanSwitchMode(FunctionBuildConfig.sweeperCanSwitchMode) + && isSPCurrentSweeperOperateMode() + ) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_OPERATE + ToastUtils.showLong("当前清扫业务模式:运营") + return showOperateFragment() + } else if (isDefaultSweeperCanSwitchMode(FunctionBuildConfig.sweeperCanSwitchMode) + && isSPCurrentSweeperCloudMode() + ) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD + ToastUtils.showLong("当前清扫业务模式:云控") + return showCloudFragment() + } else if (isDefaultSweeperOperateMode(FunctionBuildConfig.sweeperDefaultMode)) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_OPERATE + ToastUtils.showLong("当前清扫业务模式:运营") + return showOperateFragment() + } else if (isDefaultSweeperCloudMode(FunctionBuildConfig.sweeperDefaultMode)) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD + ToastUtils.showLong("当前清扫业务模式:云控") + return showCloudFragment() + } else { + // 默认云控模式 + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD + ToastUtils.showLong("当前清扫业务模式:云控") + return showCloudFragment() + } + } + + override fun init(context: Context) { + + } + private fun showOperateFragment():Fragment { + if(sweeperOperateFragment==null){ + sweeperOperateFragment = SweeperOperateFragment() + } + return sweeperOperateFragment!! + } + + private fun showCloudFragment():Fragment { + if(sweeperCloudFragment==null){ + sweeperCloudFragment = SweeperCloudFragment() + } + return sweeperCloudFragment!! + } + @SuppressLint("CheckResult") + fun onSweeperCurrentModeChanged(currentMode: String) { + // 日志、埋点 + i(SceneConstant.M_SWEEPER + TAG, "切换清扫车业务模式,当前切换的模式:$currentMode") + SweeperAnalyticsManager.getInstance().trackSweeperModeChangeEvent(currentMode) + Observable.just(currentMode) + .observeOn(Schedulers.io()) + .subscribeOn(Schedulers.io()) + .subscribe { // 写入SP当前模式 + setSPCurrentSweeperMode(currentMode) + // 清除本地业务缓存数据 + MyDataBase.getInstance().weltDataDao.deleteAllWeltData() + // 等清除完数据库数据后,重启App + UiThreadHandler.postDelayed({ AppUtils.relaunchApp(true) }, 1000L) + } + } + + override fun invokeByName(type: String,value: Any) { + if (value is String && type=="reStart") { + onSweeperCurrentModeChanged(value) + } + } + + companion object { + private const val TAG = "SweeperProvider" + } +} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java index 6ec468c553..1a1f332b02 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java @@ -351,7 +351,7 @@ public abstract class BaseSweeperCloudTabFragment CallerHmiManager.INSTANCE.showToolsView()); if (mCardBtn != null) { - CallerDevaToolsManager.INSTANCE.initBadCase(mCardBtn); + CallerDevaToolsManager.INSTANCE.reportWorkOrder(mCardBtn); } if (mAICollectBtn != null) { CallerDevaToolsManager.INSTANCE.initAiCollect(mAICollectBtn); diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java index e40a0b38aa..951bfee6bb 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java @@ -5,6 +5,7 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWE import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; +import android.text.TextUtils; import android.util.Log; import androidx.annotation.NonNull; @@ -33,11 +34,12 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; -import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage; -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager; +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager; +import com.mogo.och.common.module.manager.socket.cloud.data.OCHOperationalMessage; +import com.mogo.och.common.module.network.OchCommonServiceCallback; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; @@ -415,6 +417,21 @@ public class SweeperOperateTaskModel { */ private void startAutopilot(boolean isRestart) { DebugView.Companion.printInfoMsg("[启自驾] startAutoPilot"); + if(mCurrentSubTaskDetail!=null){ + //根据开关和后台是否发布轨迹启动自驾 + if (FunctionBuildConfig.isPassStartAutopilotCommand + && TextUtils.isEmpty(mCurrentSubTaskDetail.getCsvFileUrl()) + && TextUtils.isEmpty(mCurrentSubTaskDetail.getCsvFileUrlDPQP()) + ) { + ToastUtils.showLong("无发布轨迹, 请发布后重试"); + CallerLogger.e( + TAG, "isPassStartAutopilotCommand = " + + FunctionBuildConfig.isPassStartAutopilotCommand + + "busRoutesResult.csvFileUrl = " + mCurrentSubTaskDetail.getCsvFileUrl() + ); + return; + } + } if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()) { ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + ", 请稍候重试"); @@ -430,7 +447,7 @@ public class SweeperOperateTaskModel { DebugView.Companion.printErrorMsg("[启自驾]行程日志-AutopilotControlParameters is empty"); return; } - CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters); + OchAutoPilotManager.startAutoPilot(parameters); DebugView.Companion.printInfoMsg("[启自驾] 调用成功"); CallerLogger.d(M_SWEEPER + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperOperateServiceManager.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperOperateServiceManager.kt index 5f58a9852b..8f2a2bbd6e 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperOperateServiceManager.kt +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/net/SweeperOperateServiceManager.kt @@ -7,10 +7,10 @@ import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -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.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.sweeper.operate.model.SweeperOperateTaskModel import com.mogo.och.sweeper.operate.bean.BaseResponse import com.mogo.och.sweeper.operate.bean.SubInfo diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java index 10e3690435..130c155a68 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java @@ -10,6 +10,7 @@ import androidx.lifecycle.LifecycleOwner; import com.amap.api.maps.model.LatLng; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -19,7 +20,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSystemListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ThreadUtils; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.sweeper.common.view.DebugView; @@ -42,8 +43,6 @@ import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil; import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager; import com.zhjt.mogo.adas.data.AdasConstants; -import org.jetbrains.annotations.NotNull; - import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; @@ -466,4 +465,8 @@ public class SweeperOperatePresenter extends Presenter public void onSsmReceiveTimeout(boolean isTimeout) { } + + @Override + public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) { + } } diff --git a/OCH/taxi/driver/build.gradle b/OCH/taxi/driver/build.gradle index 587fbd7f97..8bc24cfeab 100644 --- a/OCH/taxi/driver/build.gradle +++ b/OCH/taxi/driver/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -15,9 +16,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" - javaCompileOptions { - annotationProcessorOptions { - arguments = [AROUTER_MODULE_NAME: project.getName()] + kapt { + useBuildCache = false + arguments { + arg("AROUTER_MODULE_NAME", "taxi"+project.getName()) } } } @@ -41,6 +43,15 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + + sourceSets { + main { + res.srcDirs = [ + 'src/main/res', + 'src/main/res/ani', + ] + } + } } dependencies { @@ -50,7 +61,7 @@ dependencies { implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.androidxrecyclerview implementation rootProject.ext.dependencies.material - annotationProcessor rootProject.ext.dependencies.aroutercompiler + kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.rxandroid implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/IMogoOCH.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/IMogoOCH.java deleted file mode 100644 index 3c724ee33c..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/IMogoOCH.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mogo.och.taxi; - -import androidx.annotation.IdRes; -import androidx.fragment.app.FragmentActivity; - -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; - -public -/** - * @author congtaowang - * @since 2021/1/15 - * - * 网约车抽象接口 - */ -interface IMogoOCH extends IMoGoFunctionProvider { - - /** - * 初始化网约车容器 - * - * @param activity - * @param containerId 容器ID - */ - void createCoverage(FragmentActivity activity, @IdRes int containerId); -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt new file mode 100644 index 0000000000..1a7f04683c --- /dev/null +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt @@ -0,0 +1,42 @@ +package com.mogo.och.taxi + +import android.content.Context +import androidx.fragment.app.Fragment +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonService +import com.mogo.och.common.module.biz.provider.CommonServiceImpl +import com.mogo.och.taxi.ui.TaxiFragment + +/** + * @author congtaowang + * @since 2021/1/15 + * + * + * 网约车-出租车 + */ +@Route(path = OchCommonConst.TAXI_DRIVER) +class TaxiDriverProvider : CommonServiceImpl() { + + private val tag = TaxiDriverProvider::class.java.simpleName + private var ochTaxiFragment: TaxiFragment? = null + + override fun init(context: Context) { + d(SceneConstant.M_TAXI + tag, "init") + + } + + override fun getFragment(): Fragment { + if (ochTaxiFragment == null) { + ochTaxiFragment = TaxiFragment() + } + return ochTaxiFragment!! + } + + override fun resetFragment() { + super.resetFragment() + ochTaxiFragment = null + } +} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiProvider.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiProvider.java deleted file mode 100644 index 4e8031561a..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiProvider.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.mogo.och.taxi; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.content.Context; - -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.taxi.constant.TaxiConst; -import com.mogo.och.taxi.ui.TaxiFragment; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public -/** - * @author congtaowang - * @since 2021/1/15 - *

- * 网约车-出租车 - */ -@Route( path = TaxiConst.PATH ) -class TaxiProvider implements IMogoOCH { - - private static final String TAG = "TaxiProvider"; - private TaxiFragment ochTaxiFragment; - private FragmentActivity mActivity; - private int mContainerId; - @Override - public void init( Context context ) { - CallerLogger.d( M_TAXI + TAG, "init" ); - } - - /** - * 进入鹰眼模式,设置手势缩放地图失效 - */ - private void stepIntoVrMode() { - CallerLogger.d( M_TAXI + TAG, "进入vr模式" ); - CallerMoGoUiSettingManager.INSTANCE.stepInNightMode();//夜间模式 状态栏字体颜色变黑 - } - - private void showFragment() { - FragmentManager supportFragmentManager = mActivity.getSupportFragmentManager(); - if (ochTaxiFragment == null) { - CallerLogger.d(M_TAXI + TAG, "准备add fragment======"); - Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(TaxiFragment.TAG); - if (fragmentByTag instanceof TaxiFragment){ - ochTaxiFragment = (TaxiFragment) fragmentByTag; - }else { - ochTaxiFragment = new TaxiFragment(); - } - - if (!ochTaxiFragment.isAdded()){ - supportFragmentManager.beginTransaction().add(mContainerId, ochTaxiFragment - ,TaxiFragment.TAG).commitAllowingStateLoss(); - } - return; - } - CallerLogger.d(M_TAXI + TAG, "准备show fragment"); - supportFragmentManager.beginTransaction().show(ochTaxiFragment).commitAllowingStateLoss(); - } - - private void hideFragment(){ - if (ochTaxiFragment != null){ - mActivity.getSupportFragmentManager().beginTransaction().hide(ochTaxiFragment).commitAllowingStateLoss(); - } - } - - @Override - public void createCoverage(FragmentActivity activity, int containerId) { - - } - - @NotNull - @Override - public String getFunctionName() { - return TAG; - } - - @Nullable - @Override - public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) { - this.mActivity = fragmentActivity; - this.mContainerId = integer; - showFragment(); - return null; - } - - @Override - public void onDestroy() { - //若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 - if (mActivity == null) return; - mActivity.finish(); - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java index 1a993dfead..9bcd37a905 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java @@ -10,18 +10,18 @@ public interface ITaxiADASStatusCallback { void onAutopilotArriveEnd(); // 自动驾驶可用状态 - void onAutopilotEnable(); + void onAutopilotEnable(boolean canStartAuto); // 自动驾驶不可用状态 - void onAutopilotDisable(); + void onAutopilotDisable(boolean canStartAuto); // 自动驾驶运行中 - void onAutopilotRunning(); + void onAutopilotRunning(boolean canStartAuto); //人机共驾 - void onManMachineCoDriving(); + void onManMachineCoDriving(boolean canStartAuto); - void updateAutopilotStatus(); + void updateAutopilotStatus(boolean canStartAuto); //自驾返回失败 void onStartAdasFailure(); diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java index 7ffc67eb0f..6061dfa8bb 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java @@ -44,7 +44,7 @@ public interface ITaxiOrderStatusCallback { void onGrabOrderFailed(OrderQueryRespBean.Result order); // 司机已确认开启自动驾驶环境 - void onDriverHasCheckedPilotCondition(boolean isSafe); + void onDriverHasCheckedPilotCondition(); /** * 导航到目的地 diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxtServingStatusManager.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxtServingStatusManager.kt deleted file mode 100644 index 7a42236e8b..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxtServingStatusManager.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.mogo.och.taxi.constant - -object TaxtServingStatusManager { - - /** - * 接单状态 - */ - private var openOrderStatus: TaxiOpenOrderStatusEnum = TaxiOpenOrderStatusEnum.None - - // region 是否可用接单 - @JvmStatic - fun isOpeningOrderStatus():Boolean{ - if(openOrderStatus==TaxiOpenOrderStatusEnum.Ordering){ - return true - } - return false - } - @JvmStatic - fun setOpenOrderStatus(status: Int) { - when (status) { - 0 -> { - this.openOrderStatus = TaxiOpenOrderStatusEnum.UnOrdering - } - 1 -> { - this.openOrderStatus = TaxiOpenOrderStatusEnum.Ordering - } - else -> { - this.openOrderStatus = TaxiOpenOrderStatusEnum.None - } - } - } - @JvmStatic - fun getOpenOrderStatus(): TaxiOpenOrderStatusEnum { - return openOrderStatus - } - - //endregion -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index f1928219a7..d3f6809370 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -15,7 +15,6 @@ import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; @@ -40,18 +39,20 @@ import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.StringUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; -import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage; -import com.mogo.och.common.module.biz.constant.LoginStatusManager; -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.provider.LoginService; +import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; +import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener; +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager; +import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager; +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager; +import com.mogo.och.common.module.manager.socket.cloud.data.OCHOperationalMessage; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.network.OchCommonServiceCallback; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; -import com.mogo.och.common.module.manager.distancemamager.IDistanceListener; -import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener; -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager; +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; +import com.mogo.och.common.module.manager.distance.IDistanceListener; +import com.mogo.och.common.module.manager.distance.ITrajectoryListener; +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager; import com.mogo.och.common.module.map.AmapNaviToDestinationModel; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.OCHThreadPoolManager; @@ -79,7 +80,6 @@ import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; import com.mogo.och.taxi.constant.TaxiConst; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.constant.TaxiOrderTypeEnum; -import com.mogo.och.taxi.constant.TaxtServingStatusManager; import com.mogo.och.taxi.network.TaxiServiceManager; import com.mogo.och.taxi.utils.OrderUtil; import com.mogo.och.taxi.utils.TaxiAnalyticsManager; @@ -139,8 +139,6 @@ public class TaxiModel { private double mLongitude, mLatitude; private MogoLocation mLocation = null; - private LoginService loginService; - private TaxiModel() { } @@ -168,7 +166,6 @@ public class TaxiModel { public void init(Context context) { mContext = context.getApplicationContext(); initListeners(); - loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation(); // TODO: 2021/8/27 因需要通过此回调的location进行坐标上传,暂改为全程监听,退出后再反注册, // 待后续整体调整location获取来源 @@ -214,12 +211,11 @@ public class TaxiModel { startOrStopOrderLoop(false); startOrStopCalculateRouteInfo(false); releaseListeners(); - loginService = null; } private void initListeners() { // 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口 - CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener); + OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener); IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener); //定位监听, 传false是高德坐标系 @@ -268,7 +264,7 @@ public class TaxiModel { OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(OCHSocketMessageManager.msgMonitorType); - CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener); + OchAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener); CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); @@ -291,10 +287,11 @@ public class TaxiModel { //更新接单状态 public void updateCarStatus() { if (!LoginStatusManager.isLogin()) { - loginService.queryLoginStatusByNet(); + LoginStatusManager.queryLoginStatusByNet(); return; } - boolean currentOrderStatus = TaxtServingStatusManager.isOpeningOrderStatus(); + boolean currentOrderStatus = LoginStatusManager.isOpenOrderType(); + TaxiServiceManager.changeOrderServing(mContext, currentOrderStatus, new OchCommonServiceCallback() { @Override @@ -307,7 +304,7 @@ public class TaxiModel { // 上个状态是暂停接单 暂停成功 VoiceNotice.showNotice("开始接单啦!"); } - loginService.queryLoginStatusByNet(); + LoginStatusManager.queryLoginStatusByNet(); } } @@ -765,7 +762,7 @@ public class TaxiModel { * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) */ // updateAutopilotStatus(data.code == 0); - updateAutopilotStatus(true); + updateAutopilotStatus(); } @Override @@ -774,14 +771,14 @@ public class TaxiModel { * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) */ // updateAutopilotStatus(false); - updateAutopilotStatus(true); + updateAutopilotStatus(); } }); } - public void updateAutopilotStatus(boolean isSafe) { + public void updateAutopilotStatus() { if (mOrderStatusCallback != null) { - mOrderStatusCallback.onDriverHasCheckedPilotCondition(isSafe); + mOrderStatusCallback.onDriverHasCheckedPilotCondition(); } } @@ -801,7 +798,7 @@ public class TaxiModel { * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) */ // updateAutopilotStatus(data.data.equals(true)); - updateAutopilotStatus(true); + updateAutopilotStatus(); } @Override @@ -810,7 +807,7 @@ public class TaxiModel { * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) */ // updateAutopilotStatus(false); - updateAutopilotStatus(true); + updateAutopilotStatus(); } }); } @@ -860,7 +857,7 @@ public class TaxiModel { CallerLogger.d(M_TAXI + TAG, "setIPCDemoMode:false"); CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); if (mADASStatusCallback != null) { - mADASStatusCallback.updateAutopilotStatus(); + mADASStatusCallback.updateAutopilotStatus(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); } } @@ -928,9 +925,11 @@ public class TaxiModel { return; } - //根据开关和后台是否发布轨迹启动自驾 - if (FunctionBuildConfig.isPassStartAutopilotCommand && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrl) - && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrlDPQP)) { + //1、判断轨迹url是否可用 + if (FunctionBuildConfig.isPassStartAutopilotCommand + && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrl) + && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrlDPQP) + ) { ToastUtils.showLong("无发布轨迹, 请发布后重试"); CallerLogger.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand @@ -938,23 +937,26 @@ public class TaxiModel { + "busRoutesResult.csvFileUrlDPQP = " + mCurrentOCHOrder.csvFileUrlDPQP); return; } - - if(CallerAutoPilotStatusListenerManager.INSTANCE.getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - ToastUtils.showShort("自驾中、请勿重复启动"); + //2、6个条件判断 + if (!CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(true, 0)) { return; } - + //3、距离轨迹15m计算 String resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot(mCurrentOCHOrder.lineId); + if(TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)){ + setStation(); + resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot(mCurrentOCHOrder.lineId); + } if(!StringUtils.isEmpty(resion)){ ToastUtils.showShort(resion); + VoiceNotice.showNotice(resion); return; } CallerLogger.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand); - + //4、ssm 给出数据 if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()) { ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + ", 请稍候重试"); @@ -963,6 +965,11 @@ public class TaxiModel { OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); return; } + if(CallerAutoPilotStatusListenerManager.INSTANCE.getState() + == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ + ToastUtils.showShort("自驾中、请勿重复启动"); + return; + } //点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩 if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode()) { @@ -979,7 +986,8 @@ public class TaxiModel { return; } - CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters); + OchAutoPilotManager.startAutoPilot(parameters); + CallerLogger.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters) + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr @@ -1065,8 +1073,8 @@ public class TaxiModel { CallerLogger.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr); if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) { if (NetworkUtils.isConnected(mContext)) { - startOrStopOrderLoop(LoginStatusManager.isLogin() && TaxtServingStatusManager.isOpeningOrderStatus()); - loginService.queryLoginStatusByNet(); + startOrStopOrderLoop(LoginStatusManager.isLogin() && LoginStatusManager.isOpenOrderType()); + LoginStatusManager.queryLoginStatusByNet(); } } } @@ -1208,35 +1216,18 @@ public class TaxiModel { startServicePilotDone(); } - private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener() { + private final IOchAutopilotStatusListener mGoAutopilotStatusListener = new IOchAutopilotStatusListener() { @Override - public void onSsmReceiveTimeout(boolean isTimeout) { - - } - - @Override - public void onAutopilotDockerInfo(@NonNull String dockerVersion) { - } - - @Override - public void onAutopilotRouteLineId(long lineId) { - } - - @Override - public void onAutopilotIpcConnectStatusChanged(@NonNull AdasConstants.IpcConnectionStatus status, @Nullable String reason) { - } - - @Override - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - TaxiTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo); + public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { + TaxiTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId); } @Override public void onAutopilotStatusResponse(int state) { if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotRunning(); + mADASStatusCallback.onAutopilotRunning(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); } if (mCurrentOCHOrder != null && TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus) { @@ -1259,7 +1250,7 @@ public class TaxiModel { return; } if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotEnable(); + mADASStatusCallback.onAutopilotEnable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); } } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { if (FunctionBuildConfig.isDemoMode @@ -1270,7 +1261,7 @@ public class TaxiModel { return; } if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotDisable(); + mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); } } else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) { if (FunctionBuildConfig.isDemoMode) { @@ -1280,23 +1271,26 @@ public class TaxiModel { // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态 } else { //美化模式下没订单,显示人工驾驶 if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotDisable(); + mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); } } return; } if (mADASStatusCallback != null) { - mADASStatusCallback.onManMachineCoDriving(); + mADASStatusCallback.onManMachineCoDriving(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); } } } @Override - public void onAutopilotSNRequest(@NonNull MessagePad.BasicInfoReq basicInfoReq) { + public void canStartAutopilot(boolean canStart) { + if (mADASStatusCallback != null) { + mADASStatusCallback.updateAutopilotStatus(canStart); + } } @Override - public void onAutopilotArriveAtStation(MessagePad.ArrivalNotification data) { + public void onAutopilotArriveAtStation(ArrivedStation data) { CallerLogger.i(M_TAXI + TAG, "onAutopilotArriveAtStation = " + data.toString()); if (data == null || !checkCurrentOCHOrder() @@ -1307,20 +1301,10 @@ public class TaxiModel { if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 到达目的地,置false - // 2022.10.08 到达目的地时候取消自动起自驾, 服务完成取消引导线和自动驾驶按钮状态 -// FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; -// CallerAutoPilotManager.INSTANCE.setIgnoreConditionDraw(false); CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为false(到达目的地)"); } } - - @Override - public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { - } - @Override - public void onSystemStatus(@NonNull SsmInfo.SsmStatusInf statusInf) { - } }; private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener() { @@ -1735,7 +1719,7 @@ public class TaxiModel { // 登出 public void logout() { - loginService.loginOut(mLatitude, mLongitude); + LoginStatusManager.loginOut(mLatitude, mLongitude); } //导航去订单终点目的地 diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/LoginBusImpl.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/LoginBusImpl.kt deleted file mode 100644 index c57492cd1e..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/LoginBusImpl.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.och.taxi.network - -import android.content.Context -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.network.LoginDefaultManage -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback - -class LoginBusImpl: LoginDefaultManage { - - override fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.getPhoneCode(context,phone,callback) - } - - override fun gotoLoginBycode( - context: Context, - phone: String?, - code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback) - } - - override fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.logout(context,location4Login,callback) - } - - override fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - OchCommonServiceManager.queryDriverServiceStatus(context,callback) - } - - -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/OchCommonServiceManager.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/OchCommonServiceManager.kt deleted file mode 100644 index 47c58418ff..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/OchCommonServiceManager.kt +++ /dev/null @@ -1,109 +0,0 @@ -package com.mogo.och.taxi.network - -import android.content.Context -import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.commons.storage.SharedPrefsMgr -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 - -/** - * Created by pangfan on 2021/8/19 - */ -object OchCommonServiceManager { - - private const val TAG = "OchCommonServiceManager" - - private val mOCHTaxiServiceApi: OchLoginServiceApi = - MoGoRetrofitFactory.getInstance(getBaseUrl()).create( - OchLoginServiceApi::class.java - ) - - /** - * 获取手机验证码 - * @param context - * @param callback - */ - @JvmStatic - fun getPhoneCode( - context: Context, phone: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.getPhoneCode( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLoginSmsReqBean(phone) - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode")) - } - - /** - * 通过验证码登录 - * @param context - * @param callback - */ - @JvmStatic - fun gotoLoginBycode( - context: Context, phone: String?, code: String?, - location4Login: TaxiLoginReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - val sn = SharedPrefsMgr.getInstance().sn - mOCHTaxiServiceApi.gotoLoginBycode4Taxi( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode")) - } - - /** - * 登出 - */ - @JvmStatic - fun logout( - context: Context, - location4Login: TaxiLogoutReqBean.Location4Login?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.logout4Taxi( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login) - ).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout")) - } - - /** - * 接单状态和登录状态查询 - * - * @param context - * @param callback - */ - @JvmStatic - fun queryDriverServiceStatus( - context: Context, - callback: OchCommonServiceCallback? - ) { - if (SharedPrefsMgr.getInstance().token.isEmpty()) { - callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等") - MoGoAiCloudClient.getInstance().refreshToken() - return - } - mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ).transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus")) - } - -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/OchLoginServiceApi.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/OchLoginServiceApi.java deleted file mode 100644 index 19c9e85fbf..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/OchLoginServiceApi.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.mogo.och.taxi.network; -import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean; -import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean; -import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean; - -import io.reactivex.Observable; -import retrofit2.http.Body; -import retrofit2.http.GET; -import retrofit2.http.Header; -import retrofit2.http.Headers; -import retrofit2.http.POST; -import retrofit2.http.Query; - -/** - * Created by pangfan on 2021/8/19 - * - * 网约车-出租车接口定义 - */ -interface OchLoginServiceApi { - /** - * 获取手机验证码 - * - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/driver/v2/driver/taxi/sendSms" ) - Observable getPhoneCode(@Header("appId") String appId - , @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data); - /** - * 通过验证码登录 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startOperation" ) - Observable gotoLoginBycode4Taxi(@Header("appId") String appId - , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); - - /** - * 登出接口 - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/endOperation") - Observable logout4Taxi(@Header("appId") String appId, @Header("ticket") String ticket, - @Body TaxiLogoutReqBean data); - - /** - * 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端 - * @param sn - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET( "/autopilot-car-hailing/operation/v1/driver/taxi/loginStatus") - Observable queryDriverServiceStatusAndLoginStatus(@Header ("appId") String appId - , @Header("ticket") String ticket, @Query("sn") String sn); - -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt index 53fd62c894..7c91921a96 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt @@ -5,10 +5,10 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.commons.storage.SharedPrefsMgr -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.common.module.constant.OchCommonConst +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.taxi.bean.* import io.reactivex.Observable @@ -39,7 +39,7 @@ object TaxiServiceManager { SharedPrefsMgr.getInstance().sn ) .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService")) + .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService",false)) } /** @@ -58,7 +58,7 @@ object TaxiServiceManager { SharedPrefsMgr.getInstance().sn ) .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryNewBookingOrder")) + .subscribe(OchCommonSubscribeImpl(context, callback, "queryNewBookingOrder",false)) } /** diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiOperationalPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiOperationalPresenter.java index f97b97d72a..7ee705bcbf 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiOperationalPresenter.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiOperationalPresenter.java @@ -42,12 +42,26 @@ public class TaxiOperationalPresenter extends Presenter mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onOrdersListPageRefresh(List ordersList) { - runOnUIThread(() -> mView.onOrdersListPageRefresh(ordersList)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onOrdersListPageRefresh(ordersList); + } + } + }, UiThreadHandler.MODE.QUEUE); } private void runOnUIThread( Runnable executor ) { diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index be5e671701..dd8da0424f 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -11,16 +11,16 @@ import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; -import com.mogo.och.common.module.biz.callback.ILoginCallback; -import com.mogo.och.common.module.biz.constant.LoginStatusManager; -import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; +import com.mogo.och.common.module.biz.login.ILoginCallback; +import com.mogo.och.common.module.biz.login.LoginStatusEnum; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum; +import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.taxi.bean.OrderQueryRespBean; import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean; @@ -30,7 +30,6 @@ import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; import com.mogo.och.taxi.constant.TaxiConst; import com.mogo.och.taxi.constant.TaxiDriverRoleEnum; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; -import com.mogo.och.taxi.constant.TaxtServingStatusManager; import com.mogo.och.taxi.model.TaxiModel; import com.mogo.och.taxi.ui.TaxiFragment; @@ -41,7 +40,7 @@ import java.util.List; /** * @author congtaowang * @since 2021/1/18 - * + *

* 描述 */ public class TaxiPresenter extends Presenter implements ITaxiADASStatusCallback, @@ -57,15 +56,15 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } @Override - public void onCreate( @NonNull LifecycleOwner owner ) { - super.onCreate( owner ); - CallerLogger.d( M_TAXI + TAG, "网约车-出租车拿到订单" ); + public void onCreate(@NonNull LifecycleOwner owner) { + super.onCreate(owner); + CallerLogger.d(M_TAXI + TAG, "网约车-onCreate"); } @Override - public void onDestroy( @NonNull LifecycleOwner owner ) { - super.onDestroy( owner ); - + public void onDestroy(@NonNull LifecycleOwner owner) { + super.onDestroy(owner); + CallerLogger.d(M_TAXI + TAG, "网约车-onDestroy"); releaseListeners(); TaxiModel.getInstance().release(); } @@ -74,22 +73,23 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiModel.getInstance().setADASStatusCallback(this); TaxiModel.getInstance().setControllerStatusCallback(this); TaxiModel.getInstance().setOrderStatusCallback(this); + LoginStatusManager.INSTANCE.addListener(TAG,this); } private void releaseListeners() { TaxiModel.getInstance().setADASStatusCallback(null); TaxiModel.getInstance().setControllerStatusCallback(null); TaxiModel.getInstance().setOrderStatusCallback(null); + LoginStatusManager.INSTANCE.removeListener(TAG); OCHAdasAbilityManager.getInstance().release(); - TaxiModel.getInstance().setMoGoAutopilotPlanningListener(null); } - private void runOnUIThread( Runnable executor ) { - if ( executor == null ) { + private void runOnUIThread(Runnable executor) { + if (executor == null) { return; } - if ( Looper.myLooper() != Looper.getMainLooper() ) { - UiThreadHandler.post( executor ); + if (Looper.myLooper() != Looper.getMainLooper()) { + UiThreadHandler.post(executor); } else { executor.run(); } @@ -105,14 +105,14 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS /** * 人工模式 */ - public void startManualDrive(){ + public void startManualDrive() { TaxiModel.getInstance().startServicePilotDone(); } /** * 跳过乘客验证环节 */ - public void jumpPassengerCheckDone(){ + public void jumpPassengerCheckDone() { TaxiModel.getInstance().jumpPassengerCheckDone(); } @@ -170,15 +170,15 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } //导航去订单目的地 - public void startNaviToEndStation(boolean isShow){ - TaxiModel.getInstance().startNaviToEndStation(isShow); + public void startNaviToEndStation(boolean isShow) { + TaxiModel.getInstance().startNaviToEndStation(isShow); } - public void reportToEndDisAndTime(long lastSumLength, long duration){//米/秒 - TaxiModel.getInstance().reportOrderRemain(lastSumLength,duration); + public void reportToEndDisAndTime(long lastSumLength, long duration) {//米/秒 + TaxiModel.getInstance().reportOrderRemain(lastSumLength, duration); } - public void closeOrderByMan(){ + public void closeOrderByMan() { TaxiModel.getInstance().arriveTerminal(); } @@ -188,38 +188,80 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } @Override - public void onAutopilotEnable() { - runOnUIThread(() -> mView.updateAutopilotStatus( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE)); + public void onAutopilotEnable(boolean canStartAuto) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateAutopilotStatus( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void onAutopilotDisable() { - runOnUIThread(() -> mView.updateAutopilotStatus( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE)); + public void onAutopilotDisable(boolean canStartAuto) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateAutopilotStatus( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void onAutopilotRunning() { - runOnUIThread(() -> mView.updateAutopilotStatus( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)); + public void onAutopilotRunning(boolean canStartAuto) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateAutopilotStatus( + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void onManMachineCoDriving() { - runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING)); + public void onManMachineCoDriving(boolean canStartAuto) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void updateAutopilotStatus() { - runOnUIThread(() -> mView.updateAutopilotStatus( - CallerAutoPilotStatusListenerManager.INSTANCE.getState())); + public void updateAutopilotStatus(boolean canStartAuto) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateAutopilotStatus( + CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onStartAdasFailure() { - runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.stopAnimAndUpdateBtnStatus(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override @@ -229,64 +271,109 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS @Override public void onOrdersWaitServiceChanged(@NonNull @NotNull List waitServiceList) { - runOnUIThread(() -> mView.onOrdersWaitServiceChanged(waitServiceList)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onOrdersWaitServiceChanged(waitServiceList); + } + } + }, UiThreadHandler.MODE.QUEUE); } @RequiresApi(api = Build.VERSION_CODES.P) @Override public void onCurrentOrderStatusChanged(OrderQueryRespBean.Result order) { - CallerLogger.d(M_TAXI + TAG,"order = "+order.toString()); - if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus){ + CallerLogger.d(M_TAXI + TAG, "order = " + order.toString()); + if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus) { TaxiModel.getInstance().queryAutopilotStatus(true); TaxiModel.getInstance().setStation(); } - if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){ + if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus) { TaxiModel.getInstance().startDynamicCalculateRouteInfo(); TaxiModel.getInstance().setStation(); - runOnUIThread(() -> { - mView.updateCtvAutopilotStatusTag(true); - CallerOrderListenerManager.INSTANCE.invokeOrderStatus(true); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateCtvAutopilotStatusTag(true); + CallerOrderListenerManager.INSTANCE.invokeOrderStatus(true); + } + } + }, UiThreadHandler.MODE.QUEUE); } if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus || - TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus || - TaxiOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus){ + TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus || + TaxiOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus) { TaxiModel.getInstance().startOrStopCalculateRouteInfo(false); TaxiModel.getInstance().cleanLineMarker(); TaxiModel.getInstance().cleanStation(); - runOnUIThread(() -> { - /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - mView.updateCtvAutopilotStatusTag(false); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; + * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) + */ + mView.updateCtvAutopilotStatusTag(false); - if(TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus){ - CallerOrderListenerManager.INSTANCE.invokeOrderStatus(false); + if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus) { + CallerOrderListenerManager.INSTANCE.invokeOrderStatus(false); + } + } } - }); + }, UiThreadHandler.MODE.QUEUE); } - if(TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus){ + if (TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus) { VoiceNotice.showNotice("乘客已取消行程"); } - runOnUIThread(() -> mView.updateCurrentOrderStatusChanged(order)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateCurrentOrderStatusChanged(order); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onCurrentOrderCancelDone() { - runOnUIThread(() -> mView.onCurrentOrderCancelDone()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onCurrentOrderCancelDone(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onOrderCancelDone(String orderNo) { - runOnUIThread(() -> mView.onOrderCancelDone(orderNo)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onOrderCancelDone(orderNo); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) { - runOnUIThread(() -> mView.onCurrentOrderRouteInfoGot(routeInfo)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onCurrentOrderRouteInfoGot(routeInfo); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override @@ -295,68 +382,131 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS @Override public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) { - runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters,timeInSecond)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onCurrentOrderDistToEndChanged(meters, timeInSecond); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onNewBookingOrderGot(OrderQueryRespBean.Result order) { - runOnUIThread(() -> mView.onNewBookingOrderGot(order)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onNewBookingOrderGot(order); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onGrabOrderExecuteDone() { - runOnUIThread(() -> mView.onGrabOrderExecuteDone()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onGrabOrderExecuteDone(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onGrabOrderSuccess(OrderQueryRespBean.Result order) { - runOnUIThread(() -> mView.onGrabOrderSuccess(order)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onGrabOrderSuccess(order); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onGrabOrderFailed(OrderQueryRespBean.Result order) { - runOnUIThread(() -> mView.onGrabOrderFailed(order)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onGrabOrderFailed(order); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void onDriverHasCheckedPilotCondition(boolean isSafe) { - runOnUIThread(() -> mView.onCheckPilotConditionSafe(isSafe)); + public void onDriverHasCheckedPilotCondition() { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onCheckPilotConditionSafe(); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void onNaviToEnd(boolean isAmap, boolean isShow) { - runOnUIThread( () -> mView.onNaviToEnd(isAmap,isShow)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.onNaviToEnd(isAmap, isShow); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override public void startOpenAutopilot() { - runOnUIThread(() -> { - mView.startOrStopLoadingAnim(true); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.startOrStopLoadingAnim(true); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void loginSuccess(DriverStatusQueryRespBean data) { - //设置 接单状态 - TaxtServingStatusManager.setOpenOrderStatus(data.data.servingStatus); + public void onStatusChange(LoginStatusEnum currentStatus) { //设置 是否启动订单轮训 - TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&TaxtServingStatusManager.isOpeningOrderStatus()); - + TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&LoginStatusManager.isOpenOrderType()); // 设置当前用户角色 String role = ""; - if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) { + if (TaxiDriverRoleEnum.DEMO.getCode() == LoginStatusManager.getPurpose().getCode()) { role = TaxiConst.DEMO_USER; - } else if (TaxiDriverRoleEnum.TEST.getCode() == data.data.purpose) { + } else if (TaxiDriverRoleEnum.TEST.getCode() == LoginStatusManager.getPurpose().getCode()) { role = TaxiConst.TEST_USER; } String finalRole = role; - runOnUIThread(() -> { - mView.updateOperationStatus(TaxtServingStatusManager.isOpeningOrderStatus(), finalRole); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.setRole(finalRole); + } + } + }, UiThreadHandler.MODE.QUEUE); } @Override - public void loginFail(boolean isLogin) { - + public void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum) { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if(mView!=null) { + mView.updateOperationStatus(LoginStatusManager.getOpenOrderType()); + } + } + }, UiThreadHandler.MODE.QUEUE); } } diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index 8573f511ce..4e2a292246 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -18,16 +18,15 @@ import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.Group; import androidx.fragment.app.FragmentTransaction; -import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; @@ -38,25 +37,14 @@ import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView; import com.mogo.eagle.core.function.view.MapBizView; import com.mogo.eagle.core.function.smp.view.SmallMapView; 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.mogo.view.OnPreventFastClickListener; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; -import com.mogo.och.common.module.utils.AnimatorDrawableUtil; -import com.mogo.och.common.module.utils.FrameAnimatorContainer; +import com.mogo.och.common.module.utils.ResourcesUtils; import com.mogo.och.taxi.R; -import com.mogo.och.taxi.ui.speed.SpeedView; - -import java.util.Arrays; -import java.util.Objects; - -import bag_manager.BagManagerOuterClass; -import me.jessyan.autosize.utils.AutoSizeUtils; -import mogo.telematics.pad.MessagePad; -import record_cache.RecordPanelOuterClass; /** @@ -66,18 +54,17 @@ import record_cache.RecordPanelOuterClass; * * @author tongchenfei */ -public abstract class BaseTaxiTabFragment> extends MvpFragment implements IMogoMapListener, IMoGoAutopilotRecordListener { +public abstract class BaseTaxiTabFragment> extends MvpFragment implements IMogoMapListener { private static final String TAG = "BaseOchFragment"; private RelativeLayout ctvAutopilotStatusRL; - private ImageView mAnimFlowIv; protected TextView tvOperationStatus; protected TextView mDriverRole; protected FrameLayout flStationPanelContainer; private FrameLayout flNaviPanelContainer; private MapBizView mapBizView; private Group groupTestPanel; - private SpeedView mSpeedView; + private FrameLayout mSpeedView; private ImageView mAutopilotImage; private TextView mAutopilotTv; private LinearLayout mMapswitchBtn; @@ -92,22 +79,16 @@ public abstract class BaseTaxiTabFragment { if (groupTestPanel.getVisibility() == View.VISIBLE) { groupTestPanel.setVisibility(View.GONE); @@ -200,30 +178,29 @@ public abstract class BaseTaxiTabFragment - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) + onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,true) ); // 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态 findViewById(R.id.btnAutopilotEnable).setOnClickListener(view -> - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) + onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,true) ); // 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人 findViewById(R.id.btnAutopilotRunning).setOnClickListener(view -> - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) + onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,true) ); findViewById(R.id.btnAutopilotmanco).setOnClickListener(view -> - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING)); + onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,true)); tvOperationStatus.setOnClickListener(new OnPreventFastClickListener() { @Override @@ -251,32 +228,6 @@ public abstract class BaseTaxiTabFragment { if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading @@ -371,7 +310,7 @@ public abstract class BaseTaxiTabFragment 0){ @@ -411,9 +399,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment } mDistanceAndTime2.setText(Html.fromHtml(strHtml2)); if (isFirstStartAutopilotDone){ -// VoiceNotice.showNotice(String.format(getResources() -// .getString(R.string.module_och_taxi_order_server_start_auto_tip), -// dis,disUnit,min)); isFirstStartAutopilotDone = false; } } @@ -424,7 +409,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment private void speekVoice200mTipsOnce() { mTtsLessThan200Tip = 1; - //VoiceNotice.showNotice(getResources().getString(R.string.module_och_taxi_order_arrive_end_200m_tip)); } public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) {// 单位 米, 秒 @@ -451,6 +435,8 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment @Override public void onDestroyView() { super.onDestroyView(); + mTaxiFragment = null; + mActivity = null; AmapNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi(); } @@ -462,7 +448,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment mTaxiFragment.confirmAutopilotConditionByDriver(); }else if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == mCurrentOrder.orderStatus) {//点击了完成服务,结束订单并更新订单信息 mTaxiFragment.completeOrderService(); - //VoiceNotice.showNotice(getResources().getString(R.string.module_och_taxi_order_server_completed_tip)); + //VoiceNotice.showNotice(ResourcesUtils.getString(R.string.module_och_taxi_order_server_completed_tip)); }else if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOrder.orderStatus){//前往目的地过程中可提前结束行程 //自驾中提示,接管后才能结束 if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() @@ -531,7 +517,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment showOrHideNavi(false); setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); - clearSmallMapRouteLine(); break; case ArriveAtStart: case UserArriveAtStart: @@ -548,11 +533,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment setOrRemoveMapMaker(true, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); break; case OnTheWayToEnd: -// showNotice("欢迎使用蘑菇智行"); mOrderCancel.setVisibility(View.VISIBLE); -// double orderEndStationLat = order.endSiteGcjPoint.get(1); -// double orderEndStationLng = order.endSiteGcjPoint.get(0); -// startNaviToStation(false, orderEndStationLat, orderEndStationLng); if (mTaxiFragment != null) { showNaviToEndStationFragment(false); } @@ -566,7 +547,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment showOrHideNavi(false); setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); - clearSmallMapRouteLine(); break; case JourneyCompleted: mCurrentOrder = null; @@ -600,7 +580,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment mNoDataView.setVisibility(View.GONE); mBeingOrderLayout.setVisibility(View.VISIBLE); mTaxiFragment.changeOperationViewVisible(View.GONE); - clearSmallMapRouteLine(); } else { mNoDataView.setVisibility(View.VISIBLE); mNoDatasTv.setText("暂无进行中订单"); @@ -629,14 +608,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment if (mTaxiFragment != null) { showNaviToEndStationFragment(true); } - }else if (v.getId() == R.id.taxi_start_by_auto){//自驾模式 - CallerLogger.d(M_TAXI + TAG, "自驾模式"); - mOrderStartModeBtn.setTag(0); - startOrEndService(); - } else if (v.getId() == R.id.taxi_start_by_manual){//人工模式 - CallerLogger.d(M_TAXI + TAG, "人工模式"); - mOrderStartModeBtn.setTag(1); - mTaxiFragment.confirmAutopilotConditionByDriver(); } } @@ -671,7 +642,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,mCurrentOrder.startSitePoint,R.raw.star_marker); setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,mCurrentOrder.endSitePoint,R.raw.end_marker); } - clearSmallMapRouteLine(); //提交取消订单后的回调 ToastUtils.showShort("订单取消成功"); //更新界面 @@ -680,14 +650,10 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment clearOrderTag(); } - private void clearSmallMapRouteLine() { -// CallerSmpManager.clearPolyline(); - } - /** * 订单流转debug START */ - private void initOrderTestBar(View view) { + private void initOrderTestBar() { mOrderStatus.setOnLongClickListener(v -> { mTaxiFragment.clickTestBar(); return false; @@ -795,11 +761,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment public void updateOrderBottomBtnUI() { try { - if ((int)mOrderStartModeBtn.getTag() == 1){//人工 - mTaxiFragment.startManualDirve(); - return; - } - ToastUtils.showLong(getResources().getString( + ToastUtils.showLong(ResourcesUtils.getString( R.string.module_och_taxi_order_choose_start_autopilot_tip)); showOrHideOrderModeBtn(false); updateOrderBottomBtn(getString(R.string.module_och_taxi_order_server_wait_passenger_start), @@ -818,7 +780,4 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment background.setColor(bgColorId); mOrderServerStatus.setClickable(isClickable); } - /** - * END - */ } diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 89f97e6b1d..5dc1b0b2fb 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -15,18 +15,18 @@ import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.fragment.app.FragmentTransaction; -import com.alibaba.android.arouter.launcher.ARouter; -import com.mogo.commons.module.status.MogoStatusManager; +import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.data.temp.EventLogout; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.common.module.biz.constant.OchCommonConst; -import com.mogo.och.common.module.biz.provider.LoginService; +import com.mogo.map.overlay.IMoGoOverlayManager; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum; import com.mogo.och.taxi.R; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.bean.OrderQueryRespBean; import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean; import com.mogo.och.taxi.model.TaxiModel; -import com.mogo.och.taxi.network.LoginBusImpl; import com.mogo.och.taxi.presenter.TaxiPresenter; import com.mogo.och.taxi.utils.TPRouteDataTestUtils; @@ -37,8 +37,6 @@ import org.greenrobot.eventbus.ThreadMode; import java.lang.ref.WeakReference; import java.util.List; -import bag_manager.BagManagerOuterClass; - /** * @author congtaowang * @since 2021/1/18 @@ -58,18 +56,17 @@ public class TaxiFragment extends BaseTaxiTabFragment grabOrderFragmentWR; + // 待服务信息 private WeakReference serverOrdersFragmentWR; + + // 查看运营情况 点击账户信息右边的箭头展示 private WeakReference personalDialogFragment = null; - private LoginService loginService; @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation(); - if(loginService!=null){ - loginService.registerFragment(this, getPresenter(),new LoginBusImpl()); - } } @Nullable @@ -155,45 +152,50 @@ public class TaxiFragment extends BaseTaxiTabFragment - - - + + + \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_order_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_order_bg.xml deleted file mode 100644 index f5efecaa11..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_order_bg.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/auto_or_manual_btn_view.xml b/OCH/taxi/driver/src/main/res/layout/auto_or_manual_btn_view.xml deleted file mode 100644 index 42d12d25ad..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/auto_or_manual_btn_view.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml index 320694c3e8..3eff9cffee 100644 --- a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml @@ -21,56 +21,46 @@ app:layout_constraintStart_toStartOf="parent" app:locationIcon3DRes="@raw/chuzuche" /> - + app:layout_constraintTop_toTopOf="parent"/> - - + app:layout_constraintTop_toBottomOf="@+id/taxi_speed_contain" + > + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_marginLeft="28dp" + android:layout_toRightOf="@+id/module_och_autopilot_iv" + android:text="自动驾驶" + android:textColor="@color/bus_autopilot_text_color_normal" + android:textSize="@dimen/dp_32" + android:textStyle="bold" /> @@ -203,11 +193,11 @@ android:id="@+id/module_mogo_och_station_panel_container" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="244dp" android:background="@android:color/transparent" - app:layout_constraintLeft_toLeftOf="@+id/taxi_speed_contain" - app:layout_constraintTop_toTopOf="parent" - app:layout_goneMarginTop="@dimen/module_mogo_och_station_panel_container_margin_top_no_call" + android:layout_marginStart="@dimen/dp_10" + android:layout_marginTop="-25dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/module_mogo_och_autopilot_status" tools:visibility="visible" /> - - - - - - - - - - - - - - - - -