diff --git a/OCH/bus/driver/.gitignore b/OCH/bus/driver/.gitignore deleted file mode 100644 index 42afabfd2a..0000000000 --- a/OCH/bus/driver/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/OCH/bus/driver/build.gradle b/OCH/bus/driver/build.gradle deleted file mode 100644 index a0ac3cce2e..0000000000 --- a/OCH/bus/driver/build.gradle +++ /dev/null @@ -1,68 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'kotlin-kapt' - -android { - compileSdkVersion rootProject.ext.android.compileSdkVersion - // buildToolsVersion rootProject.ext.android.buildToolsVersion - defaultConfig { - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion - versionCode Integer.valueOf(VERSION_CODE) - versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") - - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles "consumer-rules.pro" - - kapt { - useBuildCache = false - arguments { - arg("AROUTER_MODULE_NAME", "bus"+project.getName()) - } - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - lintOptions { - abortOnError false - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation rootProject.ext.dependencies.kotlinstdlib - implementation rootProject.ext.dependencies.androidxappcompat - implementation rootProject.ext.dependencies.arouter - kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.androidxconstraintlayout - implementation rootProject.ext.dependencies.amapnavi3dmap - - implementation rootProject.ext.dependencies.rxjava - implementation rootProject.ext.dependencies.rxandroid - implementation rootProject.ext.dependencies.androidxrecyclerview - compileOnly rootProject.ext.dependencies.recyclerviewadapterhelper - - implementation project(":OCH:common:common") - compileOnly project(":libraries:mogo-map") - -} - -apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() \ No newline at end of file diff --git a/OCH/bus/driver/consumer-rules.pro b/OCH/bus/driver/consumer-rules.pro deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/OCH/bus/driver/gradle.properties b/OCH/bus/driver/gradle.properties deleted file mode 100644 index dd5c44ee62..0000000000 --- a/OCH/bus/driver/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -GROUP=com.mogo.och -POM_ARTIFACT_ID=och-bus -VERSION_CODE=1 diff --git a/OCH/bus/driver/proguard-rules.pro b/OCH/bus/driver/proguard-rules.pro deleted file mode 100644 index 481bb43481..0000000000 --- a/OCH/bus/driver/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# 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/OCH/bus/driver/src/main/AndroidManifest.xml b/OCH/bus/driver/src/main/AndroidManifest.xml deleted file mode 100644 index 9cc8d26e67..0000000000 --- a/OCH/bus/driver/src/main/AndroidManifest.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - \ No newline at end of file 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 deleted file mode 100644 index cc8166797e..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusDriverProvider.kt +++ /dev/null @@ -1,40 +0,0 @@ -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.bus.util.BusAnalyticsManager -import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.biz.provider.CommonServiceImpl -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics - -/** - * 网约车小巴业务实现入口 - * - * @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() - } - OchAutopilotAnalytics.ochEventKey = BusAnalyticsManager - return busFragment!! - } - - override fun resetFragment() { - busFragment = null - OchAutopilotAnalytics.ochEventKey = null - } - - override fun init(context: Context) { - CallerLogger.d(tag, "准备show fragment") - } -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.kt deleted file mode 100644 index 5f283b341a..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.mogo.och.bus.bean - -import java.io.Serializable - -/** - * @author: wangmingjun - * @date: 2022/9/23 - */ -data class WriteOffPassenger( - var phone: String? = null, - var orderNo: String? = null, - @JvmField var passengerSize: Int = 0, - var writeOffTime: Long = 0 -) : Serializable diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusCloseTaskRequest.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusCloseTaskRequest.kt deleted file mode 100644 index 6cf1e3cf95..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusCloseTaskRequest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.mogo.och.bus.bean.request - -import com.mogo.commons.storage.SharedPrefsMgr - -/** - * 中止/结束任务请求 - */ -data class BusCloseTaskRequest(val taskId: Int, val sn: String = SharedPrefsMgr.getInstance().sn) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusQueryLineStationsRequest.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusQueryLineStationsRequest.kt deleted file mode 100644 index b385d27322..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusQueryLineStationsRequest.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.och.bus.bean.request - -import com.mogo.commons.storage.SharedPrefsMgr - -/** - * @author congtaowang - * @since 2021/3/22 - * - * 根据车机行驶线路站点信息 - */ -data class BusQueryLineStationsRequest(private val sn: String = SharedPrefsMgr.getInstance().sn) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusResetDrivingLineRequest.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusResetDrivingLineRequest.kt deleted file mode 100644 index 60e8e88453..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusResetDrivingLineRequest.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.mogo.och.bus.bean.request - -import com.mogo.commons.storage.SharedPrefsMgr - -/** - * @author: wangmingjun - * @date: 2021/10/18 - */ -data class BusResetDrivingLineRequest(//切换到的线路id - val taskId: Int, - val sn: String = SharedPrefsMgr.getInstance().sn -) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusRoutePlanningUpdateReqBean.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusRoutePlanningUpdateReqBean.kt deleted file mode 100644 index 083c6f8de0..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusRoutePlanningUpdateReqBean.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.bus.bean.request - -/** - * Created by pangfan on 2021/8/19 - * - * 订单状态更新请求数据结构 - */ -class BusRoutePlanningUpdateReqBean( - var sn: String, var lineId: Int, var startSiteId: Int, - var endSiteId: Int, var points: List -) { - data class Result( - var latitude: Double? = null, - var longitude: Double? = null - ) -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusUpdateSiteStatusRequest.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusUpdateSiteStatusRequest.kt deleted file mode 100644 index e1f71ee5c6..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/BusUpdateSiteStatusRequest.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.bus.bean.request - -import com.mogo.commons.storage.SharedPrefsMgr - -/** - * @author congtaowang - * @since 2021/3/22 - * - * 小巴车运营状态请求参数 - */ -class BusUpdateSiteStatusRequest( - var taskId: Int, //站点id - var siteId: Int, //站点序号 - var seq: Int, - var sn: String = SharedPrefsMgr.getInstance().sn -) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/CarHeartbeatReqBean.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/CarHeartbeatReqBean.kt deleted file mode 100644 index fc6918597e..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/request/CarHeartbeatReqBean.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.bus.bean.request - -import com.mogo.och.bus.constant.BusConst -import java.util.UUID - -/** - * Created on 2021/9/16 - * - * 上传车机心跳信息请求数据 - */ -class CarHeartbeatReqBean( - var sn: String, //经度 - var lon: Double, //纬度 - var lat: Double, - var msgId: String = UUID.randomUUID().toString(), //心跳信息唯一标识 - var interval: Int = (BusConst.LOOP_PERIOD_60S / 1000).toInt() //上报间隔,单位秒,非必传,默认60秒 -) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusQueryLineTaskResponse.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusQueryLineTaskResponse.kt deleted file mode 100644 index 07e3e98a55..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusQueryLineTaskResponse.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.och.bus.bean.response - -import com.mogo.eagle.core.data.BaseData - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -data class BusQueryLineTaskResponse(var data: List?) : BaseData() { - - data class Result( - var id: Int = 0, - var taskStartTime: Long = 0, - ) -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusQueryLinesResponse.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusQueryLinesResponse.kt deleted file mode 100644 index 0d78499741..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusQueryLinesResponse.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.mogo.och.bus.bean.response - -import com.mogo.eagle.core.data.BaseData - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -data class BusQueryLinesResponse(var data: MutableList?) : BaseData() { - data class Result( - var lineId: Int = 0, //线路id - var name: String? = null, //线路名字 - var choose: Int = 0, // 1:绑定 2:未被绑定 - var startSiteName: String? = null, //始发站名称 - var endSiteName: String? = null, //终点名称 - - var open: Boolean = false, //true 打开状态 false - var haveTask: Boolean = false, - - var taskList: MutableList? = null - ) -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusRoutesResponse.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusRoutesResponse.kt deleted file mode 100644 index ffe81af8f0..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/response/BusRoutesResponse.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.och.bus.bean.response - -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.data.bean.BusRoutesResult - -/** - * 网约车小巴路线接口请求响应结果 - * - * @author tongchenfei - */ -data class BusRoutesResponse(var result: BusRoutesResult) : BaseData() diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java deleted file mode 100644 index fed8821eef..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mogo.och.bus.callback; - -import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.response.BusQueryLinesResponse; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public interface IBusLinesCallback { - void onBusLinesChange(BusQueryLinesResponse lines); - void onChangeLineIdSuccess(); - void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java deleted file mode 100644 index c0a711cb3c..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mogo.och.bus.callback; - -import com.mogo.och.bus.bean.WriteOffPassenger; -import com.mogo.och.data.bean.BusStationBean; - -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2022/9/26 - */ -public interface IPassengerCallback { - void playPassenger(WriteOffPassenger passenger); - //自驾返回失败 - void onStartAdasFailure(); - void startOpenAutopilot(); - - void updateBusTaskStatus(String lineName,String lintTime, - List stationList, - int arrivingOrArrivedIndex, - boolean isArrived); - - /** - * 结束清理一遍、选择任务后清理一遍 - */ - void clearBusStationsMarkers(); - - void updateEmptyUi(); - void hideSlidePanel(); -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt deleted file mode 100644 index 8b3f020005..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.mogo.och.bus.constant - -/** - * Created on 2021/12/6 - */ -class BusConst { - companion object { - // OCH arouter 路由path - - // 测试用的广播 - const val BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY = "sceneType" - // 无状态 - const val STATION_STATUS_IDLE = 0 - // 已过站(历史站) - const val STATION_STATUS_LEAVING = 1 - // 到站(当前站) - const val STATION_STATUS_STOPPED = 2 - // 未到站(未到站) - const val STATION_STATUS_ARRIVING = 3 - - // 上报心跳轮询ms - const val LOOP_PERIOD_60S = 60 * 1000L - // 开始服务启动自动驾驶等待时间(埋点上传) - const val LOOP_PERIOD_15S = 15 * 1000L - const val LOOP_PERIOD_1S = 1 * 1000L - const val LOOP_DELAY = 100L - - // 下发给MEC轨迹信息间隔时间 10秒 - const val LOOP_PERIOD_10S = 10 * 1000L - // 尝试下发给MEC轨迹最多10次 - const val LOOP_SEND_TRAJ_TIMES = 10 - - //起点UUID - const val BUS_START_MAP_MAKER = "bus_start_map_maker"; - //终点UUID - const val BUS_END_MAP_MAKER = "bus_end_map_maker"; - - - /** - * 订单起终点Marker类型 - */ - const val TYPE_MARKER_BUS_ORDER = "TYPE_MARKER_BUS_ORDER" - - const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L - - //围栏到站 暂定10米 - const val ARRIVE_AT_END_STATION_DISTANCE = 15 - - // 轮询 - const val LOOP_PASSENGER_5S = 5 * 1000L - const val LOOP_PASSENGER_2S = 2 * 1000L - const val LOOP_PASSENGER_1S = 1 * 1000L - const val LOOP_DELAY_500 = 500L - - const val DELAY_10S = 10 * 1000L - } -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.kt deleted file mode 100644 index 837f9c4dfa..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.kt +++ /dev/null @@ -1,420 +0,0 @@ -package com.mogo.och.bus.fragment - -import android.animation.ObjectAnimator -import android.annotation.SuppressLint -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.view.animation.LinearInterpolator -import android.widget.TextView -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.isCanStartAutopilot -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState -import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.attachAutopilotBeforeLaunchView -import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.R -import com.mogo.och.bus.constant.BusConst -import com.mogo.och.bus.model.OrderModel -import com.mogo.och.bus.view.SlidePanelView -import com.mogo.och.common.module.utils.ResourcesUtils -import com.mogo.och.common.module.utils.ResourcesUtils.getColor -import com.mogo.och.common.module.utils.SoundPoolHelper -import kotlinx.android.synthetic.main.bus_base_fragment.bus_autopilot_btn_iv -import kotlinx.android.synthetic.main.bus_base_fragment.bus_autopolot_btn_tv -import kotlinx.android.synthetic.main.bus_base_fragment.fl_speed -import kotlinx.android.synthetic.main.bus_base_fragment.mapBizView -import kotlinx.android.synthetic.main.bus_base_fragment.module_mogo_och_arrived_tv -import kotlinx.android.synthetic.main.bus_base_fragment.module_mogo_och_autopilot_status -import kotlinx.android.synthetic.main.bus_base_fragment.module_mogo_och_slide_panel -import kotlinx.android.synthetic.main.bus_base_fragment.module_mogo_och_station_panel_container -import kotlinx.android.synthetic.main.bus_base_fragment.smallMapView -import org.greenrobot.eventbus.EventBus - -/** - * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况 - * - * - * 部分业务放在了此处处理 - * - * @author tongchenfei - */ -abstract class BaseBusTabFragment?> : MvpFragment(){ - - //启动自驾动画 - private var autopilotLoadingAnimator: ObjectAnimator? = null - var isAnimateRunning = false - - private val TAG = "BaseBusTabFragment" - - /** - * 滑动按钮触发的事件 - */ - private val onSlideToEndListener = SlidePanelView.OnSlidePanelMoveToEndListener { - // 此处做一个代理,处理一下共有情况 - if (slidePanelOnEndListener != null) { - slidePanelOnEndListener!!.moveToEnd() - } - } - - override fun getLayoutId(): Int { - return R.layout.bus_base_fragment - } - - override fun initViews() { - attachAutopilotBeforeLaunchView(fl_speed.context, fl_speed) - LayoutInflater.from(context).inflate(stationPanelViewId, module_mogo_och_station_panel_container) - module_mogo_och_slide_panel!!.setOnSlidePanelMoveToEndListener(onSlideToEndListener) - initListener() - setAutopilotBtnStatus(getState(), isCanStartAutopilot(false, 0)) - module_mogo_och_autopilot_status!!.setOnClickListener(object : OnPreventFastClickListener() { - override fun onClickImpl(v: View) { - restartAutopilot() - } - }) - - module_mogo_och_arrived_tv.setOnClickListener { onArriveStation() } - - } - - override fun initViews(savedInstanceState: Bundle?) { - super.initViews(savedInstanceState) - mapBizView!!.onCreate(savedInstanceState) - smallMapView!!.onCreateView(savedInstanceState) - } - - override fun onResume() { - super.onResume() - mapBizView!!.onResume() - smallMapView!!.onResume() - } - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { - EventBus.getDefault().register(this) - return super.onCreateView(inflater, container, savedInstanceState) - } - - protected abstract fun onArriveStation() - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - mapBizView!!.onSaveInstanceState(outState) - } - - override fun onLowMemory() { - super.onLowMemory() - mapBizView!!.onLowMemory() - } - - override fun onPause() { - super.onPause() - mapBizView!!.onPause() - smallMapView!!.onPause() - } - - override fun onDestroyView() { - mapBizView!!.onDestroy() - if (smallMapView != null) { - smallMapView!!.onDestroy() - } - EventBus.getDefault().unregister(this) - super.onDestroyView() - } - - /** - * 测试到站 - */ - protected abstract fun debugArrivedStation() - private fun initListener() {} - - /** - * 展示滑动按钮 - * - * @param text 指定的文字 - */ - fun showSlidePanel(text: String?) { - UiThreadHandler.post({ - module_mogo_och_slide_panel!!.setText(text) - module_mogo_och_slide_panel!!.visibility = View.VISIBLE - }, UiThreadHandler.MODE.QUEUE) - setArrivedClickable(false) - } - - /** - * 设置进站按钮状态 - * - * @param isClickable - */ - fun setArrivedClickable(isClickable: Boolean) { - UiThreadHandler.post({ - module_mogo_och_arrived_tv!!.isEnabled = isClickable - if (isClickable) { - module_mogo_och_arrived_tv!!.setTextColor(getColor(R.color.bus_white)) - } else { - module_mogo_och_arrived_tv!!.setTextColor(getColor(R.color.bus_arrived_btn_un_clickable_color)) - } - }, UiThreadHandler.MODE.QUEUE) - } - - /** - * 隐藏滑动按钮 - */ - fun hideSlidePanel() { - UiThreadHandler.post( - { module_mogo_och_slide_panel!!.visibility = View.GONE }, - UiThreadHandler.MODE.QUEUE - ) - } - - fun playDI() { - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - } - - /** - * 改变自动驾驶状态 - * - * @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中 - */ - fun onAutopilotStatusChanged(autopilotStatus: Int, canStartAutopilt: Boolean) { - UiThreadHandler.post({ - changeAutopilotBtnView( - autopilotStatus, - isAnimateRunning, - canStartAutopilt - ) - }, UiThreadHandler.MODE.QUEUE) - } - - fun setAutopilotBtnStatus(autopilotStatus: Int, canStartAutopilt: Boolean) { - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE - == autopilotStatus - ) { //0不可用 - bus_autopolot_btn_tv!!.setTextColor(getColor(R.color.bus_autopilot_text_color_disable)) - bus_autopolot_btn_tv!!.text = - ResourcesUtils.getString(R.string.bus_loading_autopilot_runnig_tv) - bus_autopilot_btn_iv!!.setImageResource(R.drawable.bus_disable_autopilot_icon) - module_mogo_och_autopilot_status!!.isClickable = true - module_mogo_och_autopilot_status!!.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg) - } else { - bus_autopolot_btn_tv!!.setTextColor( - AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal) - ) - bus_autopilot_btn_iv!!.setImageResource(R.drawable.bus_ic_autopilot) - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用 - bus_autopolot_btn_tv!!.text = - ResourcesUtils.getString(R.string.bus_loading_autopilot_runnig_tv) - if (canStartAutopilt) { - module_mogo_och_autopilot_status!!.isClickable = true - module_mogo_och_autopilot_status!!.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg) - } else { - bus_autopolot_btn_tv!!.setTextColor( - AbsMogoApplication.getApp() - .getColor(R.color.bus_autopilot_text_color_disable) - ) - bus_autopilot_btn_iv!!.setImageResource(R.drawable.bus_disable_autopilot_icon) - module_mogo_och_autopilot_status!!.isClickable = true - module_mogo_och_autopilot_status!!.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg) - } - } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) { - bus_autopolot_btn_tv!!.setText(R.string.bus_loading_autopilot_runnig_tv) - module_mogo_och_autopilot_status!!.isClickable = true - module_mogo_och_autopilot_status!!.setBackgroundResource(R.drawable.bus_autopilot_2_status_bg) - } else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING - == autopilotStatus - ) { - bus_autopolot_btn_tv!!.setText(R.string.bus_pingxing_driver) - module_mogo_och_autopilot_status!!.isClickable = false - module_mogo_och_autopilot_status!!.setBackgroundResource(R.drawable.common_autopilot_pxjs) - } - } - } - - fun updateAutopilotStatus(autopilotStatus: Int) { - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - == autopilotStatus - ) { //2 running - bus_autopilot_btn_iv!!.setImageResource(R.drawable.bus_right_autopilot_icon) - bus_autopolot_btn_tv!!.setTextColor(getColor(R.color.bus_autopilot_text_color_normal)) - bus_autopolot_btn_tv!!.text = - ResourcesUtils.getString(R.string.bus_loading_autopilot_success_tv) - // ctvAutopilotStatus.setSelected(false); - module_mogo_och_autopilot_status!!.isClickable = false - } else { - bus_autopilot_btn_iv!!.setImageResource(R.drawable.bus_wrong_autopilot_icon) - bus_autopolot_btn_tv!!.setTextColor(getColor(R.color.bus_autopilot_text_color_normal)) - bus_autopolot_btn_tv!!.text = - ResourcesUtils.getString(R.string.bus_loading_autopilot_failure_tv) - module_mogo_och_autopilot_status!!.isClickable = false - // ctvAutopilotStatus.setSelected(false); - } - UiThreadHandler.postDelayed({ - setAutopilotBtnStatus( - autopilotStatus, - isCanStartAutopilot(false, 0) - ) - }, 1000) - } - - private fun changeAutopilotBtnView( - autopilotStatus: Int, - isAnimateRunning: Boolean, - canStartAutopilt: Boolean - ) { - if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - != autopilotStatus - ) { - // 主动开启自动驾驶中,不为2(为0、1)则继续loading - return - } - if (isAnimateRunning) { - stopAnimAndUpdateBtnStatus() - } else { - setAutopilotBtnStatus(autopilotStatus, canStartAutopilt) - } - } - - fun stopAnimAndUpdateBtnStatus() { - stopAutopilotAnimation() - updateAutopilotStatus(getState()) - } - - /** - * 隐藏【自动驾驶】按钮 - */ - fun hideAutopilotBiz() {} - - /** - * 展示【自动驾驶】按钮 - */ - fun showAutopilotBiz() {} - open val slidePanelOnEndListener: SlidePanelView.OnSlidePanelMoveToEndListener? - get() = null - - /** - * 获取站点面板view,在[.initViews]时候添加到container中 - * - * @return 站点面板view - */ - abstract val stationPanelViewId: Int - - /** - * 重新开启自动驾驶 - */ - abstract fun restartAutopilot() - - /** - * 模拟自动驾驶返回状态 - * - * @param status - */ - abstract fun debugAutoPilotStatus(status: Int) - - /** - * 开启自动驾驶中间动画 - */ - fun startAutopilotAnimation() { - isAnimateRunning = true - bus_autopolot_btn_tv!!.text = - ResourcesUtils.getString(R.string.bus_loading_autopilot_tv) - bus_autopolot_btn_tv!!.setTextColor(getColor(R.color.bus_autopilot_text_color_normal)) - module_mogo_och_autopilot_status!!.isClickable = true - bus_autopilot_btn_iv!!.setImageResource(R.drawable.bus_loading_autopilot_icon) - if (autopilotLoadingAnimator == null) { - autopilotLoadingAnimator = - ObjectAnimator.ofFloat(bus_autopilot_btn_iv, "rotation", 0f, 360f) - autopilotLoadingAnimator!!.interpolator = LinearInterpolator() - autopilotLoadingAnimator!!.repeatCount = -1 //无限循环 - autopilotLoadingAnimator!!.setDuration(1000) //设置持续时间 - } - autopilotLoadingAnimator!!.start() //动画开始 - startingAutoApilotCountDown() - } - - private fun startingAutoApilotCountDown() { - //10s 若自动驾驶没有开启,则结束动画 - UiThreadHandler.postDelayed({ //未启动成功做处理 - if (isAnimateRunning) { // 只判断动画是否在进行,根据自动驾驶当前状态去设置自动驾驶状态 - stopAutopilotAnimation() - updateAutopilotStatus(getState()) - } - }, BusConst.TIMER_START_AUTOPILOT_INTERVAL) - } - - /** - * 停止自动驾驶中间动画 - */ - protected fun stopAutopilotAnimation() { - if (autopilotLoadingAnimator != null) { - autopilotLoadingAnimator!!.end() - bus_autopilot_btn_iv!!.clearAnimation() - autopilotLoadingAnimator = null - isAnimateRunning = false - } - } - - override fun onDestroy() { - super.onDestroy() - } - - /** - * Bus调试信息:线路、轨迹等信息 - * - * - * START - */ - private var busTestBar: View? = null - private var lineIdTV: TextView? = null - private var lineNameTV: TextView? = null - private var trajMd5TV: TextView? = null - private var stopMd5TV: TextView? = null - private var trajMd5DPQPTV: TextView? = null - private var stopMd5DPQPTV: TextView? = null - @SuppressLint("SetTextI18n") - fun showHideTestBar() { - if (busTestBar == null) { - busTestBar = findViewById(R.id.module_mogo_och_bus_test_bar) - lineIdTV = findViewById(R.id.bus_test_bar_current_line_id) - lineNameTV = findViewById(R.id.bus_test_bar_current_line_name) - trajMd5TV = findViewById(R.id.bus_test_bar_current_traj_md5) - stopMd5TV = findViewById(R.id.bus_test_bar_current_stop_md5) - trajMd5DPQPTV = findViewById(R.id.bus_test_bar_current_traj_md5_dpqp) - stopMd5DPQPTV = findViewById(R.id.bus_test_bar_current_stop_md5_dpqp) - } - if (busTestBar!!.visibility == View.VISIBLE) { - busTestBar!!.visibility = View.GONE - } else { - val routesResult = OrderModel.getInstance().busRoutesResult - lineIdTV!!.text = "lineId:" + (routesResult?.lineId?.toString() ?: "") - lineNameTV!!.text = "lineName:" + if (routesResult == null) "" else routesResult.name - trajMd5TV!!.text = "TMd5:" + if (routesResult == null) "" else routesResult.csvFileMd5 - stopMd5TV!!.text = "SMd5:" + if (routesResult == null) "" else routesResult.txtFileMd5 - trajMd5DPQPTV!!.text = - "TMd5DPQP:" + if (routesResult == null) "" else routesResult.csvFileMd5DPQP - stopMd5DPQPTV!!.text = - "SMd5DPQP:" + if (routesResult == null) "" else routesResult.txtFileMd5DPQP - busTestBar!!.visibility = View.VISIBLE - } - } - - @SuppressLint("SetTextI18n") - fun updateBusTestBarInfo() { - if (busTestBar != null && busTestBar!!.visibility == View.VISIBLE) { - val routesResult = OrderModel.getInstance().busRoutesResult - lineIdTV!!.text = "lineId:" + (routesResult?.lineId?.toString() ?: "") - lineNameTV!!.text = "lineName:" + if (routesResult == null) "" else routesResult.name - trajMd5TV!!.text = "TMd5:" + if (routesResult == null) "" else routesResult.csvFileMd5 - stopMd5TV!!.text = "SMd5:" + if (routesResult == null) "" else routesResult.txtFileMd5 - trajMd5DPQPTV!!.text = - "TMd5DPQP:" + if (routesResult == null) "" else routesResult.csvFileMd5DPQP - stopMd5DPQPTV!!.text = - "SMd5DPQP:" + if (routesResult == null) "" else routesResult.txtFileMd5DPQP - } - } -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.kt deleted file mode 100644 index 53be0e25be..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.kt +++ /dev/null @@ -1,512 +0,0 @@ -package com.mogo.och.bus.fragment - -import android.content.Intent -import android.graphics.BitmapFactory -import android.os.Bundle -import android.view.View -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.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getOverlayManager -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.ActivityUtils -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.map.MogoMap -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.constant.BusConst -import com.mogo.och.bus.presenter.BusPresenter -import com.mogo.och.bus.ui.BusSwitchLineActivity -import com.mogo.och.bus.view.SlidePanelView -import com.mogo.och.common.module.utils.BlinkAnimationUtil -import com.mogo.och.common.module.utils.OCHThreadPoolManager -import com.mogo.och.common.module.utils.ResourcesUtils -import com.mogo.och.common.module.utils.ResourcesUtils.getColor -import com.mogo.och.common.module.utils.createQRCodeWithPicture -import com.mogo.och.common.module.wigets.BindQRCodeDialog -import com.mogo.och.common.module.wigets.OCHCommitDialog -import com.mogo.och.data.bean.BusStationBean -import kotlinx.android.synthetic.main.bug_fragment_och.bus_panel_first_station -import kotlinx.android.synthetic.main.bug_fragment_och.bus_panel_second_station -import kotlinx.android.synthetic.main.bug_fragment_och.bus_panel_third_station -import kotlinx.android.synthetic.main.bug_fragment_och.bus_task_time_tv -import kotlinx.android.synthetic.main.bug_fragment_och.group_stations_panel -import kotlinx.android.synthetic.main.bug_fragment_och.module_och_bus_line_name -import kotlinx.android.synthetic.main.bug_fragment_och.switch_line_btn -import kotlinx.android.synthetic.main.bus_base_fragment.smallMapView -import kotlinx.android.synthetic.main.bus_no_line_view.no_line_data_view -import me.jessyan.autosize.utils.AutoSizeUtils -import org.greenrobot.eventbus.Subscribe -import org.greenrobot.eventbus.ThreadMode - -/** - * 网约车小巴界面 - * - * @author tongchenfei - */ -class BusFragment : BaseBusTabFragment(), - SlidePanelView.OnSlidePanelMoveToEndListener, View.OnClickListener { - private var startStation: BusStationBean? = null - private var endStation: BusStationBean? = null - override fun getTagName(): String { - return "BusFragment" - } - - override fun onActivityCreated(savedInstanceState: Bundle?) { - super.onActivityCreated(savedInstanceState) - } - - override fun onDestroyView() { - if (mPresenter != null) { - mPresenter!!.onDestroy(this) - } - val overlayManager = getOverlayManager() - if (overlayManager != null) { - overlayManager.removeAllLines() - overlayManager.removeAllPoints() - } - super.onDestroyView() - } - - override fun initViews() { - super.initViews() - switch_line_btn!!.tag = 0 - d(SceneConstant.M_BUS + TAG, "initView: " + getState()) - // 初始化的时候设置 UI 按钮状态 - showAutopilotBiz() - switch_line_btn!!.setOnClickListener(this) - module_och_bus_line_name!!.setOnLongClickListener { v: View? -> - showHideTestBar() - false - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - fun changeOverview(eventLogout: EventLogout) { - if (eventLogout.messgae == EventLogout.LOGOUT_TYPE) { - d(SceneConstant.M_BUS + TAG, "changeOverview Event消息去登出") - mPresenter!!.logout() - } else if (eventLogout.messgae == EventLogout.SHOW_QR_TYPE) { //显示二维码 - d(SceneConstant.M_BUS + TAG, "changeOverview Event qrcode") - val qrUrl = String.format( - FunctionBuildConfig.urlJson.bindDriverQRUrl, - SharedPrefsMgr.getInstance().sn - ) - val bmQr = createQRCodeWithPicture( - BitmapFactory.decodeResource(resources, R.drawable.icon_qr_center_logo), - qrUrl, - AutoSizeUtils.dp2px(context, 340f), - AutoSizeUtils.dp2px(context, 340f), - true - ) - if (bmQr != null) { - context?.let { - val builder = BindQRCodeDialog.Builder() - builder.title(ResourcesUtils.getString(R.string.bind_driver_qr_title)) - .cancelStr(ResourcesUtils.getString(R.string.qr_cancel)) - .qrBm(bmQr).build(it)!!.show() - } - - } else { - d(SceneConstant.M_BUS + TAG, "bmQr = null ") - } - } - } - - override fun onArriveStation() { - mPresenter!!.arriveStation(null, "点击进站触发进站操作") - } - - override fun debugArrivedStation() { - mPresenter!!.arriveStation(null, "点击debug进站按钮触发进站操作") - } - - override val stationPanelViewId: Int - get() = R.layout.bug_fragment_och - - override fun createPresenter(): BusPresenter { - return BusPresenter(this) - } - - override fun onResume() { - super.onResume() - } - - fun hideStationsPanel() { - group_stations_panel!!.visibility = View.GONE - no_line_data_view!!.visibility = View.VISIBLE - } - - fun showStationsPanel() { - group_stations_panel!!.visibility = View.VISIBLE - no_line_data_view!!.visibility = View.GONE - } - - fun updateLineEmptyUI() { - setArrivedClickable(false) - showOrHideSwitchLineBtn(true) - hideStationsPanel() - hideSlidePanel() - resetStationBlinkAnim() - } - - private fun resetStationBlinkAnim() { - BlinkAnimationUtil.clearAnimation(bus_panel_first_station!!.getCircleImageView()) - BlinkAnimationUtil.clearAnimation(bus_panel_second_station!!.getCircleImageView()) - BlinkAnimationUtil.clearAnimation(bus_panel_third_station!!.getCircleImageView()) - } - - fun updateBusTaskStatus( - lineName: String?, lineTime: String, - stationList: List?, - arrivingOrArrivedIndex: Int, - isArrived: Boolean - ) { - UiThreadHandler.post(Runnable { - if (activity == null) { - return@Runnable - } - if (stationList == null) { - // 获取小巴数据失败 - return@Runnable - } - showStationsPanel() - showOrHideSwitchLineBtn(false) - module_och_bus_line_name!!.text = lineName - bus_task_time_tv!!.text = ResourcesUtils.getString(R.string.bus_line_time_tag) + lineTime - // 渲染小巴路线数据 - updateBusStationStatus(stationList, arrivingOrArrivedIndex, isArrived) - }, UiThreadHandler.MODE.QUEUE) - } - - private fun updateBusStationStatus( - stationList: List, - arrivingOrArrivedIndex: Int, - isArrived: Boolean - ) { - startStation = stationList[0] - endStation = stationList[stationList.size - 1] - if (arrivingOrArrivedIndex == stationList.size - 1 && isArrived) { - //切换路线和结束路线按钮切换 - showSlidePanel("单程结束") - setOrRemoveMapMaker( - false, - BusConst.BUS_END_MAP_MAKER, - endStation!!.lat, - endStation!!.lon, - R.raw.end_marker - ) - } else if (arrivingOrArrivedIndex == 0 && isArrived) { - showSlidePanel("滑动出发") - setOrRemoveMapMaker( - true, BusConst.BUS_START_MAP_MAKER, - startStation!!.lat, startStation!!.lon, R.raw.star_marker - ) - setOrRemoveMapMaker( - true, BusConst.BUS_END_MAP_MAKER, - endStation!!.lat, endStation!!.lon, R.raw.end_marker - ) - } else { - if (isArrived) { - // 重置滑动按钮文字 - showSlidePanel("滑动出发") - } - setOrRemoveMapMaker( - false, - BusConst.BUS_START_MAP_MAKER, - startStation!!.lat, - startStation!!.lon, - R.raw.star_marker - ) - setOrRemoveMapMaker( - true, - BusConst.BUS_END_MAP_MAKER, - endStation!!.lat, - endStation!!.lon, - R.raw.end_marker - ) - } - if (stationList.size > 2) { //只有两个站点 - updateMoreThanTwoStationsUI(stationList, arrivingOrArrivedIndex, isArrived) - } else { - updateTwoStationsUI(stationList, arrivingOrArrivedIndex, isArrived) - } - updateBusTestBarInfo() - } - - /** - * 有两个以上站点的路线 - * @param stationList - * @param arrivingOrArrivedIndex - * @param isArrived - */ - private fun updateMoreThanTwoStationsUI( - stationList: List, - arrivingOrArrivedIndex: Int, - isArrived: Boolean - ) { - bus_panel_second_station!!.setStationTag("") - bus_panel_second_station!!.showOrHideStationArrowBg(true) - bus_panel_third_station!!.setStationTag("") - bus_panel_second_station!!.visibility = View.VISIBLE - bus_panel_third_station!!.showOrHideStationArrowBg(false) - if (arrivingOrArrivedIndex == 0 || arrivingOrArrivedIndex - 1 == 0 || arrivingOrArrivedIndex - 2 == 0 && stationList.size == 3) { - bus_panel_first_station!!.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_start)) - } else { - bus_panel_first_station!!.setStationTag("") - } - if (arrivingOrArrivedIndex + 1 == stationList.size - 1 || arrivingOrArrivedIndex == stationList.size - 1 || arrivingOrArrivedIndex == 0 && arrivingOrArrivedIndex + 2 == stationList.size - 1) { //确认是否显示 "终" - bus_panel_third_station!!.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_end)) - } else { - bus_panel_third_station!!.setStationTag("") - } - - //圆点: 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 - if (arrivingOrArrivedIndex == 0 && isArrived) { - bus_panel_first_station!!.setStationNameColor(getColor(R.color.bus_line_station_color_selected)) - bus_panel_second_station!!.setStationNameColor(getColor(R.color.bus_arrived_station_name_text_color)) - bus_panel_third_station!!.setStationNameColor(getColor(R.color.bus_arrived_station_name_text_color)) - bus_panel_first_station!!.setStationName(stationList[0].name) - bus_panel_second_station!!.setStationName(stationList[1].name) - bus_panel_third_station!!.setStationName(stationList[2].name) - bus_panel_first_station!!.setStationPointBg(1) - bus_panel_second_station!!.setStationPointBg(2) - bus_panel_third_station!!.setStationPointBg(2) - bus_panel_first_station!!.setStationArrowBg(2) - bus_panel_second_station!!.setStationArrowBg(2) - } else if (arrivingOrArrivedIndex == stationList.size - 1) { - bus_panel_first_station!!.setStationNameColor(getColor(R.color.bus_station_tag_txt_un_color)) - bus_panel_second_station!!.setStationNameColor(getColor(R.color.bus_station_tag_txt_un_color)) - bus_panel_third_station!!.setStationNameColor(getColor(R.color.bus_line_station_color_selected)) - bus_panel_first_station!!.setStationName(stationList[arrivingOrArrivedIndex - 2].name) - bus_panel_second_station!!.setStationName(stationList[arrivingOrArrivedIndex - 1].name) - bus_panel_third_station!!.setStationName(stationList[arrivingOrArrivedIndex].name) - bus_panel_first_station!!.setStationPointBg(0) - bus_panel_second_station!!.setStationPointBg(0) - bus_panel_third_station!!.setStationPointBg(1) - bus_panel_first_station!!.setStationArrowBg(0) - if (isArrived) { - bus_panel_second_station!!.setStationArrowBg(0) - } else { - bus_panel_second_station!!.setStationArrowBg(1) - } - } else { - bus_panel_first_station!!.setStationNameColor(getColor(R.color.bus_station_tag_txt_un_color)) - bus_panel_second_station!!.setStationNameColor(getColor(R.color.bus_line_station_color_selected)) - bus_panel_third_station!!.setStationNameColor(getColor(R.color.bus_arrived_station_name_text_color)) - bus_panel_first_station!!.setStationName(stationList[arrivingOrArrivedIndex - 1].name) - bus_panel_second_station!!.setStationName(stationList[arrivingOrArrivedIndex].name) - bus_panel_third_station!!.setStationName(stationList[arrivingOrArrivedIndex + 1].name) - bus_panel_first_station!!.setStationPointBg(0) - bus_panel_second_station!!.setStationPointBg(1) - bus_panel_third_station!!.setStationPointBg(2) - bus_panel_second_station!!.setStationArrowBg(2) - if (isArrived) { - bus_panel_first_station!!.setStationArrowBg(0) - } else { - bus_panel_first_station!!.setStationArrowBg(1) - } - } - } - - /** - * 只有两个站点的路线 - * @param stationList - * @param arrivingOrArrivedIndex - * @param isArrived - */ - private fun updateTwoStationsUI( - stationList: List, - arrivingOrArrivedIndex: Int, - isArrived: Boolean - ) { - bus_panel_second_station!!.visibility = View.GONE - bus_panel_second_station!!.showOrHideStationArrowBg(false) - bus_panel_third_station!!.showOrHideStationArrowBg(false) - bus_panel_first_station!!.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_start)) - bus_panel_third_station!!.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_end)) - bus_panel_first_station!!.setStationName(stationList[0].name) - bus_panel_third_station!!.setStationName(stationList[1].name) - - //圆点: 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 - if (arrivingOrArrivedIndex == 0 && isArrived) { //到站 - bus_panel_first_station!!.setStationNameColor(getColor(R.color.bus_line_station_color_selected)) - bus_panel_third_station!!.setStationNameColor(getColor(R.color.bus_arrived_station_name_text_color)) - bus_panel_first_station!!.setStationPointBg(1) - bus_panel_first_station!!.setStationArrowBg(2) - bus_panel_third_station!!.setStationPointBg(0) - } else { - bus_panel_first_station!!.setStationNameColor(getColor(R.color.bus_station_tag_txt_un_color)) - bus_panel_third_station!!.setStationNameColor(getColor(R.color.bus_line_station_color_selected)) - if (isArrived) { //到终点 - bus_panel_first_station!!.setStationPointBg(0) - bus_panel_first_station!!.setStationArrowBg(0) - bus_panel_third_station!!.setStationPointBg(1) - } else { //到终点途中 - bus_panel_first_station!!.setStationPointBg(0) - bus_panel_first_station!!.setStationArrowBg(1) - bus_panel_third_station!!.setStationPointBg(1) - } - } - } - - private fun showOrHideSwitchLineBtn(isShow: Boolean) { - if (isShow) { //显示切换路线 - switch_line_btn!!.tag = 0 - switch_line_btn!!.text = ResourcesUtils.getString(R.string.bus_switch_line_btn) - } else { //显示结束路线 - switch_line_btn!!.tag = 1 - switch_line_btn!!.text = ResourcesUtils.getString(R.string.bus_close_line_btn) - } - } - - override fun restartAutopilot() { - if (!isAnimateRunning) { - mPresenter!!.restartAutopilot() - } - } - - override fun moveToEnd() { - // 开启自动驾驶到下一站 - if (isAnimateRunning) { - stopAutopilotAnimation() - } - mPresenter!!.autoDriveToNextStation() - } - - /** - * 设置自动驾驶可用状态 - */ - fun onAutopilotEnableChange(isEnable: Boolean) { - if (isEnable) { - showAutopilotBiz() - } else { - hideAutopilotBiz() - } - } - - fun clearBusStationsMarkers() { - d(SceneConstant.M_BUS + TAG, "clearBusStationsMarkers()") - if (null != startStation) { - setOrRemoveMapMaker( - false, - BusConst.BUS_START_MAP_MAKER, - startStation!!.lat, - startStation!!.lon, - R.raw.star_marker - ) - } - if (null != endStation) { - setOrRemoveMapMaker( - false, - BusConst.BUS_END_MAP_MAKER, - endStation!!.lat, - endStation!!.lon, - R.raw.end_marker - ) - } - - //清除鹰眼右下角小地图轨迹 - d(SceneConstant.M_BUS, "clearBusStationsMarkers --------->") - smallMapView.clearPolyline() - } - - /** - * 绘制地图起点终点 - * - * @param isAdd - * @param uuid - */ - private fun setOrRemoveMapMaker( - isAdd: Boolean, - uuid: String, - lat: Double, - longi: Double, - resourceId: Int - ) { - if (isAdd) { - val setMapMarkerRunnable = Runnable { - d( - SceneConstant.M_BUS + "setMapMaker= " + Thread.currentThread().name, - "$uuid=latitude=$lat,longitude=$longi" - ) - val builder = - Point.Options.Builder(BusConst.TYPE_MARKER_BUS_ORDER, Level.MAP_MARKER) - .setId(uuid) - .anchor(0.5f, 0.5f) - .set3DMode(true) - .isUseGps(true) - .controlAngle(false) - .icon3DRes(resourceId) - .latitude(lat) - .longitude(longi) - val overlayManager = getOverlayManager() - overlayManager?.showOrUpdatePoint(builder.build(), MogoMap.DEFAULT) - } - OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable) - } else { - val removeMapMarkerRunnable = Runnable { - d( - SceneConstant.M_BUS + "RemoveMapMaker=" + Thread.currentThread().name, - "$uuid=latitude=$lat,longitude=$longi" - ) - val overlayManager = getOverlayManager() - overlayManager?.removePoint(uuid) - } - OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable) - } - } - - override fun debugAutoPilotStatus(status: Int) { - mPresenter!!.debugAutoPilotStatus(status) - } - - override fun onClick(v: View) { - if (v.id == R.id.switch_line_btn) { //切换路线条件: 自动驾驶过程中,点击则toast提示:自动驾驶中,不可切换路线 - //本次行程未结束,不支持切换路线。点击则toast提示:当前行程未完成,不可切换路线 - if (getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - ) { - ToastUtils.showLong(ResourcesUtils.getString(R.string.bus_switch_line_btn_warning1)) - return - } - if (switch_line_btn!!.tag as Int == 0) { //切换路线 - val intent = Intent(context, BusSwitchLineActivity::class.java) - ActivityUtils.startActivity(intent) - } else { //结束任务 - context?.let { - val builder = OCHCommitDialog.Builder() - val closeLineConfirmDialog = builder - .title(ResourcesUtils.getString(R.string.bus_dialog_title)) - .tips(ResourcesUtils.getString(R.string.bus_dialog_tips)) - .confirmStr(ResourcesUtils.getString(R.string.bus_dialog_confirm)) - .cancelStr(ResourcesUtils.getString(R.string.bus_dialog_cancel)) - .build(it) - closeLineConfirmDialog!!.setClickListener(object : OCHCommitDialog.ClickListener { - override fun confirm() { - mPresenter!!.abortTask() - } - - override fun cancel() { - closeLineConfirmDialog.dismiss() - } - }) - closeLineConfirmDialog.show() - } - - } - } - } - - override val slidePanelOnEndListener: SlidePanelView.OnSlidePanelMoveToEndListener - get() = this - - companion object { - const val TAG = "BusFragment" - } -} 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 deleted file mode 100644 index 60f7798a05..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/BusLineModel.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.mogo.och.bus.model; - -import android.content.Context; - -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.storage.SharedPrefsMgr; -import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.bus.R; -import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.response.BusQueryLinesResponse; -import com.mogo.och.bus.bean.response.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.network.OchCommonServiceCallback; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public class BusLineModel { - private static volatile BusLineModel sInstance; - private Context mContext; - private IBusLinesCallback mBusLinesCallback; - private static final byte[] obj = new byte[0]; - - private BusLineModel() { - } - public static BusLineModel getInstance() { - if ( sInstance == null ) { - synchronized ( obj ) { - if ( sInstance == null ) { - sInstance = new BusLineModel(); - } - } - } - return sInstance; - } - - public void init() { - mContext = AbsMogoApplication.getApp(); - } - public void setBusLinesCallback(IBusLinesCallback callback){ - mBusLinesCallback = callback; - } - public void queryBusLines(){ - OrderServiceManager.queryBusLines(mContext, new OchCommonServiceCallback() { - @Override - public void onSuccess(BusQueryLinesResponse data) { - if (null == data && mBusLinesCallback != null) { - mBusLinesCallback.onBusLinesChange(null); - return; - } - - if (mBusLinesCallback != null){ - mBusLinesCallback.onBusLinesChange(data); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("查询所有绑定路线失败:"+failMsg); - } - } - }); - } - - /** - * 通过线路id 查询线路排班表 - * @param lineId 线路id - * @param position 位置 - */ - public void queryBusLineTasksById(int lineId, int position,boolean autoRefresh){ - OrderServiceManager.queryBusTaskByLineId(mContext, String.valueOf(lineId),new OchCommonServiceCallback() { - @Override - public void onSuccess(BusQueryLineTaskResponse data) { - if (null == data && mBusLinesCallback != null) { - mBusLinesCallback.onBusLineTasks(null,position,autoRefresh); - return; - } - - if (mBusLinesCallback != null){ - mBusLinesCallback.onBusLineTasks(data,position,autoRefresh); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("查询所有绑定路线失败:"+failMsg); - } - } - }); - } - - public void commitSwitchLineId(int taskId,int lineId){ - OchChainLogManager.writeChainLog("选择线路","taskId:"+taskId+"--lineId:"+lineId); - OrderServiceManager.switchLine(mContext,taskId, new OchCommonServiceCallback() { - @Override - public void onSuccess(BusRoutesResponse o) { - OchChainLogManager.writeChainLog("选择线路成功","taskId:"+taskId+"--lineId:"+lineId); - SharedPrefsMgr.getInstance().putInt(BusSwitchLineActivity.LASTCOMMITLINEID,lineId); - if (mBusLinesCallback != null){ - mBusLinesCallback.onChangeLineIdSuccess(); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - OchChainLogManager.writeChainLog("选择线路失败","taskId:"+taskId+"--lineId:"+lineId); - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("选择任务失败:"+failMsg); - } - } - }); - } - -} 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 deleted file mode 100644 index d447f7f67d..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ /dev/null @@ -1,1343 +0,0 @@ -package com.mogo.och.bus.model; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; -import static com.mogo.och.bus.constant.BusConst.DELAY_10S; -import static com.mogo.och.bus.constant.BusConst.STATION_STATUS_ARRIVING; -import static com.mogo.och.bus.constant.BusConst.STATION_STATUS_STOPPED; - -import android.content.Context; -import android.text.TextUtils; -import android.util.ArrayMap; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.elegant.network.utils.GsonUtil; -import com.mogo.commons.AbsMogoApplication; -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.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; -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.CoordinateUtils; -import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils; -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.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.bus.R; -import com.mogo.och.bus.bean.response.BusRoutesResponse; -import com.mogo.och.bus.bean.WriteOffPassenger; -import com.mogo.och.bus.callback.IPassengerCallback; -import com.mogo.och.bus.constant.BusConst; -import com.mogo.och.bus.net.OrderServiceManager; -import com.mogo.och.bus.presenter.BusModelLoopManager; -import com.mogo.och.bus.util.BusTrajectoryManager; -import com.mogo.och.bus.util.BusVoiceManager; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics; -import com.mogo.och.common.module.manager.autopilot.line.LineManager; -import com.mogo.och.common.module.manager.socket.cloud.IOchOnMessageListener; -import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction2; -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.LedScreenManager; -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.biz.login.LoginStatusManager; -import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey; -import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType; -import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType; -import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus; -import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg; -import com.mogo.och.common.module.network.OchCommonServiceCallback; -import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -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.bean.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 com.mogo.och.data.bean.BusRoutesResult; -import com.mogo.och.data.bean.BusStationBean; -import com.mogo.och.data.bean.BusTransferData; -import com.mogo.och.data.bean.LineInfo; -import com.mogo.och.data.manager.cache.CacheDataManager; -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager; - -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import io.reactivex.exceptions.UndeliverableException; -import io.reactivex.plugins.RxJavaPlugins; - -/** - * @author congtaowang - * @since 2021/3/23 - *

- * 小巴订单管理 - */ -public class OrderModel { - private final String TAG = OrderModel.class.getSimpleName(); - private int currentLineId = -1; - private int currentTaskId = -1; - private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引 - - private static volatile OrderModel sInstance; - private static final byte[] obj = new byte[0]; - private Context mContext; - private final List stationList = new ArrayList<>(); - private BusRoutesResult busRoutesResult = null; - /** - * 用来表示是否正在开往下一站 - */ - private boolean isGoingToNextStation = false; - // 运营类型 - private static final int VEHICLE_TYPE = 10; - - private IPassengerCallback mPassengerCallback; //乘客核销回调 - - private volatile boolean isArrivedStation = false; - - //0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0 - private volatile int firstStartAutopilot = 0; - - private OrderModel() { - } - - public static OrderModel getInstance() { - if (sInstance == null) { - synchronized (obj) { - if (sInstance == null) { - sInstance = new OrderModel(); - } - } - } - return sInstance; - } - - public void init() { - mContext = AbsMogoApplication.getApp(); - // 定位监听 - OchLocationManager.addGCJ02Listener(TAG,5, mMapLocationListener); - - TrajectoryManager.INSTANCE.addTrajectoryListListenerr(TAG,iTrajectoryListener); - - //开启自驾后 异常信息返回 - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); - - OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听运营消息 - OCHSocketMessageManager.msgMonitorType, - new OperateAction2()); - - OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听核销乘客 - OCHSocketMessageManager.msgWriteOffPassengerType, - mWriteOffPassengerOnMessageListener); - - AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); - - TrajectoryAndDistanceManager.INSTANCE.addTrajectoryListener(TAG,trajectoryListener); - LanSocketManager.INSTANCE.registerSocketMessageListener(DPMsgType.TYPE_TASK_DETAILS.getType(),taskDetailsMsgListener); - - //2022.1.28 - // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃 - // The exception could not be delivered to the consumer because it has already canceled/disposed - // the flow or the exception has nowhere to go to begin with - RxJavaPlugins.setErrorHandler(e -> { - if (e instanceof UndeliverableException) { - e = e.getCause(); - CallerLogger.d(M_BUS + TAG, "UndeliverableException"); - } - if ((e instanceof IOException)) { - // fine, irrelevant network problem or API that throws on cancellation - CallerLogger.d(M_BUS + TAG, "IOException"); - return; - } - if (e instanceof InterruptedException) { - // fine, some blocking code was interrupted by a dispose call - CallerLogger.d(M_BUS + TAG, "InterruptedException"); - return; - } - if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { - // that's likely a bug in the application - CallerLogger.d(M_BUS + TAG, "NullPointerException or IllegalArgumentException"); - Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); - return; - } - if (e instanceof IllegalStateException) { - // that's a bug in RxJava or in a custom operator - CallerLogger.d(M_BUS + TAG, "IllegalStateException"); - Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); - return; - } - CallerLogger.d(M_BUS + TAG, "Undeliverable exception"); - }); - } - - // 初始化调用 - // 登录状态发生变化调用 - public void queryBusCacheRoutes(){ - - String loginStr = CacheDataManager.Companion.getInstance().getCacheData( - mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE); - if (!loginStr.isEmpty()){ - LoginCacheStatus status = GsonUtils.fromJson(loginStr,LoginCacheStatus.class); - LoginStatusManager.setLoginStatus(status.getLoginStatus()); - if (status.getUpdateTime() > DateTimeUtil.getTodayStartTime() && - status.getLoginStatus() == 1){//登陆 - - String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE); - - if (cacheData == null || cacheData.isEmpty()){ - queryBusRoutes(); - }else { - BusTransferData data = GsonUtils.fromJson(cacheData,BusTransferData.class); - getCacheRouteSuccess(data.getRoutesResult()); - } - }else{ // 未登陆 - CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LOGIN_STATUS_CACHE); - sendTaskDetailsToClients(); - } - } - } - - private void sendTaskDetailsToClients() { - - BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,busRoutesResult); - TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.bus); - CallerLogger.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)); - LanSocketManager.sendMsgToClient(msg); - } - - - private void getCacheRouteSuccess(BusRoutesResult data){ - if (data == null || data.getSites() == null - || data.getSites().isEmpty() - || data.getWriteVersion() < DateTimeUtil.getTodayStartTime()) { - //当为空时,显示无绑定路线图 - queryBusRoutes(); - CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); - return; - } - CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据: " + GsonUtils.toJson(data)); - updateBusStatus(data); - } - - private void reBuildCacheRouteData(int currentIndex, int currentDrivingStatus, boolean isLeaving - , long writeVersion) { - if (busRoutesResult != null){ - busRoutesResult.setWriteVersion(writeVersion); - List sites = busRoutesResult.getSites(); - BusStationBean bean = sites.get(currentIndex); - bean.setDrivingStatus(currentDrivingStatus); - bean.setLeaving(isLeaving); - sites.set(currentIndex,bean); - if (currentDrivingStatus == STATION_STATUS_STOPPED && !isLeaving){ - BusStationBean beanPre = sites.get(currentIndex -1); - beanPre.setDrivingStatus(BusConst.STATION_STATUS_LEAVING); - beanPre.setLeaving(false); - sites.set(currentIndex -1,beanPre); - } - //busRoutesResult.setSite(sites); - - pushCacheTransferData(busRoutesResult); - - updateBusStatus(busRoutesResult); - } - } - - private void pushCacheTransferData(BusRoutesResult result) { - BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,result); - CallerLogger.d(M_BUS + TAG, "pushCacheTransferData = " + GsonUtils.toJson(data)); - CacheDataManager.Companion.getInstance().putCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(data)); - } - - private final IOchOnMessageListener mWriteOffPassengerOnMessageListener = - new IOchOnMessageListener() { - @Override - public Class target() { - return WriteOffPassenger.class; - } - - @Override - public void onMsgReceived(WriteOffPassenger passenger) { - //进行播报 - CallerLogger.i(M_BUS + TAG,"passenger = "+ GsonUtil.jsonFromObject(passenger)); - if (passenger != null && passenger.passengerSize == 0) return; - if (mPassengerCallback != null){ - mPassengerCallback.playPassenger(passenger); - } - } - }; - - public void setPassengerCallback(IPassengerCallback callback) { - this.mPassengerCallback = callback; - } - - - private final ITrajectoryListener trajectoryListener = (routeArrivied, routeArriving, location) -> { - - }; - - private final ILanMessageListener taskDetailsMsgListener = new ILanMessageListener(){ - @Override - public Class targetLan() { - return TaskDetailsMsg.class; - } - - @Override - public void onLanMsgReceived(TaskDetailsMsg obj) { - sendTaskDetailsToClients(); - } - }; - - - - private final ITrajectoryListListener iTrajectoryListener = new ITrajectoryListListener() { - - @Override - public void trajectoryCallback(@NonNull List trajectoryList) { - updateOrderRoute(trajectoryList); - } - }; - - - /** - * 上报订单全路径规划数据 - */ - public void updateOrderRoute(List trajectoryList) { - if (!isGoingToNextStation || backgroundCurrentStationIndex + 1 >= stationList.size() || trajectoryList.size() == 0) { - return; - } - - BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - - OrderServiceManager.updateOrderRoute(mContext, currentLineId, currentStation.getSiteId() - , nextStation.getSiteId(), trajectoryList, new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - - } - - @Override - public void onFail(int code, String failMsg) { - if (isGoingToNextStation) {//重试 - updateOrderRoute(trajectoryList); - } - } - }); - } - - public void release() { - - startOrStopOrderLoop(false); - - // 注销定位监听 - OchLocationManager.removeGCJ02Listener(TAG); - - TrajectoryManager.INSTANCE.addTrajectoryListListenerr(TAG,null); - - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); - - OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener( - OCHSocketMessageManager.msgMonitorType); - OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener( - OCHSocketMessageManager.msgWriteOffPassengerType); - - AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); - - TrajectoryAndDistanceManager.INSTANCE.removeListener(TAG); - } - - private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { - - @Override - public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) { - if (mPassengerCallback != null && !FunctionBuildConfig.isDemoMode){ - CallerLogger.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage ); - mPassengerCallback.onStartAdasFailure(); - } - } - }; - - // 自车定位 - private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { - @Override - public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { - if (null == gnssInfo) return; - - //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 - if (isGoingToNextStation && !isArrivedStation) { - OCHThreadPoolManager.getsInstance().locationExecute(new Runnable() { - @Override - public void run() { - judgeArrivedStation(gnssInfo); - } - }); - } - } - }; - - //根据围栏判断,是否到达站点 - private void judgeArrivedStation(MogoLocation location) { - - if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { - CallerLogger.e(M_BUS + TAG, "到站数组越界"); - return; - } - BusStationBean upcomingStation = stationList.get(backgroundCurrentStationIndex + 1); - - double startLon = upcomingStation.getGcjLon(); - double startLat = upcomingStation.getGcjLat(); - double distance = CoordinateUtils.calculateLineDistance( - startLon, startLat, - location.getLongitude(), location.getLatitude()); - - if (distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE) {//1、当前位置和站点围栏15m内 - CallerLogger.d(M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance - + " to " + upcomingStation.getName()); - - //2、开始计算当前位置和站点的向量角度 < 90度 未经过 >90度 经过 - double stationAngle = DrivingDirectionUtils.getDegreeOfCar2Poi( - location.getLongitude(), - location.getLatitude(), - startLon, - startLat, - (int) location.getHeading()); - - CallerLogger.d(M_BUS + TAG, "judgeArrivedStation() stationAngle = " + stationAngle); - - //3、刚过站且过站距离在15m内, 提交到站 - if (stationAngle > 90 && distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE){ - CallerLogger.d(M_BUS + TAG, "judgeArrivedStation() = 刚过站且在15m内"); - onArriveAt(null,"兜底:根据定位计算到站"); //无自动驾驶到站信息传null - } - } - } - - /** - * 查询小巴路线 - */ - public void queryBusRoutes() { - CallerLogger.d(M_BUS + TAG, "查询小巴路线"); - OrderServiceManager.queryBusRoutes(mContext, new OchCommonServiceCallback() { - @Override - public void onSuccess(BusRoutesResponse data) { - if (data == null - || data.getResult() == null - || data.getResult().getSites() == null - || data.getResult().getSites().isEmpty()) { - //当为空时,显示无绑定路线图 - CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据:空 "); - if (mPassengerCallback != null) { - mPassengerCallback.updateEmptyUi(); - } - clearAutopilotControlParameters(); - closeBeautificationMode(); - clearStartAutopilotTag(); - removeTipRunnables(); - updateBusStatus(null); - CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); - return; - } - - if (busRoutesResult == null || busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ - CallerLogger.d(M_BUS + TAG, "更新小巴路线数据: " + data); - updateBusStatus(data.getResult()); - pushCacheTransferData(data.getResult()); - } - } - - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); - } - } - }); - - } - - /** - * 更新正在运行的任务UI - * - * @param stations - */ - private void updateBusTaskStatus(List stations) { - - int arrivingOrArrivedStationIndex = 0;//已经到站或者即将到站的索引呢 - - for (int i = 0; i < stations.size(); i++) { - BusStationBean station = stations.get(i); - - if (i == 0) { // 首发站 显示在最上面 - if (station.getDrivingStatus() == STATION_STATUS_STOPPED - && !station.isLeaving()) { //到达第一站 - arrivingOrArrivedStationIndex = i; - break; - } - } else { - BusStationBean preStation = stations.get(i - 1); - if ((station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving()) - || (station.getDrivingStatus() == STATION_STATUS_ARRIVING - && preStation.isLeaving())) { - //到站未离开 | 即将到站 显示在最中间 - arrivingOrArrivedStationIndex = i; - break; - } - } - } - - BusStationBean arrivingOrArrivedStation = stations.get(arrivingOrArrivedStationIndex); - - String lineTime = DateTimeUtil.formatLongToString( - busRoutesResult.getTaskTime(), - DateTimeUtil.HH_mm); - - if (arrivingOrArrivedStationIndex == 0 || - arrivingOrArrivedStation.getDrivingStatus() == STATION_STATUS_STOPPED - && !arrivingOrArrivedStation.isLeaving()) { - if (mPassengerCallback != null) { - mPassengerCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime, - stationList, arrivingOrArrivedStationIndex, true); - } - clearAutopilotControlParameters(); - } else { - if (mPassengerCallback != null) { - mPassengerCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime, - stationList, arrivingOrArrivedStationIndex, false); - } - updateAutopilotControlParameters(); - } - } - - /** - * 重置路线站点状态--结束路线,当前路线恢复到始发站 - */ - public void abortTask() { - CallerLogger.d(M_BUS + TAG, "结束当前路线abortTask"); - OrderServiceManager.abortTask(mContext, currentTaskId - , new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - CallerLogger.d(M_BUS + TAG, "abortTask success: " + o); - if (o.code == 0) { // 重置成功 - endOrAbortTaskSuccess(); - clearBusStationDatas(); - queryBusRoutes(); - removeTipRunnables(); - CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - // 取消自驾 - setTrajectoryStation(null,null,-1L); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); - } - } - }); - - } - - /** - * 中断或者正常结束任务后的处理 - */ - private void endOrAbortTaskSuccess() { - - isGoingToNextStation = false; - backgroundCurrentStationIndex = 0; - - if (busRoutesResult != null) { - LedScreenManager.sendTripInfo2Led(LedScreenManager.END_TRIP - , busRoutesResult.getName() - , "" - , "" - , false); - } - - CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); - busRoutesResult = null; - } - - /** - * 离站上报成功后渲染站点 - * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, - * 车机端展示是离开当前站,下一站设置为当前站, 所以服务端数据回来要做处理,不能直接渲染 - */ - private void leaveStationSuccess(int leaveIndex, String leaveStation, - String nextStation, String nextStationKr, - long writeVersion) { - - onStartAutopilot(leaveIndex); - - leaveTTSTips(nextStation,nextStationKr); - - if (busRoutesResult != null) { - boolean isLastStop = leaveIndex + 1 == stationList.size() - 1; - //给bus外屏发送 - LedScreenManager.sendTripInfo2Led(LedScreenManager.LEAVE_STATION - , busRoutesResult.getName() - , leaveStation - , nextStation - , isLastStop); - } - - reBuildCacheRouteData(leaveIndex,BusConst.STATION_STATUS_STOPPED,true,writeVersion); - - } - - private void onStartAutopilot(int leaveIndex) { - //开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启 - isGoingToNextStation = true; - if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - startAutopilot(false, leaveIndex); - } else { - firstStartAutopilot = 0; - } - } - - /** - * 开启自动驾驶 - * - * @param isRestart - */ - private void startAutopilot(boolean isRestart, int leaveIndex) { - - /** - * 存在Session - */ - if (!OchAutoPilotManager.canStartAutopilotBySessionId()) { - return; - } - - OchAutopilotAnalytics.INSTANCE.triggerClickStartAutopilotTime(System.currentTimeMillis()); - - // 非自驾状态---->预写日志----> 启动自驾 ---> 自驾启动成功 ----> 上报日志 - //  自驾状态---->启动自驾 ---> 自驾启动成功 - - //1、判断轨迹url是否可用 - if (FunctionBuildConfig.isPassStartAutopilotCommand - && TextUtils.isEmpty(busRoutesResult.csvFileUrl) - && TextUtils.isEmpty(busRoutesResult.csvFileUrlDPQP) - ){ - ToastUtils.showLong("无发布轨迹, 请发布后重试"); - CallerLogger.e(M_BUS + TAG, "isPassStartAutopilotCommand = " + - FunctionBuildConfig.isPassStartAutopilotCommand - + "busRoutesResult.csvFileUrl = "+ busRoutesResult.csvFileUrl - + "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 = OchAutoPilotManager.canStartAutoPilotByDistance(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 = OchAutoPilotManager.canStartAutoPilotByDistance(busRoutesResult.getLineId()); - } - if(!StringUtils.isEmpty(resion)){ - ToastUtils.showShort(resion); - VoiceNotice.showNotice(resion); - return; - } - - //4、ssm 给出数据 - if (!OchAutoPilotManager.canStartAutoPilotSSM()) { - triggerUnableStartAPReasonEvent(); - return; - } - - firstStartAutopilot++; - - if(CallerAutoPilotStatusListenerManager.INSTANCE.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - // 预写日志 - triggerStartServiceEvent(isRestart, false,0); - } - - AutopilotControlParameters parameters = initAutopilotControlParameters(leaveIndex); - if (null == parameters) { - CallerLogger.e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty."); - return; - } - - long sessionId = OchAutoPilotManager.startAutoPilot(parameters); - triggerUpdateStartAutoPilotSessionId(sessionId); - - CallerLogger.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) - + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + - "isRestart = " + isRestart); - - if (mPassengerCallback != null) { - mPassengerCallback.startOpenAutopilot(); - } - } - - /** - * 到站后重置站点状态 - */ - private void arriveSiteStation(String changeInfo) { - OchChainLogManager.writeChainLog("触发进站", changeInfo); - if ( backgroundCurrentStationIndex +1 > stationList.size() - 1 ) { //到站短时间内调用多次 - CallerLogger.e( M_BUS + TAG, "数组越界" ); - return; - } - int arrivedStationIndex = backgroundCurrentStationIndex + 1; - String arriveStation = stationList.get(arrivedStationIndex).getName(); - String arriveStationKr = stationList.get(arrivedStationIndex).getNameKr(); - String departureStopName = stationList.get(backgroundCurrentStationIndex).getName(); - CallerLogger.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); - - isArrivedStation = true; - isGoingToNextStation = false; - long writeVersion = DateTimeUtil.getCurrentTimeStamp(); - arriveStationSuccess(arrivedStationIndex, departureStopName, - arriveStation,arriveStationKr,writeVersion); - - String requestId = MultiRequestLimitChecker.Companion.generateRequestId(TAG + "-arriveSiteStation" - , String.valueOf(stationList.get(arrivedStationIndex).getSiteId()) - , String.valueOf(currentTaskId)); - if (!MultiRequestLimitChecker.Companion.getInstance().canMakeRequest(requestId, 5)) { - CallerLogger.d(M_BUS + TAG, "arriveSiteStation-MultiRequestLimitChecker: 超过最大请求数,本次请求return"); - return; - } - OrderServiceManager.arriveSiteStation(mContext, - stationList.get(arrivedStationIndex).getSeq(), - stationList.get(arrivedStationIndex).getSiteId(), - currentTaskId, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - CallerLogger.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); - MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId); - } - - @Override - public void onError() { - MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId); - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId); - if (ToastUtilsOch.isCustomFastClick(5000)) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - } else { - if (isArrivedStation) return; - ToastUtils.showShort(failMsg); - } - } - } - }); - } - - private void arriveStationSuccess(int arrivedStationIndex, String departureStopName, - String arriveStation, String arriveStationKr,long writeVersion) { - if (busRoutesResult != null) { - boolean isLastStop = arrivedStationIndex == busRoutesResult.getSites().size() - 1; - //给bus外屏发送 - LedScreenManager.sendTripInfo2Led(LedScreenManager.ARRIVE_STATION - , busRoutesResult.getName() - , departureStopName - , arriveStation - , isLastStop); - } - BusVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); - - reBuildCacheRouteData(arrivedStationIndex, BusConst.STATION_STATUS_STOPPED,false,writeVersion); - - } - - /** - * 离站上报 - */ - public void leaveStation() { - CallerLogger.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + 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()); - } - BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex); - final String currentStationName = busStationBean.getName(); - String finalNextStationName = nextStationName; - String finalNextStationNameKr = nextStationNameKr; - MogoLocation currentStationPoint = new MogoLocation(); - currentStationPoint.setLongitude(busStationBean.getGcjLon()); - currentStationPoint.setLatitude(busStationBean.getGcjLat()); - - isArrivedStation = false; - CallerLogger.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); - - long writeVersion = DateTimeUtil.getCurrentTimeStamp(); - leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, - finalNextStationName,finalNextStationNameKr,writeVersion); - setTrajectoryStation(currentStationPoint,nextStationPoint, (long) currentLineId); - - String changeInfo = "taskId:" + currentTaskId + "--lineId:" + currentLineId + - "--currentStationName:"+currentStationName+"--finalNextStationName:"+finalNextStationName; - OchChainLogManager.writeChainLog("滑动出发", changeInfo); - OrderServiceManager.leaveStation(mContext, - busStationBean.getSeq(), - busStationBean.getSiteId(), - currentTaskId, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - OchChainLogManager.writeChainLog("滑动出发成功", changeInfo); - } - - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - } else { - ToastUtils.showShort("离站上报失败:" + failMsg); - } - } - }); - } - - //车站10s后播报 - private void leaveTTSTips(String nextStation,String nextStationKr) { - - UiThreadHandler.postDelayed(() -> BusVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr),DELAY_10S); - } - - /** - * 关闭美化模式 - */ - public void closeBeautificationMode() { - if (FunctionBuildConfig.isDemoMode) {//收车结束美化 - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; //是否强制绘制引导线 - CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(false);// 同步给乘客屏 - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾 - CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为false"); - } - } - - /** - * 开启自动驾驶到下一站 - */ - public void autoDriveToNextStation() { - if (backgroundCurrentStationIndex >= stationList.size() - 1) { - // 当前站是最后一站,结束当前行程 - travelOver(); - return; - } - leaveStation(); - } - - /** - * 渲染站点信息 - * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, - * 车机端展示 三站: 中间为即将到到达或者刚到达的站 - * - * @param result - */ - private void updateBusStatus(BusRoutesResult result) { - if (result == null) { - LineManager.setLineInfo(null); - return; - } - busRoutesResult = result; - List site = result.getSites(); - currentTaskId = result.getTaskId(); - currentLineId = result.getLineId(); - String lineName = result.getName(); - ArrayMap objectObjectArrayMap = new ArrayMap<>(); - try{ - String lineTime = DateTimeUtil.formatLongToString( - busRoutesResult.getTaskTime(), - DateTimeUtil.HH_mm); - objectObjectArrayMap.put("taskInfo",lineTime); - }catch (Exception e){ - OchChainLogManager.writeChainLog("设置任务名称","设置任务名称报错"+e.getStackTrace()); - } - LineManager.setLineInfo(new LineInfo(currentLineId,lineName,objectObjectArrayMap)); - - stationList.clear(); - stationList.addAll(site); - - for (int i = 0; i < stationList.size(); i++) { - BusStationBean s = stationList.get(i); - - CallerLogger.d(M_BUS + "updateBusStationsStatus--", - "Index=" + i + " ,name = " + s.getName() + " ," + s.isLeaving() + "," + s.getDrivingStatus()); - - // 是否正在开往下一站 - if (s.isLeaving()) { - isGoingToNextStation = true; - } - // 当前站点信息 - if (s.getDrivingStatus() == STATION_STATUS_STOPPED) { - backgroundCurrentStationIndex = i; - break; - } - } - - if (backgroundCurrentStationIndex == 0 && - stationList.get(0).getDrivingStatus() == STATION_STATUS_STOPPED - && !stationList.get(0).isLeaving()) { //默认是第一站到站查询 - if (busRoutesResult != null) { // 第一站到站也是行程开始的时候 - LedScreenManager.sendTripInfo2Led(LedScreenManager.START_TRIP - , busRoutesResult.getName(), "", "", false); - } - - //任务选择后首发前给司机提示任务 - if (busRoutesResult != null){ - beforeTaskTips(); - } - }else { - removeTipRunnables(); - } - - BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - - CallerLogger.d(M_BUS + TAG, - "行程日志-STATION_STATUS_STOPPED-backgroundCurrentStationIndex=" - + backgroundCurrentStationIndex - + " isLeaving()=" + currentStation.isLeaving()); - - // 美化是否开始 - if (FunctionBuildConfig.isDemoMode && (backgroundCurrentStationIndex >= 0 - && backgroundCurrentStationIndex <= stationList.size() - 1)) {//行驶过程中设置美化 - if (stationList.get(backgroundCurrentStationIndex).isLeaving()) { - startBeautificationMode(); - CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)"); - } else if (backgroundCurrentStationIndex > 0 && backgroundCurrentStationIndex < stationList.size() - 1) { - //美化模式下 中间站点到站 引导线要一直绘制,所以此处不出强制绘制不传false - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); - CallerLogger.d(M_BUS + TAG, "美化模式-ignore:false(到达中间站)"); - clearStartAutopilotTag(); - } else { - closeBeautificationMode(); - clearStartAutopilotTag(); - } - } - - - if (currentStation.isLeaving() && mPassengerCallback != null) { - mPassengerCallback.hideSlidePanel(); - } - - sendTaskDetailsToClients(); - - //更新bus路线面板 - updateBusTaskStatus(stationList); - - //需放在currentStationIndex赋值之后 - BusTrajectoryManager.getInstance().syncTrajectoryInfo(); - } - - private void beforeTaskTips() { - if (busRoutesResult == null) return; - - removeTipRunnables(); - - long taskTime = busRoutesResult.getTaskTime(); - long tip3Time = taskTime- 3*60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前3分钟提示 - long tip1Time = taskTime-60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前1分钟提示 - - if (tip3Time > 0){ - UiThreadHandler.postDelayed(tip3Runnable,tip3Time); - } - - if (tip1Time > 0){ - UiThreadHandler.postDelayed(tip1Runnable,tip1Time); - } - } - - Runnable tip3Runnable = () -> { - if (backgroundCurrentStationIndex == 0 && stationList.get(0).getDrivingStatus() == STATION_STATUS_STOPPED - && !stationList.get(0).isLeaving()){ - tipStartTask("3"); - }else { - removeTipRunnables(); - } - }; - - private void tipStartTask(String s) { - String tips = String.format(mContext - .getString(R.string.bus_before_tips_s), s); - //展示在运营消息 - OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(), - tips,OCHSocketMessageManager.OPERATION_SYSTEM); - BusVoiceManager.INSTANCE.showLeafTime(tips); - } - - Runnable tip1Runnable = () -> { - if (backgroundCurrentStationIndex == 0 && stationList.get(0).getDrivingStatus() == STATION_STATUS_STOPPED && !stationList.get(0).isLeaving()){ - tipStartTask("1"); - }else { - removeTipRunnables(); - } - }; - - public void removeTipRunnables(){ - if (tip3Runnable != null){ - UiThreadHandler.removeCallbacks(tip3Runnable); - } - if (tip1Runnable != null){ - UiThreadHandler.removeCallbacks(tip1Runnable); - } - } - - private void clearStartAutopilotTag() { - firstStartAutopilot = 0; - } - - private void startBeautificationMode() { - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true); - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true); - } - - public void clearBusStationDatas() { - if (mPassengerCallback != null) { - mPassengerCallback.clearBusStationsMarkers(); - } - } - - /** - * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地 - */ - public void restartAutopilot() { - CallerLogger.d(M_BUS + TAG, "行程日志-重启自动驾驶===" + isGoingToNextStation); - //只去启动自动驾驶,不再去上报离站 - startAutopilot(firstStartAutopilot >= 1, -1); - } - - public boolean isRestartAutopilot() { - return firstStartAutopilot > 1; - } - - /** - * 行程结束 - */ - private void travelOver() { - - if (backgroundCurrentStationIndex >= stationList.size()) { - CallerLogger.e(M_BUS + TAG, "travel over index out of station list"); - return; - } - CallerLogger.d(M_BUS + TAG, "单程结束===="); - CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - setTrajectoryStation(null,null,-1L); - endTask(); - } - - /** - * task正常结束 - */ - private void endTask() { - CallerLogger.d(M_BUS + TAG, "任务正常走完endTask()"); - OrderServiceManager.endTask(mContext, currentTaskId - , new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - CallerLogger.d(M_BUS + TAG, "endTask success: " + o); - if (o.code == 0) { - endOrAbortTaskSuccess(); - clearBusStationDatas(); - queryBusRoutes();// 重新获取任务 - removeTipRunnables(); - ttsEndTask(); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); - } - } - }); - } - - private void ttsEndTask() { - BusVoiceManager.INSTANCE.endOrderBus(); - } - - /** - * 到站 - * - * @param data - */ - public void onArriveAt(ArrivedStation data,String type) { - if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { - CallerLogger.e(M_BUS + TAG, "行程日志-到站异常,取消后续操作结束"); - return; - } - - //MAP 280 每隔100ms左右返回一次到站, 导致在到达中间站后再次滑动出发后会有时间差,收到一次到站,出现问题 - //此处比对 自驾告诉的到站站点坐标和本地应到站站点坐标, 一致时才能到站 - if (data != null && data.getEndLocation() != null) { - - String latitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLatitude(), 5); //wgs - String longitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLongitude(), 5); - - int arrivedStationIndex = backgroundCurrentStationIndex + 1; - BusStationBean arriveStation = stationList.get(arrivedStationIndex); - String arriveLat = NumberFormatUtil.cutOutNumber(arriveStation.getLat(), 5); - String arriveLon = NumberFormatUtil.cutOutNumber(arriveStation.getLon(), 5); - - CallerLogger.d(M_BUS + TAG, "行程日志-dataLatitude = "+ latitude+ - ", dataLongitude = " + longitude + "; arriveLat = " + arriveLat + - ", arriveLon = " +arriveLon); - - if (!latitude.equals(arriveLat) || !longitude.equals(arriveLon)) { - CallerLogger.e(M_BUS + TAG, "行程日志-到站拦截,到站坐标不一致"); - return; - } - } - - if (isArrivedStation) return; - - CallerLogger.d(M_BUS + TAG, "行程日志-当前==backgroundCurrentStationIndex=" - + backgroundCurrentStationIndex); - - arriveSiteStation(type); - } - - public boolean isGoingToNextStation() { - return isGoingToNextStation; - } - - public void sendWriteOffNumToClient(String msg){ - AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,-1); - LanSocketManager.sendMsgToClient(passengerMsg); - } - - // 车机端上传心跳数据(只在出车状态时上传) - public void runCarHeartbeat() { - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - double mLatitude = gcj02Location.getLatitude(); - double mLongitude = gcj02Location.getLongitude(); - OrderServiceManager.runCarHeartbeat(mContext, mLongitude, mLatitude, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - - } - - @Override - public void onFail(int code, String failMsg) { - - } - }); - } - - public void startOrStopOrderLoop(boolean start) { - CallerLogger.d(M_BUS + TAG, "startOrStopOrderLoop() " + start); - if (start) { - BusModelLoopManager.getInstance().startHeartbeatLoop(); - } else { - BusModelLoopManager.getInstance().stopHeartbeatLoop(); - } - } - - // 登出 - public void logout() { - LoginStatusManager.loginOut(); - } - - public void triggerStartServiceEvent(boolean isRestart, boolean send,int source) { - if (backgroundCurrentStationIndex >= stationList.size() - 1) { - return; - } - BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestart, send, - currentStation.getName(), nextStation.getName(), currentLineId,"",System.currentTimeMillis(),source); - } - - public void triggerUpdateStartAutoPilotSessionId(long sessionId) { - if (backgroundCurrentStationIndex >= stationList.size() - 1) { - return; - } - OchAutopilotAnalytics.INSTANCE.triggerUpdateStartAutoPilotSessionId(sessionId); - } - - public void triggerUnableStartAPReasonEvent() { - if (backgroundCurrentStationIndex >= stationList.size() - 1) { - return; - } - BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - OchAutopilotAnalytics.INSTANCE.triggerUnableStartAPReasonEvent( - currentStation.getName(), nextStation.getName(), String.valueOf(currentLineId),"", - OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); - } - - public BusRoutesResult getBusRoutesResult() { - return busRoutesResult; - } - - public int getCurrentStationIndex() { - return backgroundCurrentStationIndex; - } - - /** - * 将业务订单信息保存,鹰眼可取用 - */ - private void updateAutopilotControlParameters() { - - AutopilotControlParameters parameters = initAutopilotControlParameters(-1); - if (null == parameters) { - CallerLogger.e(M_BUS + TAG, "AutopilotControlParameters is empty."); - return; - } - CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is update."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters); - } - - private void clearAutopilotControlParameters() { - CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is clear."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null); - } - - private AutopilotControlParameters initAutopilotControlParameters(int leaveIndex) { - BusStationBean currentStation; - BusStationBean nextStation; - - if (leaveIndex < 0) { - if (backgroundCurrentStationIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) { - CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition1."); - return null; - } - currentStation = stationList.get(backgroundCurrentStationIndex); - nextStation = stationList.get(backgroundCurrentStationIndex + 1); - } else { - if (leaveIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) { - CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition2."); - return null; - } - currentStation = stationList.get(leaveIndex); - nextStation = stationList.get(leaveIndex + 1); - } - - AutopilotControlParameters parameters = new AutopilotControlParameters(); - parameters.routeID = busRoutesResult.getLineId(); - parameters.routeName = busRoutesResult.getName(); - parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.getName()); - parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.getName()); - parameters.startLatLon = new AutopilotControlParameters - .AutoPilotLonLat(currentStation.getLat(), currentStation.getLon()); - parameters.endLatLon = new AutopilotControlParameters - .AutoPilotLonLat(nextStation.getLat(), nextStation.getLon()); - parameters.vehicleType = VEHICLE_TYPE; - if (parameters.autoPilotLine == null) { - parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine( - busRoutesResult.getLineId(), busRoutesResult.getName(), - busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, - busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, - busRoutesResult.contrailSaveTime, busRoutesResult.carModel, - busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP, - busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP, - busRoutesResult.contrailSaveTimeDPQP); - } - - return parameters; - } - - 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/IBascApiService.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.kt deleted file mode 100644 index 5520d1cf83..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.kt +++ /dev/null @@ -1,166 +0,0 @@ -package com.mogo.och.bus.net - -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.bus.bean.request.BusCloseTaskRequest -import com.mogo.och.bus.bean.request.BusQueryLineStationsRequest -import com.mogo.och.bus.bean.request.BusResetDrivingLineRequest -import com.mogo.och.bus.bean.request.BusRoutePlanningUpdateReqBean -import com.mogo.och.bus.bean.request.BusUpdateSiteStatusRequest -import com.mogo.och.bus.bean.request.CarHeartbeatReqBean -import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse -import com.mogo.och.bus.bean.response.BusQueryLinesResponse -import com.mogo.och.bus.bean.response.BusRoutesResponse -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 - -/** - * 小巴车相关接口 - * - * @author tongchenfei - * - * - * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072 - */ -interface IBascApiService { - /** - * 根据车机坐标获取所在区域全部站点信息 - * - * @param request 请求参数 - * @return 接口返回数据 - */ - @Headers("Content-Type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/line/v2/driver/bus/lineDataWithDriver/query") - fun queryBusRoutes( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body request: BusQueryLineStationsRequest? - ): Observable - - /** - * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的 - * @return 返回值是重置后的车站列表 - * 开始路线 - */ - @Headers("Content-Type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startTask") - fun switchLine( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body request: BusResetDrivingLineRequest? - ): Observable - - /** - * 离站,通知服务器 - * @param request - * @return - */ - @Headers("Content-Type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/leave") - fun leaveStation( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body request: BusUpdateSiteStatusRequest? - ): Observable - - /** - * 到站 更新到站信息 - * @param request - * @return - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/arrive") - fun arriveSiteStation( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body request: BusUpdateSiteStatusRequest? - ): Observable - - - /** - * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 - * @param data - * @return - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/location/v2/driver/bus/heartbeat") - fun runCarHeartbeat( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body data: CarHeartbeatReqBean? - ): Observable - - /** - * 查询车辆配置的所有路线 - * @param appId - * @param ticket - * @param sn - * @return - */ - @GET("/autopilot-car-hailing/line/v2/driver/bus/bindLine/query") - fun queryBusLines( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Query("sn") sn: String? - ): Observable - - /** - * 查询路线当天的任务 - * @param appId - * @param ticket - * @param lineId 线路id - * @return - */ - @GET("/autopilot-car-hailing/line/v2/driver/bus/task/query") - fun queryBusTaskByLineId(@Header("appId") appId: String?, @Header("ticket") ticket: String?, @Query("lineId") lineId: String?): Observable - - - /** - * 上传轨迹信息 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate") - fun updateOrderRoute( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body data: BusRoutePlanningUpdateReqBean? - ): Observable - - /** - * 中止任务 - * @param appId - * @param ticket - * @param data - * @return - */ - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask") - fun abortTask( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body data: BusCloseTaskRequest? - ): Observable - - /** - * 任务正常跑完结束 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endTask") - fun endTask( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body data: BusCloseTaskRequest? - ): Observable -} - diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/ISAASApiService.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/ISAASApiService.kt deleted file mode 100644 index 13dddf8f0b..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/ISAASApiService.kt +++ /dev/null @@ -1,143 +0,0 @@ -package com.mogo.och.bus.net - -import com.mogo.eagle.core.data.BaseData -import com.mogo.och.bus.bean.request.BusCloseTaskRequest -import com.mogo.och.bus.bean.request.BusResetDrivingLineRequest -import com.mogo.och.bus.bean.request.BusRoutePlanningUpdateReqBean -import com.mogo.och.bus.bean.request.BusUpdateSiteStatusRequest -import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse -import com.mogo.och.bus.bean.response.BusQueryLinesResponse -import com.mogo.och.bus.bean.response.BusRoutesResponse -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 - -/** - * 小巴车相关接口 - * - * @author tongchenfei - * - * - * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072 - */ -interface ISAASApiService { - /** - * 根据车机坐标获取所在区域全部站点信息 - */ - @Headers("Content-Type:application/json;charset=UTF-8") - @GET("/och-bus-cabin/api/business/v1/driver/bus/lineDataWithDriver/query") - fun queryBusRoutes( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Query("sn") sn: String? - ): Observable - - /** - * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的 - * @return 返回值是重置后的车站列表 - * 开始路线 - */ - @Headers("Content-Type:application/json;charset=UTF-8") - @POST("/och-bus-cabin/cab/flow/v1/bus/driver/startTask") - fun switchLine( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body request: BusResetDrivingLineRequest? - ): Observable - - /** - * 离站,通知服务器 - */ - @Headers("Content-Type:application/json;charset=UTF-8") - @POST("/och-bus-cabin/cab/flow/v1/bus/driver/leave") - fun leaveStation( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body request: BusUpdateSiteStatusRequest? - ): Observable - - /** - * 到站 更新到站信息 - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/och-bus-cabin/cab/flow/v1/bus/driver/arrive") - fun arriveSiteStation( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body request: BusUpdateSiteStatusRequest? - ): Observable - - - /** - * 查询车辆配置的所有路线 - */ - @Headers("Content-type:application/json;charset=UTF-8") - @GET("/och-bus-cabin/api/business/v1/driver/BusBindLine") - fun queryBusLines( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Query("sn") sn: String? - ): Observable - - /** - * 查询路线当天的任务 - * @param appId - * @param ticket - * @param lineId 线路id - * @return - */ - @Headers("Content-type:application/json;charset=UTF-8") - @GET("/och-bus-cabin/api/business/v1/driver/bus/task/query") - fun queryBusTaskByLineId( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Query("lineId") lineId: String? - ): Observable - - - /** - * 上传轨迹信息 - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate") - fun updateOrderRoute( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body data: BusRoutePlanningUpdateReqBean? - ): Observable - - /** - * 中止任务 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/och-bus-cabin/cab/flow/v1/bus/driver/abortTask") - fun abortTask( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body data: BusCloseTaskRequest? - ): Observable - - /** - * 任务正常跑完结束 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers("Content-type:application/json;charset=UTF-8") - @POST("/och-bus-cabin/cab/flow/v1/bus/driver/endTask") - fun endTask( - @Header("appId") appId: String?, - @Header("ticket") ticket: String?, - @Body data: BusCloseTaskRequest? - ): Observable -} - 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 deleted file mode 100644 index 92884c272b..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt +++ /dev/null @@ -1,331 +0,0 @@ -package com.mogo.och.bus.net - -import android.content.Context -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -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.eagle.core.data.map.MogoLocation -import com.mogo.och.bus.bean.request.BusCloseTaskRequest -import com.mogo.och.bus.bean.request.BusQueryLineStationsRequest -import com.mogo.och.bus.bean.request.BusResetDrivingLineRequest -import com.mogo.och.bus.bean.request.BusRoutePlanningUpdateReqBean -import com.mogo.och.bus.bean.request.BusUpdateSiteStatusRequest -import com.mogo.och.bus.bean.request.CarHeartbeatReqBean -import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse -import com.mogo.och.bus.bean.response.BusQueryLinesResponse -import com.mogo.och.bus.bean.response.BusRoutesResponse -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 - * @date: 2021/10/20 - */ -object OrderServiceManager { - - private val M_SERVICE: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( - IBascApiService::class.java - ) - - private val M_SAAS_SERVICE: ISAASApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( - ISAASApiService::class.java - ) - - /** - * 查询小巴车当前任务 - * @param context - * @param callback - */ - @JvmStatic - fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback?) { - //获取当前高德坐标 - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.queryBusRoutes( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes")) - - }else{ - M_SERVICE.queryBusRoutes( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusQueryLineStationsRequest() - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes")) - } - - } - - /** - * 重置线路站点 - * @param context - * @param taskId - * @param callback - */ - @JvmStatic - fun switchLine( - context: Context, - taskId: Int, - callback: OchCommonServiceCallback? - ) { - - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.switchLine( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusResetDrivingLineRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "switchLine")) - }else{ - M_SERVICE.switchLine( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusResetDrivingLineRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "switchLine")) - } - } - - /** - * 中断当前任务 - * @param context - * @param taskId - * @param callback - */ - @JvmStatic - fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) { - - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.abortTask( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusCloseTaskRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "abortTask")) - }else{ - M_SERVICE.abortTask( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusCloseTaskRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "abortTask")) - } - } - - /** - * 正常结束任务 - * @param context - * @param taskId - * @param callback - */ - @JvmStatic - fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.endTask( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusCloseTaskRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "endTask")) - }else{ - M_SERVICE.endTask( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusCloseTaskRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "endTask")) - } - - } - - /** - * 离站上报 - * @param context - * @param seq - * @param siteId - * @param callback - */ - @JvmStatic - fun leaveStation( - context: Context, - seq: Int, - siteId: Int, - taskId: Int, - callback: OchCommonServiceCallback? - ) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.leaveStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) - }else{ - M_SERVICE.leaveStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) - } - } - - /** - * 到站更新站点状态 - * @param context - * @param seq - * @param siteId - * @param callback - */ - @JvmStatic - fun arriveSiteStation( - context: Context, seq: Int, siteId: Int, taskId: Int, - callback: OchCommonServiceCallback? - ) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.arriveSiteStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) - }else{ - M_SERVICE.arriveSiteStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) - } - } - - @JvmStatic - fun queryBusLines(context: Context, callback: OchCommonServiceCallback?) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.queryBusLines( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) - }else{ - M_SERVICE.queryBusLines( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) - } - - } - @JvmStatic - fun queryBusTaskByLineId( - context: Context, - lineId: String?, - callback: OchCommonServiceCallback? - ) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.queryBusTaskByLineId( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - lineId - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) - }else{ - M_SERVICE.queryBusTaskByLineId( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - lineId - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) - } - } - @JvmStatic - fun updateOrderRoute( - context: Context, - lineId: Int, - startSiteId: Int, - endSiteId: Int, - points: List, - callback: OchCommonServiceCallback? - ) { - val pointsResult = mutableListOf() - points.forEach { - val result = BusRoutePlanningUpdateReqBean.Result() - result.latitude = it.latitude; - result.longitude = it.longitude; - pointsResult.add(result); - } - if (DebugConfig.getProjectFlavor().contains("saas")){ - M_SAAS_SERVICE.updateOrderRoute( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusRoutePlanningUpdateReqBean( - SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute")) - }else{ - M_SERVICE.updateOrderRoute( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusRoutePlanningUpdateReqBean( - SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute")) - } - } - - /** - * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 - * @param context - * @param lon - * @param lat - * @param callback - */ - @JvmStatic - fun runCarHeartbeat( - context: Context, lon: Double, lat: Double, - callback: OchCommonServiceCallback? - ) { - if (DebugConfig.getProjectFlavor().contains("saas")){ - - }else{ - M_SERVICE.runCarHeartbeat( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - CarHeartbeatReqBean( - SharedPrefsMgr.getInstance().sn, lon, lat - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "runCarHeartbeat",false)) - } - } - -} \ 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 deleted file mode 100644 index 2e395b5be5..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.mogo.och.bus.presenter; - -import android.os.Looper; - -import androidx.annotation.NonNull; -import androidx.lifecycle.LifecycleOwner; - -import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.response.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 java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public class BusLinePresenter extends Presenter implements IBusLinesCallback { - - private Disposable subscribe; - - public BusLinePresenter(BusSwitchLineView view) { - super(view); - BusLineModel.getInstance().init(); - OrderModel.getInstance().init(); - } - - @Override - public void onCreate(@NonNull LifecycleOwner owner) { - super.onCreate(owner); - initListener(); - } - - private void initListener() { - BusLineModel.getInstance().setBusLinesCallback(this); - } - - private void runOnUIThread( Runnable executor ) { - if ( executor == null ) { - return; - } - if ( Looper.myLooper() != Looper.getMainLooper() ) { - UiThreadHandler.post( executor ); - } else { - executor.run(); - } - } - - @Override - public void onBusLinesChange(BusQueryLinesResponse lines) { - runOnUIThread(() -> mView.onBusLinesChange(lines)); - } - - @Override - public void onChangeLineIdSuccess() { - OrderModel.getInstance().clearBusStationDatas(); - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onChangeLineIdSuccess(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - public void queryBusLines(){ - BusLineModel.getInstance().queryBusLines(); - } - - public void queryBusLineTasks(int lineId, int position,boolean close){ - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } - if(close){ - return; - } - BusLineModel.getInstance().queryBusLineTasksById(lineId,position,false); - subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> { - BusLineModel.getInstance().queryBusLineTasksById(lineId,position,true); - }); - } - - public void commitSwitchLineId(int taskId,int lineId){ - BusLineModel.getInstance().commitSwitchLineId(taskId,lineId); - } - - public void removeListener(){ - BusLineModel.getInstance().setBusLinesCallback(null); - } - - public void queryBusRoutes(){ - OrderModel.getInstance().queryBusRoutes(); - } - - @Override - public void onDestroy(@NonNull LifecycleOwner owner) { - super.onDestroy(owner); - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } - } - - - @Override - public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) { - if(mView!=null) { - mView.onBusLineTasks(o,position,autoRefresh); - } - } -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java deleted file mode 100644 index 8545f5f399..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.mogo.och.bus.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 - * - * 管理轮询逻辑(订单轮询、新单轮询、新单抢单结果轮询等等) - */ -public class BusModelLoopManager { - - private static final String TAG = BusModelLoopManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final BusModelLoopManager INSTANCE = new BusModelLoopManager(); - } - - public static BusModelLoopManager getInstance() { - return SingletonHolder.INSTANCE; - } - - private Disposable mHeartbeatDisposable; //心跳轮询 - - public void startHeartbeatLoop() { - if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { - return; - } - CallerLogger.i(M_BUS + TAG, "startHeartbeatLoop()"); - mHeartbeatDisposable = Observable.interval(BusConst.LOOP_DELAY, - BusConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> OrderModel.getInstance().runCarHeartbeat()); - } - - public void stopHeartbeatLoop() { - if (mHeartbeatDisposable != null) { - CallerLogger.i(M_BUS + TAG, "stopHeartbeatLoop()"); - mHeartbeatDisposable.dispose(); - mHeartbeatDisposable = null; - } - } -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.kt deleted file mode 100644 index 7391028f87..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.kt +++ /dev/null @@ -1,259 +0,0 @@ -package com.mogo.och.bus.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.mvp.Presenter -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 -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.bean.WriteOffPassenger -import com.mogo.och.bus.callback.IPassengerCallback -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.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.IOchAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation -import com.mogo.och.data.bean.BusStationBean -import mogo_msg.MogoReportMsg; - -/** - * 网约车小巴 - */ -class BusPresenter(view: BusFragment?) : Presenter(view), ILoginCallback, - IPassengerCallback, IOchAutopilotStatusListener { - private val mStationList: MutableList = ArrayList() - private var mCurrentStation = 0 - - init { - //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 - OrderModel.getInstance().init() - OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()) - } - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - initModelListener() - - OrderModel.getInstance().queryBusCacheRoutes() - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - OrderModel.getInstance().release() - releaseListener() - } - - fun initModelListener() { - OrderModel.getInstance().setPassengerCallback(this) - OchAutoPilotStatusListenerManager.addListener(TAG, this) - LoginStatusManager.addListener(TAG, this) - } - - fun releaseListener() { - OrderModel.getInstance().setPassengerCallback(null) - OCHAdasAbilityManager.getInstance().release() - OchAutoPilotStatusListenerManager.removeListener(TAG) - LoginStatusManager.removeListener(TAG) - } - - fun abortTask() { - OrderModel.getInstance().abortTask() - } - - fun autoDriveToNextStation() { - OrderModel.getInstance().autoDriveToNextStation() - } - - fun restartAutopilot() { - if (OrderModel.getInstance().isGoingToNextStation) { - OrderModel.getInstance().restartAutopilot() - } - } - - // 登出 - fun logout() { - OrderModel.getInstance().logout() - } - - override fun updateBusTaskStatus( - lineName: String, lineTime: String, - stationList: List, - arrivingOrArrivedIndex: Int, - isArrived: Boolean - ) { - mStationList.clear() - mStationList.addAll(stationList) - mCurrentStation = if (arrivingOrArrivedIndex == 0 || isArrived) { - arrivingOrArrivedIndex - } else { - arrivingOrArrivedIndex - 1 - } - CallerLogger.d( - SceneConstant.Companion.M_BUS + "BusOrderModel =", - " mCurrentStation =$mCurrentStation" - ) - UiThreadHandler.post({ - mView?.updateBusTaskStatus( - lineName, lineTime, - stationList, arrivingOrArrivedIndex, isArrived - ) - }, UiThreadHandler.MODE.QUEUE) - } - - override fun updateEmptyUi() { - UiThreadHandler.post({ - mView?.updateLineEmptyUI() - }, UiThreadHandler.MODE.QUEUE) - } - - override fun clearBusStationsMarkers() { - UiThreadHandler.post({ - mView?.clearBusStationsMarkers() - }, UiThreadHandler.MODE.QUEUE) - } - - override fun hideSlidePanel() { - mView?.hideSlidePanel() - mView?.setArrivedClickable(true) - } - - override fun onAutopilotArriveAtStation(arrivedStation: ArrivedStation) { - CallerLogger.e( - SceneConstant.Companion.M_BUS + TAG, - "行程日志-onAutopilotArriveAtStation arrive" - ) - arriveStation(arrivedStation, "底盘触发进站") - } - - fun arriveStation(arrivedStation: ArrivedStation?, type: String?) { - OrderModel.getInstance().onArriveAt(arrivedStation, type) - } - - - override fun onAutopilotStatusResponse(state: Int) { - when (state) { - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE, IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE, IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { - if (FunctionBuildConfig.isDemoMode - && ((mCurrentStation >= 0 && mCurrentStation <= mStationList.size - 1) - && OrderModel.getInstance().isGoingToNextStation - ) - ) { - CallerLogger.d(SceneConstant.Companion.M_BUS + "BusOrderModel=", "有美化功能") - return - } - // 改变UI自动驾驶状态 - UiThreadHandler.post({ - mView?.onAutopilotStatusChanged( - state, - CallerAutoPilotControlManager.isCanStartAutopilot(false, 0) - ) - }, UiThreadHandler.MODE.QUEUE) - } - - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { - OrderModel.getInstance().triggerStartServiceEvent( - OrderModel.getInstance().isRestartAutopilot, true, 0 - ) - // 改变UI自动驾驶状态 - UiThreadHandler.post({ - mView?.onAutopilotStatusChanged( - state, - CallerAutoPilotControlManager.isCanStartAutopilot(false, 0) - ) - }, UiThreadHandler.MODE.QUEUE) - } - - else -> UiThreadHandler.post({ - mView?.onAutopilotEnableChange(false) - }, UiThreadHandler.MODE.QUEUE) - } - } - - override fun onAutopilotStatusResponseFromCan(state: Int) { - if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - OrderModel.getInstance().triggerStartServiceEvent( - OrderModel.getInstance().isRestartAutopilot, true, 1 - ) - } - } - - override fun startOpenAutopilot() { - //非美化模式下启动动画 - UiThreadHandler.post({ - mView?.startAutopilotAnimation() - }, UiThreadHandler.MODE.QUEUE) - - //中间站点再次开启自驾时, 自动驾驶状态是2未改变, 此次鹰眼底层不再返给业务,需优化按钮动画显示 - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - == CallerAutoPilotStatusListenerManager.getState() && mView != null - ) { - mView?.onAutopilotStatusChanged( - CallerAutoPilotStatusListenerManager.getState(), - CallerAutoPilotControlManager.isCanStartAutopilot(false, 0) - ) - } - } - - /** - * 测试使用 - */ - fun debugAutoPilotStatus(status: Int) { - onAutopilotStatusResponse(status) - } - - - override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?, lineId: Long) { - BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo, lineId) - } - - - override fun onStatusChange(currentStatus: LoginStatusEnum) { - CallerLogger.d( - SceneConstant.Companion.M_BUS + TAG, - " loginStatus =" + LoginStatusManager.isLogin() - ) - if (LoginStatusManager.isLogin()) { - OrderModel.getInstance().startOrStopOrderLoop(true) - OrderModel.getInstance().queryBusCacheRoutes() - } else { - BusTrajectoryManager.getInstance().stopTrajReqLoop() - OrderModel.getInstance().startOrStopOrderLoop(false) - BusTrajectoryManager.getInstance().stopTrajReqLoop() - clearBusStationsMarkers() - mView?.hideSlidePanel() - OrderModel.getInstance().closeBeautificationMode() - } - } - - override fun playPassenger(passenger: WriteOffPassenger) { - val passengerNum = passenger.passengerSize - BusVoiceManager.writeOffCount(passengerNum) - } - - override fun onStartAdasFailure() { - UiThreadHandler.post({ - mView?.stopAnimAndUpdateBtnStatus() - }, UiThreadHandler.MODE.QUEUE) - } - - override fun canStartAutopilot(canStart: Boolean) { - mView?.onAutopilotStatusChanged( - CallerAutoPilotStatusListenerManager.getState(), - canStart - ) - } - - companion object { - private const val TAG = "BusPresenter" - } -} diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt deleted file mode 100644 index ed9f463413..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt +++ /dev/null @@ -1,99 +0,0 @@ -package com.mogo.och.bus.ui - -import android.content.Context -import android.util.AttributeSet -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.common.module.utils.BlinkAnimationUtil -import kotlinx.android.synthetic.main.bus_stations_common_item.view.* - -/** - * @author: wangmingjun - * @date: 2022/9/15 - */ -class BusStationCommonItem @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr){ - - init { - LayoutInflater.from(context).inflate(R.layout.bus_stations_common_item,this,true) - } - - fun setStationName(name: String){ - busStationNameTv.text = name - } - - fun setStationNameColor(color: Int){ - busStationNameTv.setTextColor(color) - } - - fun setStationPointBg(type: Int) { // 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 - BlinkAnimationUtil.clearAnimation(busCircleIv) - when (type) { - 0 -> { - busCircleIvBg.visibility = GONE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_grey_bus - ) - ) - } - 1 -> { - busCircleIvBg.visibility = VISIBLE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_green_bus - ) - ) - BlinkAnimationUtil.setAnimation(busCircleIv) - } - 2 -> { - busCircleIvBg.visibility = GONE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_blue_bus - ) - ) - } - - } - } - - fun getCircleImageView() : ImageView{ - return busCircleIv - } - - fun setStationArrowBg(type: Int){// 0:灰色 过站 1:绿色 前往下一站 2:蓝色 未到站 - when(type){ - 0 -> busArrowBg.setImageResource(R.drawable.icon_arrow_grey_bus) - 1 -> busArrowBg.setImageResource(R.drawable.icon_arrow_green_bus) - 2 -> busArrowBg.setImageResource(R.drawable.icon_arrow_blue_bus) - } - - } - - fun setStationTag(tag: String){ // 0:起 1:终 - if (tag.isNullOrEmpty()){ - busTagTxt.visibility = GONE - }else{ - busTagTxt.text = tag - busTagTxt.visibility = VISIBLE - } - } - - fun showOrHideStationArrowBg(isShow:Boolean){ - if (isShow){ - busArrowBg.visibility = VISIBLE - }else{ - busArrowBg.visibility = GONE - } - } -} \ No newline at end of file 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 deleted file mode 100644 index 877921a5e0..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt +++ /dev/null @@ -1,223 +0,0 @@ -package com.mogo.och.bus.ui - -import android.graphics.Point -import android.os.Bundle -import android.view.Gravity -import android.view.View -import android.view.ViewGroup -import android.view.WindowManager -import android.widget.ImageView -import android.widget.TextView -import androidx.constraintlayout.widget.ConstraintLayout -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.response.BusQueryLinesResponse -import com.mogo.och.bus.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.response.BusQueryLineTaskResponse -import com.mogo.och.common.module.utils.ResourcesUtils -import java.util.ArrayList - -/** - * @author: wangmingjun - * @date: 2022/2/8 - */ -class BusSwitchLineActivity : MvpActivity(), - View.OnClickListener, BusSwitchLineView { - - companion object{ - const val LASTCOMMITLINEID = "lastcommitlineid" - } - - private lateinit var mClose: ImageView - private lateinit var mNoDatasView: ConstraintLayout - private lateinit var mLinesListView: RecyclerView - private lateinit var mLineCommitBtn: TextView - private lateinit var mAdapter: SwitchLineAdapter - private lateinit var linearLayoutManager:LinearLayoutManager - private val mData: MutableList = ArrayList() - override fun getLayoutId(): Int { - return R.layout.bus_switch_line - } - - override fun createPresenter(): BusLinePresenter { - return BusLinePresenter(this) - } - - override fun initViews() { - initWH() - initView() - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - initDatas() - } - - /** - * 初始化view - */ - private fun initView() { - mClose = findViewById(R.id.switch_line_close) - mClose.setOnClickListener(this) - mNoDatasView = findViewById(R.id.no_order_data_view) - mLineCommitBtn = findViewById(R.id.switch_line_btn_commit) - mLineCommitBtn.setOnClickListener(this) - mLinesListView = findViewById(R.id.switch_line_rv) - linearLayoutManager = LinearLayoutManager(this) - mLinesListView.setLayoutManager(linearLayoutManager) - mLinesListView.setItemAnimator(OpenItemAnimator()) - mAdapter = SwitchLineAdapter(applicationContext, mData) - mLinesListView.addItemDecoration( - SpacesItemDecoration( - 4 - ) - ) - mLinesListView.setAdapter(mAdapter) - //设置item 点击事件 - mAdapter.setOnLineItemClickListener(object :SwitchLineAdapter.LineItemClickListener{ - override fun onItemClick(position: Int, close: Boolean) { - mPresenter?.queryBusLineTasks(mData[position].lineId, position, close) - } - }) - } - - /** - * 设置布局宽高 - */ - private fun initWH() { - val window = window - val params = window.attributes - val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager - val point = Point() - windowManager.defaultDisplay.getSize(point) //用于获取屏幕高度 - params.width = (point.x * 0.375).toInt() - params.height = ViewGroup.LayoutParams.MATCH_PARENT - window.attributes = params - window.setGravity(Gravity.START or Gravity.BOTTOM) - } - - /** - * 初始化数据 - */ - private fun initDatas() { - mPresenter?.queryBusLines() - } - - /** - * 查询返回绑定路线集合 - * @param data - */ - override fun onBusLinesChange(data: BusQueryLinesResponse?) { - if (null == data) { - showNoData(true) - return - } - val lastCommitLineid = SharedPrefsMgr.getInstance().getInt(LASTCOMMITLINEID, -1) - if (data.data != null && data.data.isNullOrEmpty()) { - showNoData(false) - mData.clear() - mData.addAll(data.data!!) - mAdapter.notifyDataSetChanged() - if(lastCommitLineid>0){ - mData.forEachIndexed { index, line -> - if(line.lineId==lastCommitLineid){ - line.open = true - mPresenter?.queryBusLineTasks(line.lineId,index,false) - return - } - } - } - } else { - showNoData(true) - } - } - - override fun onChangeLineIdSuccess() { - ToastUtils.showLong(ResourcesUtils.getString(R.string.bus_change_line_commit_tip_s)) - mPresenter?.queryBusRoutes() - mAdapter.setOnLineItemClickListener(null) - mPresenter?.removeListener() - finish() - } - - override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int, autoRefresh:Boolean) { - val result = mData[position] - if (result.taskList == null) { - result.taskList = ArrayList() - } - if (lineTaskInfo == null) { - result.haveTask = true - // 打开操作 - mAdapter.notifyItemChanged(position) - } else { - if (lineTaskInfo.data.isNullOrEmpty()) { - result.haveTask = true - lineTaskInfo.data = ArrayList() - } - if (lineTaskInfo.data!!.size != result.taskList!!.size) { // 不相等有变动 重新赋值 - result.taskList!!.clear() - result.taskList!!.addAll(lineTaskInfo.data!!) - if(autoRefresh) { - mAdapter.checkTaskId = -1 - mAdapter.checkLineId = -1 - lineTaskInfo.data?.forEach { - if (it.id == mAdapter.checkTaskId) { - mAdapter.checkTaskId = it.id - mAdapter.checkLineId = result.lineId - } - } - } - // 打开操作 - mAdapter.notifyItemChanged(position) - linearLayoutManager.stackFromEnd = (position==mData.size-1||position==mData.size-2)&&mData.size>6 - mLinesListView.smoothScrollToPosition(position) - }else if(lineTaskInfo.data.isNullOrEmpty()){ - mAdapter.notifyItemChanged(position) - } - } - } - - /** - * 有无数据UI显示 - * @param b - */ - private fun showNoData(b: Boolean) { - if (b) { - mLinesListView.visibility = View.GONE - mLineCommitBtn.visibility = View.GONE - mNoDatasView.visibility = View.VISIBLE - } else { - mLinesListView.visibility = View.VISIBLE - mLineCommitBtn.visibility = View.VISIBLE - mNoDatasView.visibility = View.GONE - } - } - - override fun onClick(v: View) { - //关闭dialog - if (v.id == R.id.switch_line_close) { - finish() - return - } - //切换路线提交 - if (v.id == R.id.switch_line_btn_commit) { - if(mAdapter.checkLineId!=-1&&mAdapter.checkTaskId!=-1){ - mPresenter?.commitSwitchLineId(mAdapter.checkTaskId,mAdapter.checkLineId) - }else{ - ToastUtils.showLong("请选择任务") - } - } - } - - override fun onDestroy() { - mPresenter!!.removeListener() - super.onDestroy() - } -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java deleted file mode 100644 index 9b84e36e43..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.och.bus.ui; - -import com.mogo.commons.mvp.IView; -import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse; -import com.mogo.och.bus.bean.response.BusQueryLinesResponse; - -/** - * @author: wangmingjun - * @date: 2022/2/10 - */ -public interface BusSwitchLineView extends IView { - - void onBusLinesChange(BusQueryLinesResponse data); - void onChangeLineIdSuccess(); - - void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); -} - diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java deleted file mode 100644 index 15ff420cc1..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java +++ /dev/null @@ -1,642 +0,0 @@ -package com.mogo.och.bus.ui.adapter; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.TimeInterpolator; -import android.animation.ValueAnimator; -import android.view.View; -import android.view.ViewPropertyAnimator; - -import androidx.annotation.NonNull; -import androidx.core.view.ViewCompat; -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.RecyclerView; - -import java.util.ArrayList; -import java.util.List; - -/** - * This implementation of {@link RecyclerView.ItemAnimator} provides basic - * animations on remove, add, and move events that happen to the items in - * a RecyclerView. RecyclerView uses a DefaultItemAnimator by default. - * - * @see RecyclerView#setItemAnimator(RecyclerView.ItemAnimator) - */ -public class OpenItemAnimator extends DefaultItemAnimator { - private static final boolean DEBUG = false; - - private static TimeInterpolator sDefaultInterpolator; - - private final ArrayList mPendingRemovals = new ArrayList<>(); - private final ArrayList mPendingAdditions = new ArrayList<>(); - private final ArrayList mPendingMoves = new ArrayList<>(); - private final ArrayList mPendingChanges = new ArrayList<>(); - - private final ArrayList> mAdditionsList = new ArrayList<>(); - private final ArrayList> mMovesList = new ArrayList<>(); - private final ArrayList> mChangesList = new ArrayList<>(); - - private final ArrayList mAddAnimations = new ArrayList<>(); - private final ArrayList mMoveAnimations = new ArrayList<>(); - private final ArrayList mRemoveAnimations = new ArrayList<>(); - private final ArrayList mChangeAnimations = new ArrayList<>(); - - private static class MoveInfo { - public RecyclerView.ViewHolder holder; - public int fromX, fromY, toX, toY; - - MoveInfo(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) { - this.holder = holder; - this.fromX = fromX; - this.fromY = fromY; - this.toX = toX; - this.toY = toY; - } - } - - private static class ChangeInfo { - public RecyclerView.ViewHolder oldHolder, newHolder; - public int fromX, fromY, toX, toY; - private ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder) { - this.oldHolder = oldHolder; - this.newHolder = newHolder; - } - - ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, - int fromX, int fromY, int toX, int toY) { - this(oldHolder, newHolder); - this.fromX = fromX; - this.fromY = fromY; - this.toX = toX; - this.toY = toY; - } - - @Override - public String toString() { - return "ChangeInfo{" - + "oldHolder=" + oldHolder - + ", newHolder=" + newHolder - + ", fromX=" + fromX - + ", fromY=" + fromY - + ", toX=" + toX - + ", toY=" + toY - + '}'; - } - } - - @Override - public void runPendingAnimations() { - boolean removalsPending = !mPendingRemovals.isEmpty(); - boolean movesPending = !mPendingMoves.isEmpty(); - boolean changesPending = !mPendingChanges.isEmpty(); - boolean additionsPending = !mPendingAdditions.isEmpty(); - if (!removalsPending && !movesPending && !additionsPending && !changesPending) { - // nothing to animate - return; - } - // First, remove stuff - for (RecyclerView.ViewHolder holder : mPendingRemovals) { - animateRemoveImpl(holder); - } - mPendingRemovals.clear(); - // Next, move stuff - if (movesPending) { - final ArrayList moves = new ArrayList<>(mPendingMoves); - mMovesList.add(moves); - mPendingMoves.clear(); - Runnable mover = () -> { - for (MoveInfo moveInfo : moves) { - animateMoveImpl(moveInfo.holder, moveInfo.fromX, moveInfo.fromY, - moveInfo.toX, moveInfo.toY); - } - moves.clear(); - mMovesList.remove(moves); - }; - if (removalsPending) { - View view = moves.get(0).holder.itemView; - ViewCompat.postOnAnimationDelayed(view, mover, getRemoveDuration()); - } else { - mover.run(); - } - } - // Next, change stuff, to run in parallel with move animations - if (changesPending) { - final ArrayList changes = new ArrayList<>(mPendingChanges); - mChangesList.add(changes); - mPendingChanges.clear(); - Runnable changer = () -> { - for (ChangeInfo change : changes) { - animateChangeImpl(change); - } - changes.clear(); - mChangesList.remove(changes); - }; - if (removalsPending) { - RecyclerView.ViewHolder holder = changes.get(0).oldHolder; - ViewCompat.postOnAnimationDelayed(holder.itemView, changer, getRemoveDuration()); - } else { - changer.run(); - } - } - // Next, add stuff - if (additionsPending) { - final ArrayList additions = new ArrayList<>(mPendingAdditions); - mAdditionsList.add(additions); - mPendingAdditions.clear(); - Runnable adder = () -> { - for (RecyclerView.ViewHolder holder : additions) { - animateAddImpl(holder); - } - additions.clear(); - mAdditionsList.remove(additions); - }; - if (removalsPending || movesPending || changesPending) { - long removeDuration = removalsPending ? getRemoveDuration() : 0; - long moveDuration = movesPending ? getMoveDuration() : 0; - long changeDuration = changesPending ? getChangeDuration() : 0; - long totalDelay = removeDuration + Math.max(moveDuration, changeDuration); - View view = additions.get(0).itemView; - ViewCompat.postOnAnimationDelayed(view, adder, totalDelay); - } else { - adder.run(); - } - } - } - - @Override - public boolean animateRemove(final RecyclerView.ViewHolder holder) { - resetAnimation(holder); - mPendingRemovals.add(holder); - return true; - } - - private void animateRemoveImpl(final RecyclerView.ViewHolder holder) { - final View view = holder.itemView; - final ViewPropertyAnimator animation = view.animate(); - mRemoveAnimations.add(holder); - animation.setDuration(getRemoveDuration()).alpha(0).setListener( - new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchRemoveStarting(holder); - } - - @Override - public void onAnimationEnd(Animator animator) { - animation.setListener(null); - view.setAlpha(1); - dispatchRemoveFinished(holder); - mRemoveAnimations.remove(holder); - dispatchFinishedWhenDone(); - } - }).start(); - } - - @Override - public boolean animateAdd(final RecyclerView.ViewHolder holder) { - resetAnimation(holder); - holder.itemView.setAlpha(0); - mPendingAdditions.add(holder); - return true; - } - - void animateAddImpl(final RecyclerView.ViewHolder holder) { - final View view = holder.itemView; - final ViewPropertyAnimator animation = view.animate(); - mAddAnimations.add(holder); - animation.alpha(1).setDuration(getAddDuration()) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchAddStarting(holder); - } - - @Override - public void onAnimationCancel(Animator animator) { - view.setAlpha(1); - } - - @Override - public void onAnimationEnd(Animator animator) { - animation.setListener(null); - dispatchAddFinished(holder); - mAddAnimations.remove(holder); - dispatchFinishedWhenDone(); - } - }).start(); - } - - @Override - public boolean animateMove(final RecyclerView.ViewHolder holder, int fromX, int fromY, - int toX, int toY) { - final View view = holder.itemView; - fromX += (int) holder.itemView.getTranslationX(); - fromY += (int) holder.itemView.getTranslationY(); - resetAnimation(holder); - int deltaX = toX - fromX; - int deltaY = toY - fromY; - if (deltaX == 0 && deltaY == 0) { - dispatchMoveFinished(holder); - return false; - } - if (deltaX != 0) { - view.setTranslationX(-deltaX); - } - if (deltaY != 0) { - view.setTranslationY(-deltaY); - } - mPendingMoves.add(new MoveInfo(holder, fromX, fromY, toX, toY)); - return true; - } - - void animateMoveImpl(final RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) { - final View view = holder.itemView; - final int deltaX = toX - fromX; - final int deltaY = toY - fromY; - if (deltaX != 0) { - view.animate().translationX(0); - } - if (deltaY != 0) { - view.animate().translationY(0); - } - // TODO: make EndActions end listeners instead, since end actions aren't called when - // vpas are canceled (and can't end them. why?) - // need listener functionality in VPACompat for this. Ick. - final ViewPropertyAnimator animation = view.animate(); - mMoveAnimations.add(holder); - animation.setDuration(getMoveDuration()).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchMoveStarting(holder); - } - - @Override - public void onAnimationCancel(Animator animator) { - if (deltaX != 0) { - view.setTranslationX(0); - } - if (deltaY != 0) { - view.setTranslationY(0); - } - } - - @Override - public void onAnimationEnd(Animator animator) { - animation.setListener(null); - dispatchMoveFinished(holder); - mMoveAnimations.remove(holder); - dispatchFinishedWhenDone(); - } - }).start(); - } - - @Override - public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, - int fromX, int fromY, int toX, int toY) { - if (oldHolder == newHolder) { - // Don't know how to run change animations when the same view holder is re-used. - // run a move animation to handle position changes. - return animateMove(oldHolder, fromX, fromY, toX, toY); - } - final float prevTranslationX = oldHolder.itemView.getTranslationX(); - final float prevTranslationY = oldHolder.itemView.getTranslationY(); - final float prevAlpha = oldHolder.itemView.getAlpha(); - resetAnimation(oldHolder); - int deltaX = (int) (toX - fromX - prevTranslationX); - int deltaY = (int) (toY - fromY - prevTranslationY); - // recover prev translation state after ending animation - oldHolder.itemView.setTranslationX(prevTranslationX); - oldHolder.itemView.setTranslationY(prevTranslationY); - oldHolder.itemView.setAlpha(prevAlpha); - if (newHolder != null) { - // carry over translation values - resetAnimation(newHolder); - newHolder.itemView.setTranslationX(-deltaX); - newHolder.itemView.setTranslationY(-deltaY); - newHolder.itemView.setAlpha(0); - } - mPendingChanges.add(new ChangeInfo(oldHolder, newHolder, fromX, fromY, toX, toY)); - return true; - } - - void animateChangeImpl(final ChangeInfo changeInfo) { - final RecyclerView.ViewHolder holder = changeInfo.oldHolder; - final View view = holder == null ? null : holder.itemView; - final RecyclerView.ViewHolder newHolder = changeInfo.newHolder; - final View newView = newHolder != null ? newHolder.itemView : null; - if (view != null) { - final ViewPropertyAnimator oldViewAnim = view.animate().setDuration( - getChangeDuration()); - mChangeAnimations.add(changeInfo.oldHolder); - oldViewAnim.translationX((float) (changeInfo.toX - changeInfo.fromX)); - oldViewAnim.translationY((float) (changeInfo.toY - changeInfo.fromY)); - oldViewAnim.alpha(0).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchChangeStarting(changeInfo.oldHolder, true); - } - - @Override - public void onAnimationEnd(Animator animator) { - oldViewAnim.setListener(null); - view.setAlpha(1); - view.setTranslationX(0); - view.setTranslationY(0); - dispatchChangeFinished(changeInfo.oldHolder, true); - mChangeAnimations.remove(changeInfo.oldHolder); - dispatchFinishedWhenDone(); - } - }).start(); - } - if (newView != null) { - final ViewPropertyAnimator newViewAnimation = newView.animate(); - mChangeAnimations.add(changeInfo.newHolder); - newViewAnimation.translationX(0).translationY(0).setDuration(getChangeDuration()) - .alpha(1).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchChangeStarting(changeInfo.newHolder, false); - } - @Override - public void onAnimationEnd(Animator animator) { - newViewAnimation.setListener(null); - newView.setAlpha(1); - newView.setTranslationX(0); - newView.setTranslationY(0); - dispatchChangeFinished(changeInfo.newHolder, false); - mChangeAnimations.remove(changeInfo.newHolder); - dispatchFinishedWhenDone(); - } - }).start(); - } - } - - private void endChangeAnimation(List infoList, RecyclerView.ViewHolder item) { - for (int i = infoList.size() - 1; i >= 0; i--) { - ChangeInfo changeInfo = infoList.get(i); - if (endChangeAnimationIfNecessary(changeInfo, item)) { - if (changeInfo.oldHolder == null && changeInfo.newHolder == null) { - infoList.remove(changeInfo); - } - } - } - } - - private void endChangeAnimationIfNecessary(ChangeInfo changeInfo) { - if (changeInfo.oldHolder != null) { - endChangeAnimationIfNecessary(changeInfo, changeInfo.oldHolder); - } - if (changeInfo.newHolder != null) { - endChangeAnimationIfNecessary(changeInfo, changeInfo.newHolder); - } - } - private boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) { - boolean oldItem = false; - if (changeInfo.newHolder == item) { - changeInfo.newHolder = null; - } else if (changeInfo.oldHolder == item) { - changeInfo.oldHolder = null; - oldItem = true; - } else { - return false; - } - item.itemView.setAlpha(1); - item.itemView.setTranslationX(0); - item.itemView.setTranslationY(0); - dispatchChangeFinished(item, oldItem); - return true; - } - - @Override - public void endAnimation(RecyclerView.ViewHolder item) { - final View view = item.itemView; - // this will trigger end callback which should set properties to their target values. - view.animate().cancel(); - // TODO if some other animations are chained to end, how do we cancel them as well? - for (int i = mPendingMoves.size() - 1; i >= 0; i--) { - MoveInfo moveInfo = mPendingMoves.get(i); - if (moveInfo.holder == item) { - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(item); - mPendingMoves.remove(i); - } - } - endChangeAnimation(mPendingChanges, item); - if (mPendingRemovals.remove(item)) { - view.setAlpha(1); - dispatchRemoveFinished(item); - } - if (mPendingAdditions.remove(item)) { - view.setAlpha(1); - dispatchAddFinished(item); - } - - for (int i = mChangesList.size() - 1; i >= 0; i--) { - ArrayList changes = mChangesList.get(i); - endChangeAnimation(changes, item); - if (changes.isEmpty()) { - mChangesList.remove(i); - } - } - for (int i = mMovesList.size() - 1; i >= 0; i--) { - ArrayList moves = mMovesList.get(i); - for (int j = moves.size() - 1; j >= 0; j--) { - MoveInfo moveInfo = moves.get(j); - if (moveInfo.holder == item) { - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(item); - moves.remove(j); - if (moves.isEmpty()) { - mMovesList.remove(i); - } - break; - } - } - } - for (int i = mAdditionsList.size() - 1; i >= 0; i--) { - ArrayList additions = mAdditionsList.get(i); - if (additions.remove(item)) { - view.setAlpha(1); - dispatchAddFinished(item); - if (additions.isEmpty()) { - mAdditionsList.remove(i); - } - } - } - - // animations should be ended by the cancel above. - //noinspection Pointless BooleanExpression,ConstantConditions - if (mRemoveAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mRemoveAnimations list"); - } - - //noinspection Pointless BooleanExpression,ConstantConditions - if (mAddAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mAddAnimations list"); - } - - //noinspection Pointless BooleanExpression,ConstantConditions - if (mChangeAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mChangeAnimations list"); - } - - //noinspection Pointless BooleanExpression,ConstantConditions - if (mMoveAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mMoveAnimations list"); - } - dispatchFinishedWhenDone(); - } - - private void resetAnimation(RecyclerView.ViewHolder holder) { - if (sDefaultInterpolator == null) { - sDefaultInterpolator = new ValueAnimator().getInterpolator(); - } - holder.itemView.animate().setInterpolator(sDefaultInterpolator); - endAnimation(holder); - } - - @Override - public boolean isRunning() { - return (!mPendingAdditions.isEmpty() - || !mPendingChanges.isEmpty() - || !mPendingMoves.isEmpty() - || !mPendingRemovals.isEmpty() - || !mMoveAnimations.isEmpty() - || !mRemoveAnimations.isEmpty() - || !mAddAnimations.isEmpty() - || !mChangeAnimations.isEmpty() - || !mMovesList.isEmpty() - || !mAdditionsList.isEmpty() - || !mChangesList.isEmpty()); - } - - /** - * Check the state of currently pending and running animations. If there are none - * pending/running, call {@link #dispatchAnimationsFinished()} to notify any - * listeners. - */ - void dispatchFinishedWhenDone() { - if (!isRunning()) { - dispatchAnimationsFinished(); - } - } - - @Override - public void endAnimations() { - int count = mPendingMoves.size(); - for (int i = count - 1; i >= 0; i--) { - MoveInfo item = mPendingMoves.get(i); - View view = item.holder.itemView; - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(item.holder); - mPendingMoves.remove(i); - } - count = mPendingRemovals.size(); - for (int i = count - 1; i >= 0; i--) { - RecyclerView.ViewHolder item = mPendingRemovals.get(i); - dispatchRemoveFinished(item); - mPendingRemovals.remove(i); - } - count = mPendingAdditions.size(); - for (int i = count - 1; i >= 0; i--) { - RecyclerView.ViewHolder item = mPendingAdditions.get(i); - item.itemView.setAlpha(1); - dispatchAddFinished(item); - mPendingAdditions.remove(i); - } - count = mPendingChanges.size(); - for (int i = count - 1; i >= 0; i--) { - endChangeAnimationIfNecessary(mPendingChanges.get(i)); - } - mPendingChanges.clear(); - if (!isRunning()) { - return; - } - - int listCount = mMovesList.size(); - for (int i = listCount - 1; i >= 0; i--) { - ArrayList moves = mMovesList.get(i); - count = moves.size(); - for (int j = count - 1; j >= 0; j--) { - MoveInfo moveInfo = moves.get(j); - RecyclerView.ViewHolder item = moveInfo.holder; - View view = item.itemView; - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(moveInfo.holder); - moves.remove(j); - if (moves.isEmpty()) { - mMovesList.remove(moves); - } - } - } - listCount = mAdditionsList.size(); - for (int i = listCount - 1; i >= 0; i--) { - ArrayList additions = mAdditionsList.get(i); - count = additions.size(); - for (int j = count - 1; j >= 0; j--) { - RecyclerView.ViewHolder item = additions.get(j); - View view = item.itemView; - view.setAlpha(1); - dispatchAddFinished(item); - additions.remove(j); - if (additions.isEmpty()) { - mAdditionsList.remove(additions); - } - } - } - listCount = mChangesList.size(); - for (int i = listCount - 1; i >= 0; i--) { - ArrayList changes = mChangesList.get(i); - count = changes.size(); - for (int j = count - 1; j >= 0; j--) { - endChangeAnimationIfNecessary(changes.get(j)); - if (changes.isEmpty()) { - mChangesList.remove(changes); - } - } - } - - cancelAll(mRemoveAnimations); - cancelAll(mMoveAnimations); - cancelAll(mAddAnimations); - cancelAll(mChangeAnimations); - - dispatchAnimationsFinished(); - } - - void cancelAll(List viewHolders) { - for (int i = viewHolders.size() - 1; i >= 0; i--) { - viewHolders.get(i).itemView.animate().cancel(); - } - } - - /** - * {@inheritDoc} - *

- * If the payload list is not empty, DefaultItemAnimator returns true. - * When this is the case: - *

    - *
  • If you override {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}, both - * ViewHolder arguments will be the same instance. - *
  • - *
  • - * If you are not overriding {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}, - * then DefaultItemAnimator will call {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int)} and - * run a move animation instead. - *
  • - *
- */ - @Override - public boolean canReuseUpdatedViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, - @NonNull List payloads) { - return !payloads.isEmpty() || super.canReuseUpdatedViewHolder(viewHolder, payloads); - } -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt deleted file mode 100644 index 4ed6b0817d..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt +++ /dev/null @@ -1,182 +0,0 @@ -package com.mogo.och.bus.ui.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -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.response.BusQueryLinesResponse -import com.mogo.och.bus.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder -import java.lang.Exception -import kotlin.text.StringBuilder - -/** - * 路线列表adapter - */ -class SwitchLineAdapter( - private val mContext: Context, - private val mData: List -) : RecyclerView.Adapter() { - companion object{ - const val TAG = "SwitchLineAdapter" - } - // RecyclerView设置点击事件 - private var mItemClickListener: LineItemClickListener? = null - var checkLineId:Int = -1 - var checkTaskId:Int = -1 - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int - ): SwitchLineViewHolder { - val view = LayoutInflater.from(mContext).inflate( - R.layout.bus_switch_line_list_item, parent, false - ) - return SwitchLineViewHolder(view) - } - - override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) { - val currentPosition = holder.bindingAdapterPosition - val line = mData[currentPosition] - if(line.name!=null&&line.name!!.length>10){ - line.name = line.name!!.substring(0,10)+"…" - } - holder.lineName.text = line.name - val sb = StringBuilder() - if (line.endSiteName!=null&&line.endSiteName!!.length>10) { - sb.append(line.endSiteName!!.substring(0,5)) - sb.append("…") - sb.append(line.endSiteName!!.substring(line.endSiteName!!.length-5,line.endSiteName!!.length)) - }else{ - sb.append(line.endSiteName) - } - val string = mContext.getString(R.string.bus_line_goto_end, sb.toString()) - holder.lineEndName.text = string - holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3) - val switchLineTaskAdapter = SwitchLineTaskAdapter( - mContext, - checkTaskId, - line.taskList, - object : SwitchLineTaskAdapter.TaskItemClickListener { - override fun onItemClick(position: Int,isCheck:Boolean) { - try { - if (isCheck) { - checkLineId = line.lineId - checkTaskId = line.taskList!![position].id ?: 0 - } else { - checkLineId = -1 - checkTaskId = -1 - } - }catch (e:Exception){ - e.printStackTrace() - checkLineId=-1 - checkTaskId=-1 - } - } - }) - holder.rvLineTask.adapter = switchLineTaskAdapter - holder.rvLineTask.isFocusableInTouchMode = false - holder.actvShowMore.visibility = View.VISIBLE - - if(line.open){ - if(line.taskList.isNullOrEmpty()){ - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.INVISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - }else { - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white)) - holder.vLineTask.visibility = View.VISIBLE - holder.rvLineTask.visibility = View.VISIBLE - holder.selectIv.visibility = View.VISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_selected) - holder.selectIv.apply { - pivotX = 9.5f - pivotY = 17f - rotation = 90f - } - } - }else{ - if(line.haveTask){ - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.INVISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - }else { - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.VISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - holder.selectIv.apply { - pivotX = 9.5f - pivotY = 17f - rotation = 0f - } - } - } - - - //设置item点击事件 - holder.itemView.setOnClickListener { - if(holder.actvShowMore.text==mContext.getString(R.string.bus_switch_line_no_task)){ - return@setOnClickListener - } - mData.forEachIndexed { index, result -> - if(result.open){ - result.open = false; - notifyItemChanged(index) - if(result.taskList!=null) { - result.taskList!!.clear() - } - if(index==currentPosition){// 点击当前已经打开的item 去关闭定时网络请求 - mItemClickListener?.onItemClick(currentPosition,true) - return@setOnClickListener - } - } - } - mItemClickListener?.onItemClick(currentPosition,false) - line.open = holder.rvLineTask.visibility == View.GONE - } - } - - override fun getItemCount(): Int { - return mData.size - } - - fun setOnLineItemClickListener(itemClickListener: LineItemClickListener?) { - mItemClickListener = itemClickListener - } - - class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val selectIv: ImageView - val lineName: AppCompatTextView//线路名称 - val lineEndName: AppCompatTextView //终点 - val actvShowMore: AppCompatTextView //选择时间 - val rvLineTask: RecyclerView// 排班时间 - val vLineTask: View// 白色分割线 - - init { - selectIv = itemView.findViewById(R.id.switch_line_item_select_iv) - lineName = itemView.findViewById(R.id.switch_line_name) - lineEndName = itemView.findViewById(R.id.switch_line_end_station) - rvLineTask = itemView.findViewById(R.id.rv_line_task_list) - vLineTask = itemView.findViewById(R.id.v_line_task) - actvShowMore = itemView.findViewById(R.id.actv_show_more) - } - } - - interface LineItemClickListener { - fun onItemClick(position: Int,close:Boolean) - } -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt deleted file mode 100644 index 3c018a2389..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt +++ /dev/null @@ -1,76 +0,0 @@ -package com.mogo.och.bus.ui.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -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.response.BusQueryLineTaskResponse -import com.mogo.och.bus.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder - -/** - * 路线列表adapter - */ -class SwitchLineTaskAdapter( - private val mContext: Context, - private var checkTaskId:Int, - private val mData: List?, - private val mTaskItemClickListener: TaskItemClickListener? -) : 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 - ) - return SwitchLineTaskViewHolder(view) - } - - override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) { - val currentPosition = holder.bindingAdapterPosition - val task = mData!![currentPosition] - val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm") - holder.lineTask.text = taskStartTime - if(checkTaskId==task.id){ - holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg_selected) - }else{ - holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg) - } - holder.lineTask.setOnClickListener { - if(checkTaskId==task.id){ - checkTaskId = -1 - mTaskItemClickListener?.onItemClick(currentPosition,false) - }else { - resetOther() - checkTaskId = task.id - mTaskItemClickListener?.onItemClick(currentPosition,true) - } - notifyItemChanged(currentPosition) - } - } - - private fun resetOther() { - mData?.forEachIndexed { index, result -> - if(result.id==checkTaskId){ - checkTaskId = -1 - notifyItemChanged(index) - } - } - } - - override fun getItemCount(): Int { - return mData?.size ?: 0 - } - - class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val lineTask: TextView // 时间 - init { - lineTask = itemView.findViewById(R.id.actv_line_task) - } - } - - interface TaskItemClickListener { - fun onItemClick(position: Int,isCheck:Boolean) - } -} \ No newline at end of file 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 deleted file mode 100644 index 467b932361..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.mogo.och.bus.util - -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey - -/** - * OCH Bus埋点工具 - * - * Created on 2022/3/24 - */ -object BusAnalyticsManager: IOchEventKey { - - // 埋点key:接管后点击'自动驾驶'按钮启动 - private const val EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_bus_restart_autopilot" - // 埋点key:开始服务开启自动驾驶(成功/失败) - private const val EVENT_KEY_START_SERVICE = "event_key_och_bus_start_service" - // 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾 - private const val EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_bus_ap_unable_start_reason" - // 埋点key:点击启动自驾 - private const val EVENT_KEY_CLICK_START_AUTOPILOT = "event_key_och_bus_click_start_autopilot" - - - override fun getEventKeyStartService(): String { - return EVENT_KEY_START_SERVICE - } - - override fun getEventKeyRestartService(): String { - return EVENT_KEY_RESTART_AUTOPILOT - } - - override fun getEventKeyApUnableStartReason(): String { - return EVENT_KEY_AP_UNABLE_START_REASON - } - - override fun getEventKeyClickStartAutopilot(): String { - return EVENT_KEY_CLICK_START_AUTOPILOT - } -} \ No newline at end of file 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 deleted file mode 100644 index 46b894bee1..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java +++ /dev/null @@ -1,204 +0,0 @@ -package com.mogo.och.bus.util; - -import androidx.annotation.Nullable; - -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.bus.constant.BusConst; -import com.mogo.och.bus.model.OrderModel; -import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; -import com.mogo.och.data.bean.BusRoutesResult; - -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; -import mogo_msg.MogoReportMsg; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -/** - * Bus轨迹管理:给MEC下发用于轨迹下载的信息 - * Created on 2022/6/23 - */ -public class BusTrajectoryManager { - private static final String TAG = BusTrajectoryManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final BusTrajectoryManager INSTANCE = new BusTrajectoryManager(); - } - - public static BusTrajectoryManager getInstance() { - return BusTrajectoryManager.SingletonHolder.INSTANCE; - } - - private AutopilotControlParameters.AutoPilotLine mAutoPilotLine = null; - private Disposable mSendReqDisposable = null; - - public BusTrajectoryManager() { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "", - "", "", "", "", 0, "", - "", "", "", "", 0); - } - - /** - * 同步Bus路线信息 - */ - public void syncTrajectoryInfo() { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - if (LoginStatusManager.isLogin() && routesResult != null - && OrderModel.getInstance().getCurrentStationIndex() == 0 - && !OrderModel.getInstance().isGoingToNextStation()) { - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start."); - startTrajReqLoop(); - } else { - // 无路线信息or当前未在始发站 - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop."); - stopTrajReqLoop(); - } - } - - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) { - onAutopilotGuardian(guardianInfo); - } - - /** - * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) - * @param guardianInfo - */ - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - if (guardianInfo == null || !guardianInfo.hasCode()) return; - if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())) { - // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发) - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹开始下载"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹开始下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹开始下载"); - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())) { - // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发) - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载成功"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载成功"); - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())) { - // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " + - "轨迹下载失败,本地无对应轨迹"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地无对应轨迹", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载失败,本地无对应轨迹"); - } else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())) { - // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " + - "轨迹下载失败,本地有对应轨迹,认为成功"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地有对应轨迹,认为成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功"); - } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())) { - // 5. 轨迹管理_轨迹下载超时 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载超时"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载超时", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载超时"); - } else if ("ISSM_FUNC_AUTO_PILOT_READY".equals(guardianInfo.getCode())) { - // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() ssm ready,再次发起下载"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 再次发起下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - syncTrajectoryInfo(); - } - } - - private void setupAutoPilotLine() { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - if (routesResult == null) { - CallerLogger.e(M_BUS + TAG, - "setupAutoPilotLine(): routesResult is null."); - return; - } else { - if (mAutoPilotLine == null) { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine( - routesResult.getLineId(), routesResult.getName(), - routesResult.csvFileUrl, routesResult.csvFileMd5, - routesResult.txtFileUrl, routesResult.txtFileMd5, - routesResult.contrailSaveTime, routesResult.carModel, - routesResult.csvFileUrlDPQP, routesResult.csvFileMd5DPQP, - routesResult.txtFileUrlDPQP, routesResult.txtFileMd5DPQP, - routesResult.contrailSaveTimeDPQP); - } else { - mAutoPilotLine.setLineId(routesResult.getLineId()); - mAutoPilotLine.setLineName(routesResult.getName()); - mAutoPilotLine.setTrajUrl(routesResult.csvFileUrl); - mAutoPilotLine.setTrajMd5(routesResult.csvFileMd5); - mAutoPilotLine.setStopUrl(routesResult.txtFileUrl); - mAutoPilotLine.setStopMd5(routesResult.txtFileMd5); - mAutoPilotLine.setTimestamp(routesResult.contrailSaveTime); - mAutoPilotLine.setVehicleModel(routesResult.carModel); - mAutoPilotLine.setTrajUrl_dpqp(routesResult.csvFileUrlDPQP); - mAutoPilotLine.setTrajMd5_dpqp(routesResult.csvFileMd5DPQP); - mAutoPilotLine.setStopUrl_dpqp(routesResult.txtFileUrlDPQP); - mAutoPilotLine.setStopMd5_dpqp(routesResult.txtFileMd5DPQP); - mAutoPilotLine.setTimestamp_dpqp(routesResult.contrailSaveTimeDPQP); - } - } - } - - private void clearAutoPilotLine() { - if (mAutoPilotLine == null) return; - mAutoPilotLine.setLineId(-1); - mAutoPilotLine.setLineName(""); - mAutoPilotLine.setTrajUrl(""); - mAutoPilotLine.setTrajMd5(""); - mAutoPilotLine.setStopUrl(""); - mAutoPilotLine.setStopMd5(""); - mAutoPilotLine.setTimestamp(0); - mAutoPilotLine.setVehicleModel(""); - mAutoPilotLine.setTrajUrl_dpqp(""); - mAutoPilotLine.setTrajMd5_dpqp(""); - mAutoPilotLine.setStopUrl_dpqp(""); - mAutoPilotLine.setStopMd5_dpqp(""); - mAutoPilotLine.setTimestamp_dpqp(0); - } - - private void startTrajReqLoop() { - if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) { - return; - } - CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()"); - setupAutoPilotLine(); - mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY, - BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> { - if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) { - stopTrajReqLoop(); - return; - } - CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong); - sendTrajectoryReq(); - }); - } - - public void stopTrajReqLoop() { - if (mSendReqDisposable != null) { - CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()"); - mSendReqDisposable.dispose(); - mSendReqDisposable = null; - clearAutoPilotLine(); - } - } - - private void sendTrajectoryReq() { - if (mAutoPilotLine == null) { - CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); - return; - } - OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+mAutoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine); - CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): " - + GsonUtils.toJson(mAutoPilotLine)); - } -} 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 deleted file mode 100644 index fcd34525ae..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt +++ /dev/null @@ -1,162 +0,0 @@ -package com.mogo.och.bus.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.common.module.manager.socket.lan.LanSocketManager -import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg -import com.mogo.och.common.module.utils.ResourcesUtils -import com.mogo.och.common.module.voice.VoiceNotice -import com.mogo.tts.base.LangTtsEntity -import com.mogo.tts.base.LanguageType -import java.util.ArrayList - -object BusVoiceManager { - - fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { - val context = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_tip, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_english_tip, it), - LanguageType.ENGLISH - ) - val koreanTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR ?: it), - LanguageType.KOREAN - ) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - - } - - if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { - VoiceNotice.showNotice(list, AIAssist.LEVEL1, null) - } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - siteNameCN?.let { - sendArrivedStationToClient(it) - } - } - } - - private fun sendArrivedStationToClient(arriveStation: String) { - val arrivedMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_arrived_station_tip, arriveStation), - ) - LanSocketManager.sendMsgToClient(arrivedMsg) - } - - fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) { - val list: MutableList = ArrayList() - val context = AbsMogoApplication.getApp() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_tip, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_english_tip, it), - LanguageType.ENGLISH - ) - list.add(chineseTTS) - list.add(engTTS) - - val koreanTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it), - LanguageType.KOREAN - ) - - list.add(koreanTTS) - } - - if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { - VoiceNotice.showNotice(list, AIAssist.LEVEL1, null) - } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - siteNameCN?.let { - sendStartStationToClient(it) - } - } - } - - private fun sendStartStationToClient(nextStation: String) { - val startMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_leave_station_tip, nextStation), - ) - LanSocketManager.sendMsgToClient(startMsg) - } - - fun endOrderBus() { - val context = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - val chineseTTS = - LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE) - val engTTS = LangTtsEntity( - context.getString(R.string.bus_end_task_english_tip), - LanguageType.ENGLISH - ) - val koreanTTS = - LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - - if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { - VoiceNotice.showNotice(list, AIAssist.LEVEL0, null) - } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - sendEndTaskToClient() - } - - } - - private fun sendEndTaskToClient() { - val endMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_end_task_tip), - ) - LanSocketManager.sendMsgToClient(endMsg) - } - - - fun writeOffCount(successNum: Int) { - if (successNum <= 1) { - VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3) - //sendWriteOffNumToClient("核验通过") - } else { - VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3) - //sendWriteOffNumToClient("$successNum 人核验通过") - } - } - - private fun sendWriteOffNumToClient(msg: String?) { - val passengerMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = msg!!, - ) - LanSocketManager.sendMsgToClient(passengerMsg) - } - - - // 距离发车还有1分钟 - fun showLeafTime(tips: String) { - //语音提示 - VoiceNotice.showNotice(tips) - } - - fun writeOffFaile(reaseon: String) { - VoiceNotice.showNotice(reaseon, AIAssist.LEVEL3) - } - -} \ No newline at end of file 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 deleted file mode 100644 index fe5d97bbcc..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.mogo.och.bus.view - -import android.content.Context -import android.os.Bundle -import android.util.AttributeSet -import android.view.LayoutInflater -import android.widget.FrameLayout -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 - -class BizMapView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : FrameLayout(context, attrs, defStyleAttr) { - - private lateinit var mapBizView: MapBizView - - init { - if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - LayoutInflater.from(context).inflate(R.layout.bus_m2_bizmap_map, this, true) - }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) - } - mapBizView = findViewById(R.id.bizMapView) - } - - fun getUI(): IMogoMapUIController? { - return mapBizView.getUI() - } - - fun onCreate(bundle: Bundle?) { - mapBizView.onCreate(bundle) - } - fun onResume() { - mapBizView.onResume() - } - - fun onSaveInstanceState(outState: Bundle){ - mapBizView.onSaveInstanceState(outState) - } - - fun onLowMemory() { - mapBizView.onLowMemory() - } - - fun onPause() { - mapBizView.onPause() - } - - fun onDestroy() { - mapBizView.onDestroy() - } -} \ No newline at end of file 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 deleted file mode 100644 index d83e5272a5..0000000000 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java +++ /dev/null @@ -1,305 +0,0 @@ -package com.mogo.och.bus.view; - -import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.LinearGradient; -import android.graphics.Matrix; -import android.graphics.Paint; -import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.Shader; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; -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.logchainanalytic.OchChainLogManager; - -import me.jessyan.autosize.AutoSizeConfig; -import me.jessyan.autosize.utils.AutoSizeUtils; - -/** - * 滑块滑动面板 - * - * @author tongchenfei - */ -public class SlidePanelView extends View { - private static final String TAG = "SlidePanelView"; - - public SlidePanelView(Context context) { - this(context, null); - } - - public SlidePanelView(Context context, @Nullable AttributeSet attrs) { - this(context, attrs, 0); - } - - public SlidePanelView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - TypedArray mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.SlidePanelView); - textSize = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_textSize, textSize); - BLOCK_START_X = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_X, BLOCK_START_X); - BLOCK_START_Y = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_Y, BLOCK_START_Y); - NORMAL_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_LEFT, NORMAL_TEXT_MARGIN_LEFT); - NORMAL_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_RIGHT, NORMAL_TEXT_MARGIN_RIGHT); - SHORT_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_LEFT, SHORT_TEXT_MARGIN_LEFT); - SHORT_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_RIGHT, SHORT_TEXT_MARGIN_RIGHT); - mTypedArray.recycle(); - init(); - } - - private final Paint bgPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Paint blockPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - - private static int textSize = 40; - private static int BLOCK_START_X = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15); - private static int BLOCK_START_Y = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15); - private static int NORMAL_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),40); - private static int NORMAL_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60); - private static int SHORT_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60); - private static int SHORT_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),70); - - private int textMarginLeft = NORMAL_TEXT_MARGIN_LEFT; - private int textMarginRight = NORMAL_TEXT_MARGIN_RIGHT; - - private OnSlidePanelMoveToEndListener moveToEndListener; - - private int blockWidth = 0; - private int blockOffset = 0; - - private float lastX; - private boolean isToEnd = false; - - private static final String STRING_SLIDE_TO_RIGHT = "向右滑动"; - private RectF bgRectF; - private Bitmap bmBlock; - - private final Matrix gradientMatrix = new Matrix(); - private float matrixTranslate; - private final Rect textRect = new Rect(); - private LinearGradient textGradient; - - private ObjectAnimator matrixAnim; - - private String blockText = STRING_SLIDE_TO_RIGHT; - private final Paint.FontMetrics blockTextMetrics = new Paint.FontMetrics(); - - private static final int GRADIENT_OFFSET = 200; - - public void setOnSlidePanelMoveToEndListener(OnSlidePanelMoveToEndListener moveToEndListener) { - this.moveToEndListener = moveToEndListener; - } - - private void setBlockOffset(int blockOffset) { - this.blockOffset = blockOffset; - invalidate(); - } - - private void setMatrixTranslate(float matrixTranslate) { - this.matrixTranslate = matrixTranslate; - invalidate(); - } - - public void setText(String text) { - this.blockText = text; - requestLayout(); - invalidate(); - } - - private void init() { - bgRectF = new RectF(0, 0, 0, 0); - bgPaint.setColor(Color.parseColor("#CC0F1325")); - bgPaint.setStyle(Paint.Style.FILL); - - textPaint.setStyle(Paint.Style.FILL); - textPaint.setTextSize(textSize); - textPaint.setTextAlign(Paint.Align.LEFT); - textGradient = new LinearGradient(-GRADIENT_OFFSET, 0, 0, 0, new int[]{0x33ffffff, 0xffffffff, 0x33ffffff}, null, Shader.TileMode.CLAMP); - textGradient.setLocalMatrix(gradientMatrix); - textPaint.setShader(textGradient); - textPaint.getFontMetrics(blockTextMetrics); - decodeImage(); - } - - private void decodeImage(){ - ThreadUtils.getCpuPool().execute(() -> { - int size = AutoSizeUtils.dp2px(getContext(), 120); - BitmapFactory.Options opts = new BitmapFactory.Options(); - opts.inDensity = (int) AutoSizeConfig.getInstance().getInitDensity(); - bmBlock = BitmapFactory.decodeResource(getResources(), R.drawable.bus_base_slide_block,opts); - bmBlock = Bitmap.createScaledBitmap(bmBlock, size, size, true); - blockWidth = bmBlock.getWidth(); - UiThreadHandler.post(this::requestLayout,UiThreadHandler.MODE.QUEUE); - }); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int widthMode = MeasureSpec.getMode(widthMeasureSpec); - int heightMode = MeasureSpec.getMode(heightMeasureSpec); - int widthSize; - int heightSize; - - if (blockText.length() < 5) { - textMarginLeft = SHORT_TEXT_MARGIN_LEFT; - textMarginRight = SHORT_TEXT_MARGIN_RIGHT; - } else { - textMarginLeft = NORMAL_TEXT_MARGIN_LEFT; - textMarginRight = NORMAL_TEXT_MARGIN_RIGHT; - } - - if(bmBlock!=null) { - if (widthMode == MeasureSpec.AT_MOST) { - // 宽度根据图片大小,字符串长度,各种间隔确定 - // 高度根据图片大小和上下间隔确定 - textPaint.getTextBounds(blockText, 0, blockText.length(), textRect); - widthSize = BLOCK_START_X * 2 + bmBlock.getWidth() + textMarginLeft + textMarginRight + textRect.width(); - heightSize = BLOCK_START_Y * 2 + bmBlock.getHeight(); - widthMeasureSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode); - heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode); - } - } - - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - - private float textOffset = 0; - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - super.onSizeChanged(w, h, oldw, oldh); - if (bgRectF != null){ - bgRectF.left = 0; - bgRectF.top = 0; - bgRectF.right = w; - bgRectF.bottom = h; - } - - if (matrixAnim != null) { - matrixAnim.cancel(); - } - textOffset = (getHeight() - blockTextMetrics.ascent - blockTextMetrics.descent) / 2; - matrixAnim = ObjectAnimator.ofFloat(this, "matrixTranslate", 0, w + GRADIENT_OFFSET).setDuration(2000); - matrixAnim.setRepeatCount(ValueAnimator.INFINITE); - matrixAnim.start(); - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - if (matrixAnim != null) { - matrixAnim.start(); - } - } - - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (matrixAnim != null) { - matrixAnim.cancel(); - } - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - float x = event.getX(); - float y = event.getY(); - - switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: - if (x > BLOCK_START_X + blockOffset && x < blockWidth + BLOCK_START_X + blockOffset && y > BLOCK_START_Y && y < getHeight() - BLOCK_START_Y) { - isToEnd = false; - lastX = x; - } - break; - case MotionEvent.ACTION_MOVE: - if (lastX != 0) { - blockOffset = (int) (x - lastX); - if (blockOffset < 0) { - blockOffset = 0; - } - if (blockOffset + BLOCK_START_X + blockWidth > getWidth()) { - // 超出右边界 - blockOffset = getWidth() - BLOCK_START_X - blockWidth; - if (!isToEnd) { - isToEnd = true; - if (moveToEndListener != null) { - moveToEndListener.moveToEnd(); - } - startBlockBackAnim(); - } - } - invalidate(); - } - break; - case MotionEvent.ACTION_UP: - // 执行滑块回归动画 - if (!isToEnd) { - startBlockBackAnim(); - } - break; - default: - break; - } - - return true; - } - - private void startBlockBackAnim() { - ObjectAnimator blockBackAnimator = ObjectAnimator.ofInt(this, "blockOffset", blockOffset, 0); - blockBackAnimator.setInterpolator(new DecelerateInterpolator()); - blockBackAnimator.setDuration(1000L * blockOffset / getWidth()); - blockBackAnimator.start(); - lastX = 0; - } - - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - // 画背景 - canvas.drawRoundRect(bgRectF, (float) getHeight() / 2.0f, (float) getHeight() / 2.0f, bgPaint); - // 画文字 - gradientMatrix.setTranslate(matrixTranslate, 0); - textGradient.setLocalMatrix(gradientMatrix); - canvas.save(); - canvas.drawText(blockText, (float) (blockWidth + BLOCK_START_X + textMarginLeft), (float) textOffset, textPaint); - canvas.restore(); - if (bmBlock != null) { - if(bmBlock.getByteCount()>=5*1024*1024){ - OchChainLogManager.writeChainLog("崩溃兜底策略", - "图片大小监听"+ ConvertUtils.byte2FitMemorySize(bmBlock.getByteCount()),true,OchChainLogManager.EVENT_KEY_INFE_ERROR); - bmBlock.recycle(); - bmBlock = null; - blockWidth = 0; - decodeImage(); - }else { - // 画滑块 - canvas.drawBitmap(bmBlock, (float) (BLOCK_START_X + blockOffset), (float) BLOCK_START_Y, blockPaint); - CallerLogger.d(TAG,"图片大小监听"+ ConvertUtils.byte2FitMemorySize(bmBlock.getByteCount())); - } - } - - } - - public interface OnSlidePanelMoveToEndListener { - /** - * 滑块滑到了末尾 - */ - void moveToEnd(); - } -} diff --git a/OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml b/OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml deleted file mode 100644 index 15f6897792..0000000000 --- a/OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png deleted file mode 100644 index ed7b293b90..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png deleted file mode 100644 index 170f254cd1..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png deleted file mode 100644 index 186001352c..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png deleted file mode 100644 index be978145dc..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png deleted file mode 100644 index 8a065b66dd..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png deleted file mode 100644 index 4ed57a0e30..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png deleted file mode 100644 index e0bb24c526..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png deleted file mode 100644 index bc9fed952d..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png deleted file mode 100644 index 8732508ded..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png deleted file mode 100644 index bae01408fd..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png deleted file mode 100755 index 3166d20e37..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png deleted file mode 100755 index 09a9c252da..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png deleted file mode 100644 index b32f0693a6..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png deleted file mode 100644 index f21a1081f1..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png deleted file mode 100755 index fc20dca73c..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png deleted file mode 100644 index a720a532ea..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png deleted file mode 100644 index 3c339efde4..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png deleted file mode 100644 index c6717d2518..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png deleted file mode 100644 index cc2b18083d..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png deleted file mode 100644 index 3f05565483..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png deleted file mode 100644 index 370b61de38..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png deleted file mode 100644 index 0114bb4f2b..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png deleted file mode 100644 index 0c8988acb3..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png deleted file mode 100755 index 8acf113151..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png deleted file mode 100755 index e98738b192..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png deleted file mode 100755 index d3e0107c02..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png deleted file mode 100755 index 026c36086f..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png deleted file mode 100755 index 06bebc7013..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png deleted file mode 100755 index f4f9b2bca2..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png deleted file mode 100755 index 22f88301f9..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png deleted file mode 100755 index c0a978fc2b..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png deleted file mode 100755 index ebacf3a11a..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png deleted file mode 100755 index fc20dca73c..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png deleted file mode 100755 index dc4c4f6f0d..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png deleted file mode 100755 index ed3b871338..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png deleted file mode 100755 index d43e34bb26..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png deleted file mode 100644 index 04580a8f0d..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png b/OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png deleted file mode 100644 index 0e61996d3f..0000000000 Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml b/OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml deleted file mode 100644 index e0b90b9c55..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file 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 deleted file mode 100644 index 9c91366aa3..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - 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 deleted file mode 100644 index f0e15d25d2..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml deleted file mode 100644 index d95e931160..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml deleted file mode 100644 index b00fbd8bd6..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml deleted file mode 100644 index ee555aae15..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml deleted file mode 100755 index 3a3dc6a292..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml b/OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml deleted file mode 100644 index 21b39b7e37..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml b/OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml deleted file mode 100644 index 69539ed40f..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml deleted file mode 100644 index 203971340e..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml deleted file mode 100644 index 272e718cce..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml deleted file mode 100644 index e5faafb27b..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml deleted file mode 100644 index ee8088637c..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml deleted file mode 100644 index e2b482ee5f..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml b/OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml deleted file mode 100644 index fe46ef2228..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml b/OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml deleted file mode 100644 index 376e0a472c..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml deleted file mode 100644 index 8b066b0ce8..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml deleted file mode 100644 index e94992d507..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml deleted file mode 100644 index b34021d977..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml deleted file mode 100644 index 917f3932fe..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml b/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml deleted file mode 100644 index 2ef90e60f7..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml b/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml deleted file mode 100644 index dea7a88bb6..0000000000 --- a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml b/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml deleted file mode 100644 index c1a8d6958d..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file 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 deleted file mode 100644 index bd33539f86..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_jl_bizmap_map.xml b/OCH/bus/driver/src/main/res/layout/bus_jl_bizmap_map.xml deleted file mode 100644 index ffb955a311..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_jl_bizmap_map.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_m2_bizmap_map.xml b/OCH/bus/driver/src/main/res/layout/bus_m2_bizmap_map.xml deleted file mode 100644 index 625b786557..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_m2_bizmap_map.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_no_data_common_view.xml b/OCH/bus/driver/src/main/res/layout/bus_no_data_common_view.xml deleted file mode 100644 index e27a976e9b..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_no_data_common_view.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_no_line_view.xml b/OCH/bus/driver/src/main/res/layout/bus_no_line_view.xml deleted file mode 100644 index 6d81e77fc7..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_no_line_view.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_stations_common_item.xml b/OCH/bus/driver/src/main/res/layout/bus_stations_common_item.xml deleted file mode 100644 index 28078230ca..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_stations_common_item.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_switch_line.xml b/OCH/bus/driver/src/main/res/layout/bus_switch_line.xml deleted file mode 100644 index 703490ed83..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_switch_line.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_item.xml b/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_item.xml deleted file mode 100644 index ec0a05030b..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_item.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_task_item.xml b/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_task_item.xml deleted file mode 100644 index 07cb6d0eec..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_task_item.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/layout/bus_test_bar_view.xml b/OCH/bus/driver/src/main/res/layout/bus_test_bar_view.xml deleted file mode 100644 index a64bdaa4d9..0000000000 --- a/OCH/bus/driver/src/main/res/layout/bus_test_bar_view.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/raw/bus_away_passengers.json b/OCH/bus/driver/src/main/res/raw/bus_away_passengers.json deleted file mode 100644 index e76436f2dc..0000000000 --- a/OCH/bus/driver/src/main/res/raw/bus_away_passengers.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "code": 0, - "msg": "", - "detailMsg": "", - "result": { - "info": [ - { - "_id": "cee57b3ae07c4486b0357319368487d7", - "orderNo": "XB20210422000002", - "orderType": 10, - "userName": "董QAD", - "userPhone": "15631204018", - "startStationId": 1, - "startStation": "万集东门站", - "startStationCoordinate": [ - 116.7354579447, - 40.1974932972 - ], - "endStationId": 2, - "endStation": "顺密路口站", - "endStationCoordinate": [ - 116.721520973, - 40.1940181096 - ], - "orderDispatchType": 7, - "carNum": "京NB010", - "sn": "F803EB2046PZD00149", - "orderStartTime": "2021-04-22 16:31:58", - "orderEndTime": "2021-04-26 10:38:13", - "arrivedStartStationTime": null, - "arrivedEndStationTime": null, - "cityCode": "010", - "areaCode": "1001", - "createTime": "2021-04-22 16:31:58", - "updateTime": "2021-04-26 10:38:13", - "personNum": 1, - "travelDistance": 1.2, - "vehicleColour": null, - "lastBrandName": null, - "headImgUrl": null - }, - { - "_id": "ce69b1bcfb9840c6a4563bc6ef947caf", - "orderNo": "XB20210426000000", - "orderType": 10, - "userName": "董QAD", - "userPhone": "15631204018", - "startStationId": 1, - "startStation": "万集东门站", - "startStationCoordinate": [ - 116.7354579447, - 40.1974932972 - ], - "endStationId": 2, - "endStation": "顺密路口站", - "endStationCoordinate": [ - 116.721520973, - 40.1940181096 - ], - "orderDispatchType": 7, - "carNum": "京NB010", - "sn": "F803EB2046PZD00149", - "orderStartTime": "2021-04-26 10:38:48", - "orderEndTime": "2021-04-26 10:46:16", - "arrivedStartStationTime": null, - "arrivedEndStationTime": null, - "cityCode": "010", - "areaCode": "1001", - "createTime": "2021-04-26 10:38:48", - "updateTime": "2021-04-26 10:46:16", - "personNum": 1, - "travelDistance": 1.2, - "vehicleColour": null, - "lastBrandName": null, - "headImgUrl": null - }, - { - "_id": "cae07b56f41c4e0fa60ab3543ffc258e", - "orderNo": "XB20210426000001", - "orderType": 10, - "userName": "董QAD", - "userPhone": "15631204018", - "startStationId": 1, - "startStation": "万集东门站", - "startStationCoordinate": [ - 116.7354579447, - 40.1974932972 - ], - "endStationId": 2, - "endStation": "顺密路口站", - "endStationCoordinate": [ - 116.721520973, - 40.1940181096 - ], - "orderDispatchType": 7, - "carNum": "京NB010", - "sn": "F803EB2046PZD00149", - "orderStartTime": "2021-04-26 10:47:05", - "orderEndTime": "2021-04-26 10:48:07", - "arrivedStartStationTime": null, - "arrivedEndStationTime": null, - "cityCode": "010", - "areaCode": "1001", - "createTime": "2021-04-26 10:47:05", - "updateTime": "2021-04-26 10:48:07", - "personNum": 1, - "travelDistance": 1.2, - "vehicleColour": null, - "lastBrandName": null, - "headImgUrl": null - }, - { - "_id": "62bc84afbc434d01b644c74ee406e772", - "orderNo": "XB20210426000002", - "orderType": 10, - "userName": "董QAD", - "userPhone": "15631204018", - "startStationId": 1, - "startStation": "万集东门站", - "startStationCoordinate": [ - 116.7354579447, - 40.1974932972 - ], - "endStationId": 2, - "endStation": "顺密路口站", - "endStationCoordinate": [ - 116.721520973, - 40.1940181096 - ], - "orderDispatchType": 7, - "carNum": "京NB010", - "sn": "F803EB2046PZD00149", - "orderStartTime": "2021-04-26 10:48:22", - "orderEndTime": "2021-04-26 10:50:32", - "arrivedStartStationTime": null, - "arrivedEndStationTime": null, - "cityCode": "010", - "areaCode": "1001", - "createTime": "2021-04-26 10:48:22", - "updateTime": "2021-04-26 10:50:32", - "personNum": 1, - "travelDistance": 1.2, - "vehicleColour": null, - "lastBrandName": null, - "headImgUrl": null - }, - { - "_id": "fa3214c7a6ec411bb3d6edbc98907423", - "orderNo": "XB20210426000009", - "orderType": 10, - "userName": "董QAD", - "userPhone": "15631204018", - "startStationId": 1, - "startStation": "万集东门站", - "startStationCoordinate": [ - 116.7354579447, - 40.1974932972 - ], - "endStationId": 2, - "endStation": "顺密路口站", - "endStationCoordinate": [ - 116.721520973, - 40.1940181096 - ], - "orderDispatchType": 7, - "carNum": "京NB010", - "sn": "F803EB2046PZD00149", - "orderStartTime": "2021-04-26 19:26:05", - "orderEndTime": "2021-04-27 14:35:50", - "arrivedStartStationTime": null, - "arrivedEndStationTime": null, - "cityCode": "010", - "areaCode": "1001", - "createTime": "2021-04-26 19:26:05", - "updateTime": "2021-04-27 14:35:50", - "personNum": 1, - "travelDistance": 1.2, - "vehicleColour": null, - "lastBrandName": null, - "headImgUrl": null - } - ] - } -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/raw/bus_di.mp3 b/OCH/bus/driver/src/main/res/raw/bus_di.mp3 deleted file mode 100644 index 15b31ed247..0000000000 Binary files a/OCH/bus/driver/src/main/res/raw/bus_di.mp3 and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/raw/bus_order_1.json b/OCH/bus/driver/src/main/res/raw/bus_order_1.json deleted file mode 100644 index 050b67447d..0000000000 --- a/OCH/bus/driver/src/main/res/raw/bus_order_1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "_id": "62bc84afbc434d01b644c74ee406e772", - "areaCode": "1001", - "carNum": "京NB010", - "cityCode": "010", - "createTime": "Apr 26, 2021 10:48:22 AM", - "endStation": "顺密路口站", - "endStationCoordinate": [ - 116.721520973, - 40.1940181096 - ], - "endStationId": 2, - "orderDispatchType": 1, - "orderNo": "XB20210426000002", - "orderStartTime": "Apr 26, 2021 10:48:22 AM", - "orderType": 10, - "sn": "F803EB2046PZD00149", - "startStation": "万集东门站", - "startStationCoordinate": [ - 116.7354579447, - 40.1974932972 - ], - "startStationId": 1, - "travelDistance": 1.2, - "updateTime": "Apr 26, 2021 10:48:23 AM", - "userName": "董QAD", - "userPhone": "15631204018" -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/raw/bus_station_list1.json b/OCH/bus/driver/src/main/res/raw/bus_station_list1.json deleted file mode 100644 index c74daa1174..0000000000 --- a/OCH/bus/driver/src/main/res/raw/bus_station_list1.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "code": 0, - "msg": "", - "detailMsg": "", - "result": { - "site": [ - { - "lineId": 1.0, - "siteId": 1.0, - "siteName": "万集东门站", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.7354579447, - 40.1974932972 - ], - "lon": 116.7354579447, - "lat": 40.1974932972, - "siteDesc": "万集东门站", - "siteState": 1.0, - "isCurrentSite": 1.0, - "siteColor": 1.0, - "peoples": "0", - "ifStop": 1.0 - }, - { - "lineId": 1.0, - "siteId": 2.0, - "siteName": "市政府前街18号", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.729134342, - 40.1953113732 - ], - "lon": 116.729134342, - "lat": 40.1953113732, - "siteDesc": "市政府前街18号", - "siteState": 1.0, - "isCurrentSite": 3.0, - "siteColor": 2.0, - "peoples": "0", - "ifStop": 0.0 - }, - { - "lineId": 1.0, - "siteId": 3.0, - "siteName": "顺密路口站", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.721520973, - 40.1940181096 - ], - "lon": 116.721520973, - "lat": 40.1940181096, - "siteDesc": "顺密路口站", - "siteState": 1.0, - "isCurrentSite": 0.0, - "siteColor": 0.0, - "peoples": "0", - "ifStop": 1.0 - } - ] - } -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/raw/bus_station_list2.json b/OCH/bus/driver/src/main/res/raw/bus_station_list2.json deleted file mode 100644 index 48d6782cc3..0000000000 --- a/OCH/bus/driver/src/main/res/raw/bus_station_list2.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "code": 0, - "msg": "", - "detailMsg": "", - "result": { - "site": [ - { - "lineId": 1.0, - "siteId": 1.0, - "siteName": "万集东门站", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.7354579447, - 40.1974932972 - ], - "lon": 116.7354579447, - "lat": 40.1974932972, - "siteDesc": "万集东门站", - "siteState": 1.0, - "isCurrentSite": 0.0, - "siteColor": 0.0, - "peoples": "0", - "ifStop": 1.0 - }, - { - "lineId": 1.0, - "siteId": 1.0, - "siteName": "万集东门站", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.7374429112, - 40.2023987087 - ], - "lon": 116.7374429112, - "lat": 40.2023987087, - "siteDesc": "万集东门站", - "siteState": 1.0, - "isCurrentSite": 0.0, - "siteColor": 0.0, - "peoples": "0", - "ifStop": 1.0 - }, - { - "lineId": 1.0, - "siteId": 2.0, - "siteName": "顺密路口站", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.721520973, - 40.1940181096 - ], - "lon": 116.721520973, - "lat": 40.1940181096, - "siteDesc": "顺密路口站", - "siteState": 1.0, - "isCurrentSite": 1.0, - "siteColor": 1.0, - "peoples": "0", - "ifStop": 1.0 - }, - { - "lineId": 1.0, - "siteId": 2.0, - "siteName": "顺密路口站", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.723146, - 40.179637 - ], - "lon": 116.723146, - "lat": 40.179637, - "siteDesc": "顺密路口站", - "siteState": 1.0, - "isCurrentSite": 1.0, - "siteColor": 1.0, - "peoples": "0", - "ifStop": 1.0 - }, - { - "lineId": 2.0, - "siteId": 2.0, - "siteName": "顺密路口站", - "cityCode": "010", - "areaCode": "1001", - "areaName": "顺义区", - "currentLocation": [ - 116.738835502, - 40.2023958306 - ], - "lon": 116.738835502, - "lat": 40.2023958306, - "siteDesc": "顺密路口站", - "siteState": 1.0, - "isCurrentSite": 1.0, - "siteColor": 1.0, - "peoples": "0", - "ifStop": 1.0 - } - ] - } -} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/raw/end_marker.nt3d b/OCH/bus/driver/src/main/res/raw/end_marker.nt3d deleted file mode 100644 index be6057c547..0000000000 Binary files a/OCH/bus/driver/src/main/res/raw/end_marker.nt3d and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/raw/star_marker.nt3d b/OCH/bus/driver/src/main/res/raw/star_marker.nt3d deleted file mode 100644 index c6e546fc31..0000000000 Binary files a/OCH/bus/driver/src/main/res/raw/star_marker.nt3d and /dev/null differ diff --git a/OCH/bus/driver/src/main/res/values/attrs.xml b/OCH/bus/driver/src/main/res/values/attrs.xml deleted file mode 100644 index 396db92f74..0000000000 --- a/OCH/bus/driver/src/main/res/values/attrs.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/values/colors.xml b/OCH/bus/driver/src/main/res/values/colors.xml deleted file mode 100644 index 2851302580..0000000000 --- a/OCH/bus/driver/src/main/res/values/colors.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - #FF1FA7FF - #FFFFFFFF - #FFFFFFFF - #FF51649D - #7F8299EB - - #51649D - #427d8e - #1FA7FF - #3FC281 - #427d8e - #3FC281 - - #FFFFFF - #99FFFFFF - #FF52BBFF - - #BF30334C - #fff - #f1f1f1 - - #7DE261 - #FF2B2B - #E3BC59 - #FFF - #256BFF - #FFFFFF - - #DB3137 - #3E77F6 - #323C6F - - #2966EC - #F7151D41 - - #19FFFFFF - #FFFFFF - - #FFFFA28B - #FFDA1100 - #FF60FFD3 - #FF006D43 - #FFFFE198 - #FFFF9B00 - #59FFFFFF - - #CCB9C3E9 - #4Dffffff - - #8E9DD4 - #2B6EFF - #00FFF8 - - #FFFFFF - #4DFFFFFF - #FFFFFF - #323C6F - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/values/dimens.xml b/OCH/bus/driver/src/main/res/values/dimens.xml deleted file mode 100644 index fd1ec0cd92..0000000000 --- a/OCH/bus/driver/src/main/res/values/dimens.xml +++ /dev/null @@ -1,165 +0,0 @@ - - - - 460dp - 30dp - - 110dp - 40dp - 320dp - 20dp - 40dp - 320dp - 460dp - 70dp - 460dp - 130dp - 30dp - - #FFFFFF - #4DFFFFFF - #FFFFFF - #323C6F - 10dp - 20dp - 200dp - 52dp - 65dp - 20dp - 50dp - 20dp - 38dp - 33dp - 368dp - 76dp - 60dp - 276dp - 112dp - 22dp - 36dp - 50dp - 822dp - - 46dp - 700dp - 120dp - 560dp - 116dp - 50dp - - 225dp - 154dp - 60dp - 40dp - 23dp - 210dp - 120dp - 15dp - 17dp - 154dp - 130dp - 60dp - - 27dp - - - 40dp - 32dp - 13dp - 12dp - 350dp - - 30dp - 618dp - 754dp - - 92dp - - 112dp - 112dp - - - - - - 300dp - 348dp - 211dp - 276dp - - - 220dp - 98dp - 159dp - - 32dp - 20dp - 40dp - 42dp - - 15dp - - 20dp - 36dp - 28dp - 36dp - - 3dp - 3dp - 17dp - 17dp - - - 300dp - 270dp - 30dp - 24dp - 24dp - 1dp - 30dp - 23dp - 30dp - 146dp - 20dp - 23dp - 30dp - 23dp - 26dp - 34dp - 20dp - 80dp - 3dp - 34dp - 20dp - 28dp - 27dp - - - 25.6dp - 20dp - 20dp - 64dp - 16dp - - 40dp - 40dp - 46dp - 24dp - - 530dp - 492dp - - 20dp - 20dp - 70dp - 130dp - 93dp - 150dp - 70dp - - 24dp - 616dp - 180dp - - - \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/values/strings.xml b/OCH/bus/driver/src/main/res/values/strings.xml deleted file mode 100644 index 331daed88b..0000000000 --- a/OCH/bus/driver/src/main/res/values/strings.xml +++ /dev/null @@ -1,61 +0,0 @@ - - 近距视角 - 远距视角 - 启动中… - 启动成功 - 启动失败 - 自动驾驶 - 任务列表 - 暂无任务 - 选择时间 - 路线: - 起点: - 终点: - 确认 - 选择任务 - 结束任务 - 自动驾驶状态中,不可切换或结束路线 - 当前行程未完成,不可切换路线 - 当前车辆无路线\n请联系运营人员绑定 - 起点: - 终点: - 往%1$s方向 - 更换任务成功 - 更换任务失败 - - 起点: - 终点: - 当前站点: - 下一站: - 自动驾驶状态为0不可用 - 进站 - - - 班次: - - 提示 - 您确认要结束任务吗? - 确认 - 取消 - - 暂无任务 - - 距离发车时间还有%1$s分钟 - - 平行驾驶 - - - 已到达%1$s,带好随身物品,下车请注意安全。 - We are arriving at %1$s ,get off with your belongings - %1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요 - - 车辆起步,请扶稳坐好,前方到站是%1$s,请下车的乘客做好准备。 - The next station is %1$s ,please get ready for your arrival - 전방에서 역에 도착하는 %1$s ,차에서 내리는 승객은 준비하세요 - - 感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。 - Thank you for experiencing the self-driving minibus. See you next time - 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 - - - diff --git a/OCH/bus/driver/src/main/res/values/style.xml b/OCH/bus/driver/src/main/res/values/style.xml deleted file mode 100644 index 36d7ef0d93..0000000000 --- a/OCH/bus/driver/src/main/res/values/style.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - diff --git a/OCH/bus/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml b/OCH/bus/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml deleted file mode 100644 index 587a6eccbe..0000000000 --- a/OCH/bus/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/.gitignore b/OCH/shuttle/driver/.gitignore deleted file mode 100644 index 42afabfd2a..0000000000 --- a/OCH/shuttle/driver/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/OCH/shuttle/driver/build.gradle b/OCH/shuttle/driver/build.gradle deleted file mode 100644 index 9d0078f8e6..0000000000 --- a/OCH/shuttle/driver/build.gradle +++ /dev/null @@ -1,69 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'kotlin-kapt' - -android { - compileSdkVersion rootProject.ext.android.compileSdkVersion - // buildToolsVersion rootProject.ext.android.buildToolsVersion - defaultConfig { - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion - versionCode Integer.valueOf(VERSION_CODE) - versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") - - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles "consumer-rules.pro" - - kapt { - useBuildCache = false - arguments { - arg("AROUTER_MODULE_NAME", "shuttle"+project.getName()) - } - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - lintOptions { - abortOnError false - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation rootProject.ext.dependencies.kotlinstdlib - implementation rootProject.ext.dependencies.androidxappcompat - implementation rootProject.ext.dependencies.arouter - kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.androidxconstraintlayout - implementation rootProject.ext.dependencies.amapnavi3dmap - - implementation rootProject.ext.dependencies.rxjava - implementation rootProject.ext.dependencies.rxandroid - implementation rootProject.ext.dependencies.androidxrecyclerview - compileOnly rootProject.ext.dependencies.recyclerviewadapterhelper - - implementation project(":OCH:common:common") - implementation project(":OCH:common:data") - compileOnly project(":libraries:mogo-map") - -} - -apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() \ No newline at end of file diff --git a/OCH/shuttle/driver/consumer-rules.pro b/OCH/shuttle/driver/consumer-rules.pro deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/OCH/shuttle/driver/gradle.properties b/OCH/shuttle/driver/gradle.properties deleted file mode 100644 index dd5c44ee62..0000000000 --- a/OCH/shuttle/driver/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -GROUP=com.mogo.och -POM_ARTIFACT_ID=och-bus -VERSION_CODE=1 diff --git a/OCH/shuttle/driver/proguard-rules.pro b/OCH/shuttle/driver/proguard-rules.pro deleted file mode 100644 index 481bb43481..0000000000 --- a/OCH/shuttle/driver/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# 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/OCH/shuttle/driver/src/main/AndroidManifest.xml b/OCH/shuttle/driver/src/main/AndroidManifest.xml deleted file mode 100644 index b24b4d5534..0000000000 --- a/OCH/shuttle/driver/src/main/AndroidManifest.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - \ No newline at end of file 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 deleted file mode 100644 index 183b989fea..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ShuttleDriverProvider.kt +++ /dev/null @@ -1,42 +0,0 @@ -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 -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics -import com.mogo.och.shuttle.util.ShuttleAnalyticsEventKey - -/** - * 网约车小巴业务实现入口 - * - * @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() - } - OchAutopilotAnalytics.ochEventKey = ShuttleAnalyticsEventKey.getInstance() - return busFragment!! - } - - override fun resetFragment() { - OchAutopilotAnalytics.ochEventKey = null - busFragment = null - } - -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java deleted file mode 100644 index 7854aa0e07..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.commons.storage.SharedPrefsMgr; -import com.mogo.och.common.module.utils.DateTimeUtil; - -/** - * 中止/结束任务请求 - */ -public class BusCloseTaskRequest { - - private String sn; - private int taskId; - private long writeVersion; - public BusCloseTaskRequest(int taskId) { - this.sn = SharedPrefsMgr.getInstance().getSn(); - this.taskId = taskId; - this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); - } - - public String getSn() { - return sn; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java deleted file mode 100644 index 4a4230ccd6..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.mogo.och.shuttle.bean; - -/** - * @author congtaowang - * @since 2021/3/23 - *

- * 小巴订单 - */ -public class BusOrderBean { - - /** - * orderNo number - * passengerPhone string 下单用户电话 - * startStationId integer 开始站点 - * startStationName string - * endStationId integer 结束站点 - * endStationName string - */ - - private String orderNo; - private String passengerPhone; - private int startStationId;//乘客上车点 - private String startStationName; - private String endStationName; - private int endStationId;//乘客下车点 - - public void setOrderNo(String orderNo) { - this.orderNo = orderNo; - } - - public void setPassengerPhone(String passengerPhone) { - this.passengerPhone = passengerPhone; - } - - public void setStartStationId(int startStationId) { - this.startStationId = startStationId; - } - - public void setStartStationName(String startStationName) { - this.startStationName = startStationName; - } - - public void setEndStationName(String endStationName) { - this.endStationName = endStationName; - } - - public void setEndStationId(int endStationId) { - this.endStationId = endStationId; - } - - public String getOrderNo() { - return orderNo; - } - - public String getPassengerPhone() { - return passengerPhone; - } - - public int getStartStationId() { - return startStationId; - } - - public String getStartStationName() { - return startStationName; - } - - public String getEndStationName() { - return endStationName; - } - - public int getEndStationId() { - return endStationId; - } - - @Override - public String toString() { - return "BusOrderBean{" + - "orderNo=" + orderNo + - ", passengerPhone='" + passengerPhone + '\'' + - ", startStationId=" + startStationId + - ", startStationName='" + startStationName + '\'' + - ", endStationName='" + endStationName + '\'' + - ", endStationId=" + endStationId + - '}'; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java deleted file mode 100644 index 03a2b23b96..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2021/10/19 - */ -public class BusOrdersResponse extends BaseData { - public Result data; - public static class Result{ - public List orders; - } - - @Override - public String toString() { - return "BusOrdersResponse{" + - "data=" + data + - '}'; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java deleted file mode 100644 index 0f3cd777ea..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.commons.storage.SharedPrefsMgr; - -/** - * @author congtaowang - * @since 2021/3/22 - * - * 根据车机行驶线路站点信息 - */ -public class BusQueryLineStationsRequest { - - private String sn; - public BusQueryLineStationsRequest() { - this.sn = SharedPrefsMgr.getInstance().getSn(); - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java deleted file mode 100644 index fbf8f22c3b..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public class BusQueryLineTaskResponse extends BaseData { - - public List data; - - public static class Result { - public int id; - public long taskStartTime; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java deleted file mode 100644 index a5ad54daa8..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public class BusQueryLinesResponse extends BaseData { - public List data; - - public static class Result { - - public int lineId;//线路id - public String name;//线路名字 - public int choose; // 1:绑定 2:未被绑定 - public String startSiteName;//始发站名称 - public String endSiteName;//终点名称 - - public boolean open;//true 打开状态 false - public boolean haveTask; - - public List taskList; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java deleted file mode 100644 index ef6cdbda93..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.commons.storage.SharedPrefsMgr; -import com.mogo.och.common.module.utils.DateTimeUtil; - -/** - * @author: wangmingjun - * @date: 2021/10/18 - */ -public class BusResetDrivingLineRequest { - public String sn; - public int taskId; //切换到的线路id - public long writeVersion; //更新时间戳 - - public BusResetDrivingLineRequest(int taskId) { - this.sn = SharedPrefsMgr.getInstance().getSn(); - this.taskId = taskId; - this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java deleted file mode 100644 index 667135077b..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.data.bean.BusRoutesResult; - -/** - * 网约车小巴路线接口请求响应结果 - * - * @author tongchenfei - */ -public class BusRoutesResponse extends BaseData { - private BusRoutesResult data; - - public BusRoutesResult getResult() { - return data; - } - - public void setResult(BusRoutesResult data) { - this.data = data; - } - - @Override - public String toString() { - return "BusRoutesResponse{" + - "data=" + data + - '}'; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java deleted file mode 100644 index 13ba2e4f3c..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.commons.storage.SharedPrefsMgr; - -/** - * @author congtaowang - * @since 2021/3/22 - * - * 小巴车运营状态请求参数 - */ -public class BusUpdateSiteStatusRequest { - - public String sn; - public int taskId; - public int seq;//站点序号 - public int siteId;//站点id - public long writeVersion; //更新时间戳 - - public BusUpdateSiteStatusRequest(int taskId,int siteId,int seq, long writeVersion) { - this.sn = SharedPrefsMgr.getInstance().getSn(); - this.seq = seq; - this.siteId = siteId; - this.taskId = taskId; - this.writeVersion = writeVersion; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java deleted file mode 100644 index 8c13428bff..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.commons.storage.SharedPrefsMgr; - -/** - * 查询下车乘客请求参数 - * - * @author tongchenfei - */ -public class QueryLeaveAwayPassengersRequest { - private String sn; - private int seq; //站点在线路中的序号 - private int siteId; //站点id - - public QueryLeaveAwayPassengersRequest(int seq, int siteId) { - this.sn = SharedPrefsMgr.getInstance().getSn(); - this.seq = seq; - this.siteId = siteId; - } - - public void setSeq(int seq) { - this.seq = seq; - } - - public void setSiteId(int siteId) { - this.siteId = siteId; - } - - public int getSeq() { - return seq; - } - - public int getSiteId() { - return siteId; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java deleted file mode 100644 index b11ba9329b..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -public -/** - * @author congtaowang - * @since 2021/3/26 - * - * 到站查询下车乘客 - */ -class QueryLeaveAwayPassengersResponse extends BaseData { - - public Result data; - - public static class Result { - - public List< LeaveAwayPassenger > orders; - } - - public static class LeaveAwayPassenger { - /** - * orderNo: 订单no - * orderStatus: 订单状态 - * orderType:订单类型:0及时,1预约 - * bookingTime:预计用车时间 - * businessType:订单运营类型 9:taxi,10:bus - * startSiteId: 起点站点id - * userPhone: 乘客联系方式 - * startSitePoint:开始站点坐标 - * startSiteAddr:开始地址 - * endSiteId:结束站点id - * endSitePoint:结束站点坐标 - * carNumber:车牌号 - * createTime: 创建时间 - * startTime:开始时间 - * startSiteGcjPoint:高精坐标 - * endSiteGcjPoint: - */ -//todo 目前是需要乘客电话来通知乘客下车 目前后台没有乘客信息userPhone - public String orderNo; - public int orderStatus; - public int orderType; - public long bookingTime; - public int businessType; - public int startSiteId; - public String passengerPhone; - public List startSitePoint; - public String startSiteAddr; - public int endSiteId; - public List endSitePoint; - public String carNumber; - public long createTime; - public long startTime; - public List< Double > startSiteGcjPoint; - public List< Double > endSiteGcjPoint; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java deleted file mode 100644 index 931a6e0a42..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import com.mogo.eagle.core.data.BaseData; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public class WriteOffCountResponse extends BaseData { - - public Integer data; - -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java deleted file mode 100644 index cdedc26acb..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mogo.och.shuttle.bean; - -import java.io.Serializable; - -/** - * @author: wangmingjun - * @date: 2022/9/23 - */ -public class WriteOffPassenger implements Serializable { - public String phone; - public String orderNo; - public String ticketName; - public int passengerSize; - public long writeOffTime; - - @Override - public String toString() { - return "WriteOffPassenger{" + - "phone='" + phone + '\'' + - ", orderNo='" + orderNo + '\'' + - ", ticketName='" + ticketName + '\'' + - ", passengerSize=" + passengerSize + - ", writeOffTime=" + writeOffTime + - '}'; - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java deleted file mode 100644 index 8a59bcb206..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.och.shuttle.callback; - -/** - * Created on 2021/9/8 - * - * Model->Presenter回调:ADAS相关(自动驾驶状态回调,到达终点等等) - */ -public interface IBusADASStatusCallback { - //自驾返回失败 - void onStartAdasFailure(); -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java deleted file mode 100644 index 2e3a71fff3..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.och.shuttle.callback; - -import com.mogo.eagle.core.data.map.MogoLocation; - -/** - * Created on 2021/9/10 - * - * Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等) - */ -public interface IBusControllerStatusCallback { - // 自车定位 - void onCarLocationChanged(MogoLocation location); - //开始开启自动驾驶 - void startOpenAutopilot(); -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java deleted file mode 100644 index f52a9c7454..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mogo.och.shuttle.callback; - -import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse; -import com.mogo.och.shuttle.bean.BusQueryLinesResponse; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public interface IBusLinesCallback { - void onBusLinesChange(BusQueryLinesResponse lines); - void onChangeLineIdSuccess(); - void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java deleted file mode 100644 index 14e30a34fa..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.shuttle.callback; - -import com.mogo.och.data.bean.BusStationBean; - -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2021/10/22 - */ -public interface IRefreshBusStationsCallback { - void updateBusTaskStatus(String lineName,String lintTime, - List stationList, - int arrivingOrArrivedIndex, - boolean isArrived); - - /** - * 结束清理一遍、选择任务后清理一遍 - */ - void clearBusStationsMarkers(); - - void updateEmptyUi(); -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java deleted file mode 100644 index 6acad8a540..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.shuttle.callback; - -/** - * @author: wangmingjun - * @date: 2021/10/22 - */ -public interface ISlidePannelHideCallback { - void hideSlidePanel(); -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt deleted file mode 100644 index 3c2f380d67..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.mogo.och.shuttle.constant - -import com.mogo.commons.debug.DebugConfig - -/** - * Created on 2021/12/6 - */ -class BusConst { - companion object { - // OCH arouter 路由path - - // 测试用的广播 - const val BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY = "sceneType" - // 无状态 - const val STATION_STATUS_IDLE = 0 - // 已过站(历史站) - const val STATION_STATUS_LEAVING = 1 - // 到站(当前站) - const val STATION_STATUS_STOPPED = 2 - // 未到站(未到站) - const val STATION_STATUS_ARRIVING = 3 - - // 上报心跳轮询ms - const val LOOP_PERIOD_60S = 60 * 1000L - // 开始服务启动自动驾驶等待时间(埋点上传) - const val LOOP_PERIOD_15S = 15 * 1000L - const val LOOP_PERIOD_1S = 1 * 1000L - const val LOOP_DELAY = 100L - - // 下发给MEC轨迹信息间隔时间 10秒 - const val LOOP_PERIOD_10S = 10 * 1000L - // 尝试下发给MEC轨迹最多10次 - const val LOOP_SEND_TRAJ_TIMES = 10 - - //起点UUID - const val BUS_START_MAP_MAKER = "bus_start_map_maker"; - //终点UUID - const val BUS_END_MAP_MAKER = "bus_end_map_maker"; - - - /** - * 订单起终点Marker类型 - */ - const val TYPE_MARKER_BUS_ORDER = "TYPE_MARKER_BUS_ORDER" - - const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L - - //围栏到站 暂定10米 - const val ARRIVE_AT_END_STATION_DISTANCE = 10 - - // 轮询 - const val LOOP_PASSENGER_5S = 5 * 1000L - const val LOOP_PASSENGER_2S = 2 * 1000L - const val LOOP_PASSENGER_1S = 1 * 1000L - const val LOOP_DELAY_500 = 500L - - const val DELAY_10S = 10 * 1000L - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java deleted file mode 100644 index f7f7cd1c84..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java +++ /dev/null @@ -1,534 +0,0 @@ -package com.mogo.och.shuttle.fragment; - -import static com.mogo.och.shuttle.constant.BusConst.TIMER_START_AUTOPILOT_INTERVAL; - -import android.animation.ObjectAnimator; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.animation.LinearInterpolator; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.RelativeLayout; -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; -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -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; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.MogoMap; -import com.mogo.map.uicontroller.IMogoMapUIController; -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.shuttle.model.OrderModel; -import com.mogo.och.shuttle.view.SlidePanelView; -import com.mogo.och.common.module.utils.SoundPoolHelper; - -import org.greenrobot.eventbus.EventBus; -/** - * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况 - *

- * 部分业务放在了此处处理 - * - * @author tongchenfei - */ -public abstract class BaseShuttleTabFragment> extends MvpFragment{ - - private static final String TAG = "BaseBusTabFragment"; - - protected SlidePanelView slidePanelView; - private RelativeLayout ctvAutopilotStatus; - private ImageView ctvAutopilotStatusIv; - private TextView ctvAutopilotStatusTv; - protected TextView tvArrived; - private FrameLayout flStationPanelContainer; - private BizMapView mapBizView; - private Group groupTestPanel; - - protected SmallMapView smallMapView; - - private ObjectAnimator autopilotLoadingAnimator; - - public boolean isAnimateRunning = false; - - /** - * 滑动按钮触发的事件 - */ - private final SlidePanelView.OnSlidePanelMoveToEndListener onSlideToEndListener = () -> { - // 此处做一个代理,处理一下共有情况 - if (getSlidePanelOnEndListener() != null) { - getSlidePanelOnEndListener().moveToEnd(); - } - }; - - @Override - protected int getLayoutId() { - return R.layout.shuttle_base_fragment; - } - - @Override - protected void initViews() { - mapBizView = findViewById(R.id.mapBizView); - groupTestPanel = findViewById(R.id.groupTestPanel); - slidePanelView = findViewById(R.id.module_mogo_och_slide_panel); - ctvAutopilotStatus = findViewById(R.id.module_mogo_och_autopilot_status); - ctvAutopilotStatusIv = findViewById(R.id.bus_autopilot_btn_iv); - ctvAutopilotStatusTv = findViewById(R.id.bus_autopolot_btn_tv); - flStationPanelContainer = findViewById(R.id.module_mogo_och_station_panel_container); - - tvArrived = findViewById(R.id.module_mogo_och_arrived_tv); - - 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); - - updateSwitchMapIcon(); - - initListener(); - setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), - CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() { - - @Override - public void onClickImpl(View v) { - restartAutopilot(); - } - }); - - // 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接 - findViewById(R.id.btnAutopilotDisable).setOnClickListener(view -> - debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) - ); - - // 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态 - findViewById(R.id.btnAutopilotEnable).setOnClickListener(view -> - debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) - ); - - // 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人 - findViewById(R.id.btnAutopilotRunning).setOnClickListener(view -> - debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) - ); - - findViewById(R.id.btnAutopilotPingxing).setOnClickListener(view -> - debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) - ); - - // 模拟 自动驾驶网约车回调数据 - findViewById(R.id.btnAutopilotArrive).setOnClickListener(view -> - debugArrivedStation() - ); - - tvArrived.setOnClickListener(view -> { - onArriveStation(); - }); - - - smallMapView = findViewById(R.id.smallMapView); - } - - @Override - protected void initViews(Bundle savedInstanceState) { - super.initViews(savedInstanceState); - mapBizView.onCreate(savedInstanceState); - smallMapView.onCreateView(savedInstanceState); - } - - @Override - public void onResume() { - super.onResume(); - mapBizView.onResume(); - smallMapView.onResume(); - } - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container - , @Nullable Bundle savedInstanceState) { - EventBus.getDefault().register(this); - return super.onCreateView(inflater, container, savedInstanceState); - } - - protected abstract void onArriveStation(); - - private void updateSwitchMapIcon() { - - IMogoMapUIController mapUIController = CallerMapUIServiceManager.INSTANCE.getMapUIController(MogoMap.DEFAULT); - if(mapUIController!=null){ - if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - mapUIController.changeCurrentIcon(R.raw.m2); - HdMapBuildConfig.currentCarVrIconRes = R.raw.m2; - }else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { - mapUIController.changeCurrentIcon(R.raw.xiaoba); - HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaoba; - } - } - } - - @Override - public void onSaveInstanceState(@NonNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBizView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBizView.onLowMemory(); - } - - @Override - public void onPause() { - super.onPause(); - mapBizView.onPause(); - smallMapView.onPause(); - } - - @Override - public void onDestroyView() { - mapBizView.onDestroy(); - if(smallMapView != null){ - smallMapView.onDestroy(); - } - super.onDestroyView(); - CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG); - EventBus.getDefault().unregister(this); - } - - /** - * 测试到站 - */ - protected abstract void debugArrivedStation(); - - private void initListener() { - - } - - /** - * 展示滑动按钮 - * - * @param text 指定的文字 - */ - public void showSlidePanel(String text) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - slidePanelView.setText(text); - slidePanelView.setVisibility(View.VISIBLE); - } - }, UiThreadHandler.MODE.QUEUE); - setArrivedClikable(false); - } - - /** - * 设置进站按钮状态 - * - * @param isClickable - */ - public void setArrivedClikable(boolean isClickable) { - 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() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - slidePanelView.setVisibility(View.GONE); - } - }, UiThreadHandler.MODE.QUEUE); - } - - public void playDI() { - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(getContext(), R.raw.bus_di); - } - - /** - * 改变自动驾驶状态 - * - * @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中 - */ - 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,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.setClickable(true); - ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_start_fail); - } else { - 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可用 - 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.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.setBackgroundResource(R.drawable.common_autopilot_pxjs); - } - } - } - - public void updateAutopilotStatus(int autopilotStatus) { - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - == autopilotStatus) {//2 running - ctvAutopilotStatusIv.setImageResource(R.drawable.bus_right_autopilot_icon); - 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(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(new Runnable() { - @Override - public void run() { - setAutopilotBtnStatus(autopilotStatus,CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - }, 1000); - } - - private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning,boolean canStartAuto) { - if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - != autopilotStatus) { - // 主动开启自动驾驶中,不为2(为0、1)则继续loading - return; - } - if (isAnimateRunning) { - stopAnimAndUpdateBtnStatus(); - } else { - setAutopilotBtnStatus(autopilotStatus,canStartAuto); - } - - } - - public void stopAnimAndUpdateBtnStatus() { - stopAutopilotAnimation(); - updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState()); - } - - /** - * 隐藏【自动驾驶】按钮 - */ - public void hideAutopilotBiz() { - } - - /** - * 展示【自动驾驶】按钮 - */ - public void showAutopilotBiz() { - } - - public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() { - return null; - } - - /** - * 获取站点面板view,在{@link #initViews()}时候添加到container中 - * - * @return 站点面板view - */ - public abstract int getStationPanelViewId(); - - /** - * 重新开启自动驾驶 - */ - public abstract void restartAutopilot(); - - /** - * 模拟自动驾驶返回状态 - * - * @param status - */ - public abstract void debugAutoPilotStatus(int status); - - /** - * 开启自动驾驶中间动画 - */ - public void startAutopilotAnimation() { - isAnimateRunning = true; - 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) { - autopilotLoadingAnimator = ObjectAnimator.ofFloat(ctvAutopilotStatusIv, "rotation", 0f, 360f); - autopilotLoadingAnimator.setInterpolator(new LinearInterpolator()); - autopilotLoadingAnimator.setRepeatCount(-1);//无限循环 - autopilotLoadingAnimator.setDuration(1000);//设置持续时间 - } - autopilotLoadingAnimator.start();//动画开始 - - startingAutoApilotCountDown(); - - } - - private void startingAutoApilotCountDown() { - //10s 若自动驾驶没有开启,则结束动画 - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { //未启动成功做处理 - if (isAnimateRunning) {// 只判断动画是否在进行,根据自动驾驶当前状态去设置自动驾驶状态 - stopAutopilotAnimation(); - updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState()); - } - } - }, TIMER_START_AUTOPILOT_INTERVAL); - - } - - /** - * 停止自动驾驶中间动画 - */ - protected void stopAutopilotAnimation() { - if (autopilotLoadingAnimator != null) { - autopilotLoadingAnimator.end(); - ctvAutopilotStatusIv.clearAnimation(); - autopilotLoadingAnimator = null; - isAnimateRunning = false; - } - } - -// /** -// * 迈速表实时更新 -// * -// * @param newSpeed -// */ -// 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(); - } - - /** - * bus调试面板打开关闭 - */ - public void debugTestBar() { - if (groupTestPanel.getVisibility() == View.VISIBLE) { - groupTestPanel.setVisibility(View.GONE); - } else { - groupTestPanel.setVisibility(View.VISIBLE); - } - } - - /** - * Bus调试信息:线路、轨迹等信息 - *

- * START - */ - private View busTestBar; - private TextView lineIdTV; - private TextView lineNameTV; - private TextView trajMd5TV; - private TextView stopMd5TV; - private TextView trajMd5DPQPTV; - private TextView stopMd5DPQPTV; - - public void showHideTestBar() { - if (busTestBar == null) { - busTestBar = findViewById(R.id.module_mogo_och_bus_test_bar); - lineIdTV = findViewById(R.id.bus_test_bar_current_line_id); - lineNameTV = findViewById(R.id.bus_test_bar_current_line_name); - trajMd5TV = findViewById(R.id.bus_test_bar_current_traj_md5); - stopMd5TV = findViewById(R.id.bus_test_bar_current_stop_md5); - trajMd5DPQPTV = findViewById(R.id.bus_test_bar_current_traj_md5_dpqp); - stopMd5DPQPTV = findViewById(R.id.bus_test_bar_current_stop_md5_dpqp); - } - - if (busTestBar.getVisibility() == View.VISIBLE) { - busTestBar.setVisibility(View.GONE); - } else { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - lineIdTV.setText("lineId:" + (routesResult == null ? "" : String.valueOf(routesResult.getLineId()))); - lineNameTV.setText("lineName:" + (routesResult == null ? "" : routesResult.getName())); - trajMd5TV.setText("TMd5:" + (routesResult == null ? "" : routesResult.csvFileMd5)); - stopMd5TV.setText("SMd5:" + (routesResult == null ? "" : routesResult.txtFileMd5)); - trajMd5DPQPTV.setText("TMd5DPQP:" + (routesResult == null ? "" : routesResult.csvFileMd5DPQP)); - stopMd5DPQPTV.setText("SMd5DPQP:" + (routesResult == null ? "" : routesResult.txtFileMd5DPQP)); - busTestBar.setVisibility(View.VISIBLE); - } - } - - public void updateBusTestBarInfo() { - if (busTestBar != null && busTestBar.getVisibility() == View.VISIBLE) { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - lineIdTV.setText("lineId:" + (routesResult == null ? "" : String.valueOf(routesResult.getLineId()))); - lineNameTV.setText("lineName:" + (routesResult == null ? "" : routesResult.getName())); - trajMd5TV.setText("TMd5:" + (routesResult == null ? "" : routesResult.csvFileMd5)); - stopMd5TV.setText("SMd5:" + (routesResult == null ? "" : routesResult.txtFileMd5)); - trajMd5DPQPTV.setText("TMd5DPQP:" + (routesResult == null ? "" : routesResult.csvFileMd5DPQP)); - stopMd5DPQPTV.setText("SMd5DPQP:" + (routesResult == null ? "" : routesResult.txtFileMd5DPQP)); - } - } - /** - * END - */ -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java deleted file mode 100644 index 3ff99861e0..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java +++ /dev/null @@ -1,551 +0,0 @@ -package com.mogo.och.shuttle.fragment; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; -import static com.mogo.map.MogoMap.DEFAULT; - -import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.os.Bundle; -import android.view.View; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.constraintlayout.widget.Group; -import androidx.annotation.Nullable; - -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.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -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.common.module.utils.ResourcesUtils; -import com.mogo.och.shuttle.R; -import com.mogo.och.data.bean.BusStationBean; -import com.mogo.och.shuttle.constant.BusConst; -import com.mogo.och.shuttle.presenter.BusPresenter; -import com.mogo.och.shuttle.ui.BusStationCommonItem; -import com.mogo.och.shuttle.ui.BusSwitchLineActivity; -import com.mogo.och.shuttle.view.SlidePanelView; -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.wigets.BindQRCodeDialog; -import com.mogo.och.common.module.wigets.MarqueeTextView; -import com.mogo.och.common.module.wigets.OCHCommitDialog; - -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -import java.util.List; -import java.util.Objects; - -import me.jessyan.autosize.utils.AutoSizeUtils; - - -/** - * 网约车小巴界面 - * - * @author tongchenfei - */ -public class ShuttleFragment extends BaseShuttleTabFragment - implements SlidePanelView.OnSlidePanelMoveToEndListener, View.OnClickListener { - public static final String TAG = "BusFragment"; - - private TextView mSwitchLine; //切换路线 - private MarqueeTextView mLineName; - private TextView mTaskTime; - private Group groupStationsPanel; - private ConstraintLayout noDataView; - - private BusStationBean startStation = null; - private BusStationBean endStation = null; - private BusStationCommonItem firstStationItem; - private BusStationCommonItem secondStationItem; - private BusStationCommonItem thirdStationItem; - - - @Override - public String getTagName() { - return "BusFragment"; - } - - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - } - @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 - protected void initViews() { - super.initViews(); - - mSwitchLine = findViewById(R.id.switch_line_btn); - mSwitchLine.setTag(0); - mLineName = findViewById(R.id.module_och_bus_line_name); - - firstStationItem = findViewById(R.id.bus_panel_first_station); - secondStationItem = findViewById(R.id.bus_panel_second_station); - thirdStationItem = findViewById(R.id.bus_panel_third_station); - mTaskTime = findViewById(R.id.bus_task_time_tv); - groupStationsPanel = findViewById(R.id.group_stations_panel); - noDataView = findViewById(R.id.no_line_data_view); - - CallerLogger.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getState()); - // 初始化的时候设置 UI 按钮状态 - showAutopilotBiz(); - - mSwitchLine.setOnClickListener(this); - - mLineName.setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - showHideTestBar(); - return false; - } - }); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void changeOverview(EventLogout eventLogout){ - if (eventLogout.getMessgae() == EventLogout.LOGOUT_TYPE){ - CallerLogger.d(M_BUS + TAG,"changeOverview Event消息去登出"); - mPresenter.logout(); - }else if (eventLogout.getMessgae() == EventLogout.SHOW_QR_TYPE){ //显示二维码 - CallerLogger.d(M_BUS + TAG,"changeOverview Event qrcode,sn = " - + SharedPrefsMgr.getInstance().getSn()); - String qrUrl = String.format(FunctionBuildConfig.urlJson.getBindDriverQRUrl(), - SharedPrefsMgr.getInstance().getSn()); - Bitmap bmQr = QRUtilsKt.createQRCodeWithPicture( - BitmapFactory.decodeResource(getResources(), R.drawable.icon_qr_center_logo) - ,qrUrl, AutoSizeUtils.dp2px(getContext(),340f), - AutoSizeUtils.dp2px(getContext(),340f),true); - if (bmQr != null){ - BindQRCodeDialog.Builder builder = new BindQRCodeDialog.Builder(); - builder.title(getString(R.string.bind_driver_qr_title)) - .cancelStr(getString(R.string.qr_cancel)) - .qrBm(bmQr).build(getContext()).show(); - }else { - CallerLogger.d(M_BUS + TAG,"bmQr = null "); - } - } - } - - @Override - protected void onArriveStation() { - mPresenter.onAutopilotArriveAtStation(null); - mPresenter.arriveStation(null,"点击进站触发进站操作"); - } - - @Override - protected void debugArrivedStation() { - mPresenter.onAutopilotArriveAtStation(null); - mPresenter.arriveStation(null,"点击debug进站按钮触发进站操作"); - } - - @NonNull - @Override - protected BusPresenter createPresenter() { - return new BusPresenter(this); - } - - @Override - public void onResume() { - super.onResume(); - } - - public void hideStationsPanel(){ - groupStationsPanel.setVisibility(View.GONE); - noDataView.setVisibility(View.VISIBLE); - } - - public void showStationsPanel(){ - groupStationsPanel.setVisibility(View.VISIBLE); - noDataView.setVisibility(View.GONE); - } - - public void updateLineEmptyUI(){ - setArrivedClikable(false); - showOrHideSwitchLineBtn(true); - hideStationsPanel(); - hideSlidePanel(); - resetStationBlinkAnim(); - } - - private void resetStationBlinkAnim() { - BlinkAnimationUtil.clearAnimation(firstStationItem.getCircleImageView()); - BlinkAnimationUtil.clearAnimation(secondStationItem.getCircleImageView()); - BlinkAnimationUtil.clearAnimation(thirdStationItem.getCircleImageView()); - } - - public void updateBusTaskStatus(String lineName, String lineTime, - List stationList, - int arrivingOrArrivedIndex, - boolean isArrived){ - - if (getActivity() == 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); - } - },UiThreadHandler.MODE.QUEUE); - } - - private void updateBusStationStatus(List stationList, - int arrivingOrArrivedIndex, - boolean isArrived) { - - startStation = stationList.get(0); - endStation = stationList.get(stationList.size() - 1); - - if (arrivingOrArrivedIndex == stationList.size() - 1 && isArrived){ - //切换路线和结束路线按钮切换 - showSlidePanel("单程结束"); - - setOrRemoveMapMaker(false, BusConst.BUS_END_MAP_MAKER, endStation.getLat() - , endStation.getLon(),R.raw.end_marker); - }else if (arrivingOrArrivedIndex == 0 && isArrived){ - - showSlidePanel("滑动出发"); - - setOrRemoveMapMaker(true, BusConst.BUS_START_MAP_MAKER, - startStation.getLat(), startStation.getLon(),R.raw.star_marker); - setOrRemoveMapMaker(true, BusConst.BUS_END_MAP_MAKER, - endStation.getLat(), endStation.getLon(),R.raw.end_marker); - }else{ - if (isArrived){ - // 重置滑动按钮文字 - showSlidePanel("滑动出发"); - } - - setOrRemoveMapMaker(false, BusConst.BUS_START_MAP_MAKER, startStation.getLat() - , startStation.getLon(),R.raw.star_marker); - setOrRemoveMapMaker(true, BusConst.BUS_END_MAP_MAKER, endStation.getLat() - , endStation.getLon(),R.raw.end_marker); - } - - if (stationList.size() > 2){ //只有两个站点 - updateMoreThanTwoStationsUI(stationList,arrivingOrArrivedIndex,isArrived); - }else { - updateTwoStationsUI(stationList,arrivingOrArrivedIndex,isArrived); - } - - updateBusTestBarInfo(); - } - - /** - * 有两个以上站点的路线 - * @param stationList - * @param arrivingOrArrivedIndex - * @param isArrived - */ - private void updateMoreThanTwoStationsUI(List stationList, - int arrivingOrArrivedIndex, - boolean isArrived) { - secondStationItem.setStationTag(""); - secondStationItem.showOrHideStationArrowBg(true); - thirdStationItem.setStationTag(""); - secondStationItem.setVisibility(View.VISIBLE); - thirdStationItem.showOrHideStationArrowBg(false); - - if (arrivingOrArrivedIndex == 0 || arrivingOrArrivedIndex -1 == 0 - || (arrivingOrArrivedIndex -2 == 0 && stationList.size() == 3)){ - 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(ResourcesUtils.getString(R.string.bus_station_txt_tag_end)); - }else { - thirdStationItem.setStationTag(""); - } - - //圆点: 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 - if (arrivingOrArrivedIndex == 0 && isArrived){ - 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()); - thirdStationItem.setStationName(stationList.get(2).getName()); - - firstStationItem.setStationPointBg(1); - secondStationItem.setStationPointBg(2); - thirdStationItem.setStationPointBg(2); - - firstStationItem.setStationArrowBg(2); - secondStationItem.setStationArrowBg(2); - - }else if (arrivingOrArrivedIndex == stationList.size() - 1){ - 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()); - thirdStationItem.setStationName(stationList.get(arrivingOrArrivedIndex).getName()); - - firstStationItem.setStationPointBg(0); - secondStationItem.setStationPointBg(0); - thirdStationItem.setStationPointBg(1); - - firstStationItem.setStationArrowBg(0); - if (isArrived){ - secondStationItem.setStationArrowBg(0); - }else { - secondStationItem.setStationArrowBg(1); - } - - }else { - 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()); - thirdStationItem.setStationName(stationList.get(arrivingOrArrivedIndex + 1).getName()); - - firstStationItem.setStationPointBg(0); - secondStationItem.setStationPointBg(1); - thirdStationItem.setStationPointBg(2); - - secondStationItem.setStationArrowBg(2); - if (isArrived){ - firstStationItem.setStationArrowBg(0); - }else { - firstStationItem.setStationArrowBg(1); - } - } - - } - - /** - * 只有两个站点的路线 - * @param stationList - * @param arrivingOrArrivedIndex - * @param isArrived - */ - private void updateTwoStationsUI(List stationList, - int arrivingOrArrivedIndex, - boolean isArrived) { - - secondStationItem.setVisibility(View.GONE); - secondStationItem.showOrHideStationArrowBg(false); - thirdStationItem.showOrHideStationArrowBg(false); - - 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(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(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); - thirdStationItem.setStationPointBg(1); - - }else { //到终点途中 - firstStationItem.setStationPointBg(0); - firstStationItem.setStationArrowBg(1); - thirdStationItem.setStationPointBg(1); - } - } - } - - private void showOrHideSwitchLineBtn(boolean isShow) { - if (isShow){//显示切换路线 - mSwitchLine.setTag(0); - mSwitchLine.setText(ResourcesUtils.getString(R.string.bus_switch_line_btn)); - }else {//显示结束路线 - mSwitchLine.setTag(1); - mSwitchLine.setText(ResourcesUtils.getString(R.string.bus_close_line_btn)); - } - } - - public void hideOchBus() { -// tvNotice.setVisibility(View.GONE); - } - - @Override - public int getStationPanelViewId() { - return R.layout.shuttle_fragment_och; - } - - @Override - public void restartAutopilot() { - if (!isAnimateRunning) { - mPresenter.restartAutopilot(); - } - } - - @Override - public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() { - return this; - } - - @Override - public void moveToEnd() { - // 开启自动驾驶到下一站 - if (isAnimateRunning){ - stopAutopilotAnimation(); - } - mPresenter.autoDriveToNextStation(); - } - - /** - * 设置自动驾驶可用状态 - */ - public void onAutopilotEnableChange(boolean isEnable) { - if (isEnable) { - showAutopilotBiz(); - } else { - hideAutopilotBiz(); - } - } - - public void clearBusStationsMarkers(){ - CallerLogger.d(M_BUS + TAG,"clearBusStationsMarkers()"); - if (null != startStation) { - setOrRemoveMapMaker(false, BusConst.BUS_START_MAP_MAKER, startStation.getLat() - , startStation.getLon(),R.raw.star_marker); - } - if (null != endStation) { - setOrRemoveMapMaker(false, BusConst.BUS_END_MAP_MAKER, endStation.getLat() - , endStation.getLon(),R.raw.end_marker); - } - - //清除鹰眼右下角小地图轨迹 - CallerLogger.d(SceneConstant.M_BUS, "clearBusStationsMarkers --------->"); - smallMapView.clearPolyline(); - } - - /** - * 绘制地图起点终点 - * - * @param isAdd - * @param uuid - */ - private void setOrRemoveMapMaker(boolean isAdd, String uuid, double lat, double longi,int resourceId) { - if (isAdd) { - Runnable setMapMarkerRunnable = () -> { - CallerLogger.d(M_BUS + "setMapMaker= "+Thread.currentThread().getName(), - uuid + "=latitude=" + lat + ",longitude=" + longi); - - Point.Options.Builder builder = new Point.Options.Builder(BusConst.TYPE_MARKER_BUS_ORDER, Level.MAP_MARKER) - .setId(uuid) - .anchor(0.5f, 0.5f) - .set3DMode(true) - .isUseGps(true) - .controlAngle(false) - .icon3DRes(resourceId) - .latitude(lat) - .longitude(longi); - IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager(); - if (overlayManager != null) { - overlayManager.showOrUpdatePoint(builder.build(),DEFAULT); - } - }; - - OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable); - - }else { - Runnable removeMapMarkerRunnable = () -> { - CallerLogger.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(), - uuid+"=latitude="+lat+",longitude="+longi); - Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getOverlayManager()).removePoint(uuid); - }; - OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable); - } - } - - @Override - public void debugAutoPilotStatus(int status) { - mPresenter.debugAutoPilotStatus(status); - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.switch_line_btn) {//切换路线条件: 自动驾驶过程中,点击则toast提示:自动驾驶中,不可切换路线 - //本次行程未结束,不支持切换路线。点击则toast提示:当前行程未完成,不可切换路线 - if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - ToastUtils.showLong(ResourcesUtils.getString(R.string.bus_switch_line_btn_warning1)); - return; - } - if ((int)mSwitchLine.getTag() == 0){//切换路线 - Intent intent = new Intent(getContext(), BusSwitchLineActivity.class); - ActivityUtils.startActivity(intent); - }else {//结束任务 - OCHCommitDialog.Builder builder = new OCHCommitDialog.Builder(); - OCHCommitDialog closeLineConfirmDialog = builder - .title(getString(R.string.bus_dialog_title)) - .tips(getString(R.string.bus_dialog_tips)) - .confirmStr(getString(R.string.bus_dialog_confirm)) - .cancelStr(getString(R.string.bus_dialog_cancel)) - .build(getContext()); - closeLineConfirmDialog.setClickListener(new OCHCommitDialog.ClickListener() { - @Override - public void confirm() { - mPresenter.abortTask(); - } - - @Override - public void cancel() { - closeLineConfirmDialog.dismiss(); - } - }); - closeLineConfirmDialog.show(); - } - } - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/BusLineModel.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/BusLineModel.java deleted file mode 100644 index ef35581c24..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/BusLineModel.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.mogo.och.shuttle.model; - -import android.content.Context; - -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.storage.SharedPrefsMgr; -import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.shuttle.R; -import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse; -import com.mogo.och.shuttle.bean.BusQueryLinesResponse; -import com.mogo.och.shuttle.bean.BusRoutesResponse; -import com.mogo.och.shuttle.callback.IBusLinesCallback; -import com.mogo.och.shuttle.net.OrderServiceManager; -import com.mogo.och.shuttle.ui.BusSwitchLineActivity; -import com.mogo.och.common.module.network.OchCommonServiceCallback; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public class BusLineModel { - private static volatile BusLineModel sInstance; - private Context mContext; - private IBusLinesCallback mBusLinesCallback; - public static BusLineModel getInstance() { - if ( sInstance == null ) { - synchronized ( BusLineModel.class ) { - if ( sInstance == null ) { - sInstance = new BusLineModel(); - } - } - } - return sInstance; - } - private BusLineModel() { - - } - public void init() { - mContext = AbsMogoApplication.getApp(); - } - public void setBusLinesCallback(IBusLinesCallback callback){ - mBusLinesCallback = callback; - } - public void queryBusLines(){ - OrderServiceManager.queryBusLines(mContext, new OchCommonServiceCallback() { - @Override - public void onSuccess(BusQueryLinesResponse data) { - if (null == data && mBusLinesCallback != null) { - mBusLinesCallback.onBusLinesChange(null); - return; - } - - if (mBusLinesCallback != null){ - mBusLinesCallback.onBusLinesChange(data); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("查询所有绑定路线失败:"+failMsg); - } - } - }); - } - - /** - * 通过线路id 查询线路排班表 - * @param lineId 线路ID - * @param position 位置 - */ - public void queryBusLineTasksById(int lineId, int position,boolean autoRefresh){ - OrderServiceManager.queryBusTaskByLineId(mContext, String.valueOf(lineId),new OchCommonServiceCallback() { - @Override - public void onSuccess(BusQueryLineTaskResponse data) { - if (null == data && mBusLinesCallback != null) { - mBusLinesCallback.onBusLineTasks(null,position,autoRefresh); - return; - } - - if (mBusLinesCallback != null){ - mBusLinesCallback.onBusLineTasks(data,position,autoRefresh); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("查询所有绑定路线失败:"+failMsg); - } - } - }); - } - - public void commitSwitchLineId(int taskId,int lineId){ - OrderServiceManager.switchLine(mContext,taskId, new OchCommonServiceCallback() { - @Override - public void onSuccess(BusRoutesResponse o) { - SharedPrefsMgr.getInstance().putInt(BusSwitchLineActivity.LASTCOMMITLINEID,lineId); - if (mBusLinesCallback != null){ - mBusLinesCallback.onChangeLineIdSuccess(); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("选择任务失败:"+failMsg); - } - } - }); - } - -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/OrderModel.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/OrderModel.java deleted file mode 100644 index 577c44b09a..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/OrderModel.java +++ /dev/null @@ -1,1256 +0,0 @@ -package com.mogo.och.shuttle.model; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import android.content.Context; -import android.text.TextUtils; -import android.util.ArrayMap; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.elegant.network.utils.GsonUtil; -import com.mogo.commons.AbsMogoApplication; -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.function.api.autopilot.IMoGoAutopilotStatusListener; -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.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.CoordinateUtils; -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.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.mogo.och.common.module.constant.OchCommonConst; -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics; -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager; -import com.mogo.och.common.module.manager.autopilot.line.LineManager; -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager; -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.cloud.AbnormalFactorsLoopManager; -import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager; -import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction; -import com.mogo.och.common.module.manager.socket.lan.LanSocketManager; -import com.mogo.och.common.module.manager.socket.lan.LedScreenManager; -import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg; -import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey; -import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType; -import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType; -import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus; -import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg; -import com.mogo.och.common.module.network.OchCommonServiceCallback; -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.voice.VoiceNotice; -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.data.bean.LineInfo; -import com.mogo.och.data.manager.cache.CacheDataManager; -import com.mogo.och.shuttle.R; -import com.mogo.och.shuttle.bean.BusRoutesResponse; -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.constant.BusConst; -import com.mogo.och.shuttle.net.OrderServiceManager; -import com.mogo.och.shuttle.util.BusTrajectoryManager; -import com.mogo.och.shuttle.util.ShuttleVoiceManager; - -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import io.reactivex.exceptions.UndeliverableException; -import io.reactivex.functions.Consumer; -import io.reactivex.plugins.RxJavaPlugins; - -/** - * @author congtaowang - * @since 2021/3/23 - *

- * 小巴订单管理 - */ -public class OrderModel { - private final String TAG = OrderModel.class.getSimpleName(); - private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引 - private static volatile OrderModel sInstance; - private Context mContext; - private final List stationList = new ArrayList<>(); - private BusRoutesResult busRoutesResult = null; - /** - * 用来表示是否正在开往下一站 - */ - private boolean isGoingToNextStation = false; - // 运营类型 - private static final int VEHICLE_TYPE = 10; - - private IRefreshBusStationsCallback refreshBusStationsCallback; - private ISlidePannelHideCallback slidePanelHideCallback; - private IBusControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等 - private IBusADASStatusCallback mADASStatusCallback; - - private volatile boolean isArrivedStation = false; - - //0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0 - private volatile int firstStartAutopilot = 0; - - public static OrderModel getInstance() { - if (sInstance == null) { - synchronized (OrderModel.class) { - if (sInstance == null) { - sInstance = new OrderModel(); - } - } - } - return sInstance; - } - - private OrderModel() { - - } - - public void init() { - mContext = AbsMogoApplication.getApp(); - // 定位监听 - OchLocationManager.addGCJ02Listener(TAG,5,mMapLocationListener); - - //开启自驾后 异常信息返回 - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); - - OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听运营消息 - OCHSocketMessageManager.msgMonitorType, - new OperateAction(true)); - - TicketModel.INSTANCE.load(); - - AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); - - //监听乘客屏发来的消息 - CallerTelematicListenerManager.INSTANCE.addListener(TAG,mReceivedMsgListener); - - //2022.1.28 - // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃 - // The exception could not be delivered to the consumer because it has already canceled/disposed - // the flow or the excTeption has nowhere to go to begin with - RxJavaPlugins.setErrorHandler(new Consumer() { - @Override - public void accept(Throwable e) { - if (e instanceof UndeliverableException) { - e = e.getCause(); - CallerLogger.d(M_BUS + TAG, "UndeliverableException"); - } - if ((e instanceof IOException)) {// - // fine, irrelevant network problem or API that throws on cancellation - CallerLogger.d(M_BUS + TAG, "IOException"); - return; - } - if (e instanceof InterruptedException) { - // fine, some blocking code was interrupted by a dispose call - CallerLogger.d(M_BUS + TAG, "InterruptedException"); - return; - } - if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { - // that's likely a bug in the application - CallerLogger.d(M_BUS + TAG, "NullPointerException or IllegalArgumentException"); - Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); - return; - } - if (e instanceof IllegalStateException) { - // that's a bug in RxJava or in a custom operator - CallerLogger.d(M_BUS + TAG, "IllegalStateException"); - Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); - return; - } - CallerLogger.d(M_BUS + TAG, "Undeliverable exception"); - } - }); - } - - private final IReceivedMsgListener mReceivedMsgListener = - new IReceivedMsgListener() { - @Override - public void onDemoMode(boolean isDemoMode) { - - } - - @Override - public void onReceivedServerSn(@Nullable String sn) { - - } - - @Override - public void onReceivedMsg(int type, @NonNull byte[] byteArray) { - if (OchCommonConst.BUSINESS_STRING == type){ - CallerLogger.d(M_BUS + BaseDPMsg.TAG,new String(byteArray)); - BaseDPMsg msg = GsonUtils.fromJson(new String(byteArray),BaseDPMsg.class); - if(msg!=null) { - if (msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()) { - sendTaskDetailsToClients(); - } - } - } - } - }; - - public void setAdasStatusCallback(IBusADASStatusCallback callback){ - this.mADASStatusCallback = callback; - } - - public void setRefreshBusStationsCallback(IRefreshBusStationsCallback callback){ - this.refreshBusStationsCallback = callback; - } - - public void setSlidePanelHideCallback(ISlidePannelHideCallback callback) { - this.slidePanelHideCallback = callback; - } - - public void setControllerStatusCallback(IBusControllerStatusCallback callback) { - this.mControllerStatusCallback = callback; - } - - public void release() { - - // 注销定位监听 - OchLocationManager.removeGCJ02Listener(TAG); - - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); - - OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener( - OCHSocketMessageManager.msgMonitorType); - OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener( - OCHSocketMessageManager.msgWriteOffPassengerType); - - AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); - //监听乘客屏发来的消息 - CallerTelematicListenerManager.INSTANCE.removeListener(TAG); - } - - private Object readResolve() { - // 阻止反序列化,必须实现 Serializable 接口 - return sInstance; - } - - private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { - - @Override - public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) { - if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode){ - CallerLogger.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage ); - mADASStatusCallback.onStartAdasFailure(); - } - } - }; - - // 自车定位 - private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { - - @Override - public void onChassisLocationGCJ02(@Nullable MogoLocation mogoLocation) { - if (null == mogoLocation) return; - if (mControllerStatusCallback != null) { - mControllerStatusCallback.onCarLocationChanged(mogoLocation); - } - - //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 - if (isGoingToNextStation && !isArrivedStation) { - OCHThreadPoolManager.getsInstance().locationExecute(new Runnable() { - @Override - public void run() { - judgeArrivedStation(mogoLocation); - } - }); - } - } - }; - - //根据围栏判断,是否到达站点 - private void judgeArrivedStation(MogoLocation location) { - - if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { - CallerLogger.e(M_BUS + TAG, "到站数组越界"); - return; - } - BusStationBean upcomingStation = stationList.get(backgroundCurrentStationIndex + 1); - - double startLon = upcomingStation.getGcjLon(); - double startLat = upcomingStation.getGcjLat(); - double distance = CoordinateUtils.calculateLineDistance( - startLon, startLat, - location.getLongitude(), location.getLatitude()); - - if (distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE) { - CallerLogger.d(M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance - + " to " + upcomingStation.getName()); - onArriveAt(null,"兜底:根据定位计算到站"); - } - } - - public void queryBusCacheRoutes(){ - - String loginStr = CacheDataManager.Companion.getInstance().getCacheData( - mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE); - if (!loginStr.isEmpty()){ - LoginCacheStatus status = GsonUtils.fromJson(loginStr,LoginCacheStatus.class); - LoginStatusManager.setLoginStatus(status.getLoginStatus()); - if (status.getUpdateTime() > DateTimeUtil.getTodayStartTime() && - status.getLoginStatus() == 1){//登陆 - - String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE); - - if (cacheData == null || cacheData.isEmpty()){ - queryBusRoutes(); - }else { - BusTransferData data = GsonUtils.fromJson(cacheData,BusTransferData.class); - getCacheRouteSuccess(data.getRoutesResult()); - } - }else{ // 未登陆 - CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LOGIN_STATUS_CACHE); - sendTaskDetailsToClients(); - } - } - } - - private void getCacheRouteSuccess(BusRoutesResult data){ - if (data == null || data.getSites() == null - || data.getSites().isEmpty() - || data.getWriteVersion() < DateTimeUtil.getTodayStartTime()) { - //当为空时,显示无绑定路线图 - queryBusRoutes(); - CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); - return; - } - CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据: " + GsonUtils.toJson(data)); - updateBusStatus(data); - } - - /** - * 查询小巴路线 - */ - public void queryBusRoutes() { - CallerLogger.d(M_BUS + TAG, "查询小巴路线"); - OrderServiceManager.queryBusRoutes(mContext, new OchCommonServiceCallback() { - @Override - public void onSuccess(BusRoutesResponse data) { - if (data == null - || data.getResult() == null - || data.getResult().getSites() == null - || data.getResult().getSites().isEmpty()) { -// //当为空时,显示无绑定路线图 - CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据:空 "); - if (refreshBusStationsCallback != null) { - refreshBusStationsCallback.updateEmptyUi(); - } - updateBusStatus(null); - clearAutopilotControlParameters(); - closeBeautificationMode(); - clearStartAutopilotTag(); - removeTipRunnables(); - CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LINE_CACHE); - return; - } - - if (busRoutesResult == null || busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ - CallerLogger.d(M_BUS + TAG, "更新小巴路线数据: " + data); - updateBusStatus(data.getResult()); - pushCacheTransferData(data.getResult()); - } - } - - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); - } - } - }); - - } - - /** - * 更新正在运行的任务UI - * - * @param stations - */ - private void updateBusTaskStatus(List stations) { - - int arrivingOrArrivedStationIndex = 0;//已经到站或者即将到站的索引呢 - - for (int i = 0; i < stations.size(); i++) { - BusStationBean station = stations.get(i); - - if (i == 0) { // 首发站 显示在最上面 - if (station.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED - && !station.isLeaving()) { //到达第一站 - arrivingOrArrivedStationIndex = i; - break; - } - } else { - BusStationBean preStation = stations.get(i - 1); - if ((station.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED && !station.isLeaving()) - || (station.getDrivingStatus() == BusConst.STATION_STATUS_ARRIVING - && preStation.isLeaving())) { - //到站未离开 | 即将到站 显示在最中间 - arrivingOrArrivedStationIndex = i; - break; - } - } - } - - BusStationBean arrivingOrArrivedStation = stations.get(arrivingOrArrivedStationIndex); - - String lineTime = DateTimeUtil.formatLongToString( - busRoutesResult.getTaskTime(), - DateTimeUtil.HH_mm); - - if (arrivingOrArrivedStationIndex == 0 || - arrivingOrArrivedStation.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED - && !arrivingOrArrivedStation.isLeaving()) { - if (refreshBusStationsCallback != null) { - refreshBusStationsCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime, - stationList, arrivingOrArrivedStationIndex, true); - } - clearAutopilotControlParameters(); - } else { - if (refreshBusStationsCallback != null) { - refreshBusStationsCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime, - stationList, arrivingOrArrivedStationIndex, false); - } - updateAutopilotControlParameters(); - } - } - - /** - * 重置路线站点状态--结束路线,当前路线恢复到始发站 - */ - public void abortTask() { - CallerLogger.d(M_BUS + TAG, "结束当前路线abortTask"); - if(busRoutesResult==null){ - ToastUtils.showLong("数据异常、请稍后再试"); - return; - } - OrderServiceManager.abortTask(mContext, busRoutesResult.getTaskId() - , new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - CallerLogger.d(M_BUS + TAG, "abortTask success: " + o); - if (o.code == 0) { // 重置成功 - endOrAbortTaskSuccess(); - clearBusStationDatas(); - queryBusRoutes(); - removeTipRunnables(); - // 取消自驾 - CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - setTrajectoryStation(null,null,-1L); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); - } - } - }); - - } - - /** - * 中断或者正常结束任务后的处理 - */ - private void endOrAbortTaskSuccess() { - - isGoingToNextStation = false; - backgroundCurrentStationIndex = 0; - - if (busRoutesResult != null) { - LedScreenManager.sendTripInfo2Led(LedScreenManager.END_TRIP - , busRoutesResult.getName() - , "" - , "" - , false); - } - - CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); - busRoutesResult = null; - - sendTaskDetailsToClients(); - } - - /** - * 离站上报成功后渲染站点 - * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, - * 车机端展示是离开当前站,下一站设置为当前站, 所以服务端数据回来要做处理,不能直接渲染 - */ - private void leaveStationSuccess(int leaveIndex, String leaveStation, - String nextStation,String nextStationKr, - long writeVersion) { - - onStartAutopilot(leaveIndex); - - leaveTTSTips(nextStation,nextStationKr); - - if (busRoutesResult != null) { - boolean isLastStop = false; - if (leaveIndex + 1 == stationList.size() - 1) { - isLastStop = true; - } - //给bus外屏发送 - LedScreenManager.sendTripInfo2Led(LedScreenManager.LEAVE_STATION - , busRoutesResult.getName() - , leaveStation - , nextStation - , isLastStop); - } - - reBuildCacheRouteData(leaveIndex,BusConst.STATION_STATUS_STOPPED,true,writeVersion); - } - - private void reBuildCacheRouteData(int currentIndex, int currentDrivingStatus, boolean isLeaving - , long writeVersion) { - if (busRoutesResult != null){ - busRoutesResult.setWriteVersion(writeVersion); - List sites = busRoutesResult.getSites(); - BusStationBean bean = sites.get(currentIndex); - bean.setDrivingStatus(currentDrivingStatus); - bean.setLeaving(isLeaving); - sites.set(currentIndex,bean); - if (currentDrivingStatus == BusConst.STATION_STATUS_STOPPED && !isLeaving){ - BusStationBean beanPre = sites.get(currentIndex -1); - beanPre.setDrivingStatus(BusConst.STATION_STATUS_LEAVING); - beanPre.setLeaving(false); - sites.set(currentIndex -1,beanPre); - } - //busRoutesResult.setSite(sites); - - pushCacheTransferData(busRoutesResult); - - updateBusStatus(busRoutesResult); - } - } - - private void onStartAutopilot(int leaveIndex) { - //开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启 - isGoingToNextStation = true; - if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - startAutopilot(false, leaveIndex); - } else { - firstStartAutopilot = 0; - } - } - - /** - * 开启自动驾驶 - * - * @param isRestart - */ - private void startAutopilot(boolean isRestart, int leaveIndex) { - - /** - * 存在Session - */ - if (!OchAutoPilotManager.canStartAutopilotBySessionId()) { - return; - } - - OchAutopilotAnalytics.INSTANCE.triggerClickStartAutopilotTime(System.currentTimeMillis()); - - //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 = OchAutoPilotManager.canStartAutoPilotByDistance(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 = OchAutoPilotManager.canStartAutoPilotByDistance(busRoutesResult.getLineId()); - } - if(!StringUtils.isEmpty(resion)){ - ToastUtils.showShort(resion); - VoiceNotice.showNotice(resion); - return; - } - //4、ssm 给出数据 - if (!OchAutoPilotManager.canStartAutoPilotSSM()) { - triggerUnableStartAPReasonEvent(); - return; - } - - firstStartAutopilot++; - - triggerStartServiceEvent(isRestart, false,0); - - AutopilotControlParameters parameters = initAutopilotControlParameters(leaveIndex); - if (null == parameters) { - CallerLogger.e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty."); - return; - } - - long sessionId = OchAutoPilotManager.startAutoPilot(parameters); - // 更新埋点中发送命令的sessionId - triggerUpdateStartAutoPilotSessionId(sessionId); - - CallerLogger.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) - + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + - "isRestart = " + isRestart); - - if (mControllerStatusCallback != null) { - mControllerStatusCallback.startOpenAutopilot(); - } - } - - /** - * 到站后重置站点状态 - */ - private void arriveSiteStation(String changeInfo) { - OchChainLogManager.writeChainLog("触发进站", changeInfo); - if ( backgroundCurrentStationIndex +1 > stationList.size() - 1 ) { //到站短时间内调用多次 - CallerLogger.e( M_BUS + TAG, "数组越界" ); - return; - } - int arrivedStationIndex = backgroundCurrentStationIndex + 1; - String arriveStation = stationList.get(arrivedStationIndex).getName(); - String arriveStationKr = stationList.get(arrivedStationIndex).getNameKr(); - String departureStopName = stationList.get(backgroundCurrentStationIndex).getName(); - CallerLogger.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); - - isArrivedStation = true; - isGoingToNextStation = false; - - long writeVersion = DateTimeUtil.getCurrentTimeStamp(); - arriveStationSuccess(arrivedStationIndex, departureStopName, - arriveStation,arriveStationKr,writeVersion); - - String requestId = MultiRequestLimitChecker.Companion.generateRequestId(TAG + "-arriveSiteStation" - , String.valueOf(stationList.get(arrivedStationIndex).getSiteId()) - , String.valueOf(busRoutesResult.getTaskId())); - if (!MultiRequestLimitChecker.Companion.getInstance().canMakeRequest(requestId, 5)) { - CallerLogger.d(M_BUS + TAG, "arriveSiteStation-MultiRequestLimitChecker: 超过最大请求数,本次请求return"); - return; - } - OrderServiceManager.arriveSiteStation(mContext, - stationList.get(arrivedStationIndex).getSeq(), - stationList.get(arrivedStationIndex).getSiteId(), - busRoutesResult.getTaskId(),writeVersion, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - CallerLogger.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); - MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId); - } - - @Override - public void onError() { - MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId); - } - - @Override - public void onFail(int code, String failMsg) { - MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId); - } - }); - } - - private void arriveStationSuccess(int arrivedStationIndex, String departureStopName, - String arriveStation,String arriveStationKr, - long writeVersion) { - if (busRoutesResult != null) { - boolean isLastStop = false; - if (arrivedStationIndex == busRoutesResult.getSites().size() - 1) { - isLastStop = true; - } - //给bus外屏发送 - LedScreenManager.sendTripInfo2Led(LedScreenManager.ARRIVE_STATION - , busRoutesResult.getName() - , departureStopName - , arriveStation - , isLastStop); - } - - ShuttleVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); - - reBuildCacheRouteData(arrivedStationIndex, BusConst.STATION_STATUS_STOPPED,false,writeVersion); - } - - private void sendTaskDetailsToClients() { - - BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,busRoutesResult); - TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.shuttle); - CallerLogger.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)); - LanSocketManager.sendMsgToClient(msg); - } - - private void pushCacheTransferData(BusRoutesResult result) { - BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,result); - CallerLogger.d(M_BUS + TAG, "pushCacheTransferData = " + GsonUtils.toJson(data)); - CacheDataManager.Companion.getInstance().putCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(data)); - } - - /** - * 离站上报 - */ - 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) { - 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; - String finalNextStationNameKr = nextStationNameKr; - - isArrivedStation = false; - CallerLogger.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); - - 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); - OrderServiceManager.leaveStation(mContext, - stationList.get(backgroundCurrentStationIndex).getSeq(), - stationList.get(backgroundCurrentStationIndex).getSiteId(), - busRoutesResult.getTaskId(),writeVersion, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - OchChainLogManager.writeChainLog("滑动出发成功", changeInfo); - } - - - @Override - public void onError() { - } - - @Override - public void onFail(int code, String failMsg) { - } - }); - } - - //车站10s后播报 - private void leaveTTSTips(String nextStation,String nextStationKr) { - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() {//延迟10s播报 - ShuttleVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr); - } - }, BusConst.DELAY_10S); - - } - - /** - * 关闭美化模式 - */ - public void closeBeautificationMode() { - if (FunctionBuildConfig.isDemoMode) {//收车结束美化 - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; //是否强制绘制引导线 - CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(false);// 同步给乘客屏 - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾 - CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为false"); - } - } - - /** - * 开启自动驾驶到下一站 - */ - public void autoDriveToNextStation() { - if (backgroundCurrentStationIndex >= stationList.size() - 1) { - // 当前站是最后一站,结束当前行程 - travelOver(); - return; - } - leaveStation(); - } - - /** - * 渲染站点信息 - * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, - * 车机端展示 三站: 中间为即将到到达或者刚到达的站 - * - * @param result - */ - private void updateBusStatus(BusRoutesResult result) { - if (result == null) { - LineManager.setLineInfo(null); - return; - } - busRoutesResult = result; - ArrayMap attach = new ArrayMap<>(); - try { - String lineTime = DateTimeUtil.formatLongToString( - busRoutesResult.getTaskTime(), - DateTimeUtil.HH_mm); - attach.put("taskInfo",lineTime); - }catch (Exception e){ - OchChainLogManager.writeChainLog("设置任务名称","设置任务名称报错"+e.getStackTrace()); - } - LineInfo lineInfo = new LineInfo(busRoutesResult.getLineId(), busRoutesResult.getName(),attach); - LineManager.setLineInfo(lineInfo); - stationList.clear(); - stationList.addAll(result.getSites()); - for (int i = 0; i < stationList.size(); i++) { - BusStationBean s = stationList.get(i); - - CallerLogger.d(M_BUS + "updateBusStationsStatus--", - "Index=" + i + " ,name = " + s.getName() + " ," + s.isLeaving() + "," + s.getDrivingStatus()); - - // 是否正在开往下一站 - if (s.isLeaving()) { - isGoingToNextStation = true; - } - // 当前站点信息 - if (s.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED) { - backgroundCurrentStationIndex = i; - break; - } - } - - if (backgroundCurrentStationIndex == 0 && - stationList.get(0).getDrivingStatus() == BusConst.STATION_STATUS_STOPPED - && !stationList.get(0).isLeaving()) { //默认是第一站到站查询 - if (busRoutesResult != null) { // 第一站到站也是行程开始的时候 - LedScreenManager.sendTripInfo2Led(LedScreenManager.START_TRIP - , busRoutesResult.getName(), "", "", false); - } - - //任务选择后首发前给司机提示任务 - if (busRoutesResult != null){ - beforeTaskTips(); - } - }else { - removeTipRunnables(); - } - - BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - - CallerLogger.d(M_BUS + TAG, - "行程日志-STATION_STATUS_STOPPED-backgroundCurrentStationIndex=" - + backgroundCurrentStationIndex - + " isLeaving()=" + currentStation.isLeaving()); - - // 美化是否开始 - if (FunctionBuildConfig.isDemoMode && (backgroundCurrentStationIndex >= 0 - && backgroundCurrentStationIndex <= stationList.size() - 1)) {//行驶过程中设置美化 - if (stationList.get(backgroundCurrentStationIndex).isLeaving()) { - startBeautificationMode(); - CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)"); - } else if (backgroundCurrentStationIndex > 0 && backgroundCurrentStationIndex < stationList.size() - 1) { - //美化模式下 中间站点到站 引导线要一直绘制,所以此处不出强制绘制不传false - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); - CallerLogger.d(M_BUS + TAG, "美化模式-ignore:false(到达中间站)"); - clearStartAutopilotTag(); - } else { - closeBeautificationMode(); - clearStartAutopilotTag(); - } - } - - - if (currentStation.isLeaving() && slidePanelHideCallback != null) { - slidePanelHideCallback.hideSlidePanel(); - } - - sendTaskDetailsToClients(); - - //更新bus路线面板 - updateBusTaskStatus(stationList); - - //需放在currentStationIndex赋值之后 - BusTrajectoryManager.getInstance().syncTrajectoryInfo(); - } - - private void beforeTaskTips() { - if (busRoutesResult == null) return; - - removeTipRunnables(); - - long taskTime = busRoutesResult.getTaskTime(); - long tip3Time = taskTime- 3*60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前3分钟提示 - long tip1Time = taskTime-60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前1分钟提示 - - if (tip3Time > 0){ - UiThreadHandler.postDelayed(tip3Runnable,tip3Time); - } - - if (tip1Time > 0){ - UiThreadHandler.postDelayed(tip1Runnable,tip1Time); - } - } - - Runnable tip3Runnable = new Runnable() { - @Override - public void run() { - - if (backgroundCurrentStationIndex == 0 && stationList.get(0).getDrivingStatus() == BusConst.STATION_STATUS_STOPPED - && !stationList.get(0).isLeaving()){ - tipStartTask("3"); - }else { - removeTipRunnables(); - } - } - }; - - private void tipStartTask(String s) { - String tips = String.format(mContext - .getString(R.string.bus_before_tips_s), s); - //展示在运营消息 - OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(), - tips,OCHSocketMessageManager.OPERATION_SYSTEM); - ShuttleVoiceManager.INSTANCE.showLeafTime(tips); - } - - Runnable tip1Runnable = new Runnable() { - @Override - public void run() { - if (backgroundCurrentStationIndex == 0 && stationList != null && - stationList.get(0).getDrivingStatus() == BusConst.STATION_STATUS_STOPPED - && !stationList.get(0).isLeaving()){ - tipStartTask("1"); - }else { - removeTipRunnables(); - } - } - }; - - public void removeTipRunnables(){ - if (tip3Runnable != null){ - UiThreadHandler.removeCallbacks(tip3Runnable); - } - if (tip1Runnable != null){ - UiThreadHandler.removeCallbacks(tip1Runnable); - } - } - - private void clearStartAutopilotTag() { - firstStartAutopilot = 0; - } - - private void startBeautificationMode() { - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true); - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true); - } - - public void clearBusStationDatas() { - if (refreshBusStationsCallback != null) { - refreshBusStationsCallback.clearBusStationsMarkers(); - } - } - - /** - * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地 - */ - public void restartAutopilot() { - CallerLogger.d(M_BUS + TAG, "行程日志-重启自动驾驶===" + isGoingToNextStation); - //只去启动自动驾驶,不再去上报离站 - startAutopilot(firstStartAutopilot >= 1, -1); - } - - public boolean isRestartAutopilot() { - return firstStartAutopilot > 1; - } - - /** - * 行程结束 - */ - private void travelOver() { - - if (backgroundCurrentStationIndex >= stationList.size()) { - CallerLogger.e(M_BUS + TAG, "travel over index out of station list"); - return; - } - CallerLogger.d(M_BUS + TAG, "单程结束===="); - CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - setTrajectoryStation(null,null,-1L); - endTask(); - } - - /** - * task正常结束 - */ - private void endTask() { - CallerLogger.d(M_BUS + TAG, "任务正常走完endTask()"); - OrderServiceManager.endTask(mContext, busRoutesResult.getTaskId() - , new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData o) { - CallerLogger.d(M_BUS + TAG, "endTask success: " + o); - if (o.code == 0) { - endOrAbortTaskSuccess(); - clearBusStationDatas(); - queryBusRoutes();// 重新获取任务 - removeTipRunnables(); - ShuttleVoiceManager.INSTANCE.endOrderBus(); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); - } - } - }); - } - - /** - * 到站 - * - * @param data - */ - public void onArriveAt(ArrivedStation data,String type) { - if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { - CallerLogger.e(M_BUS + TAG, "行程日志-到站异常,取消后续操作结束"); - return; - } - - //MAP 280 每隔100ms左右返回一次到站, 导致在到达中间站后再次滑动出发后会有时间差,收到一次到站,出现问题 - //此处比对 自驾告诉的到站站点坐标和本地应到站站点坐标, 一致时才能到站 - if (data != null && data.getEndLocation() != null) { - - String latitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLatitude(), 5); //wgs - String longitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLongitude(), 5); - - int arrivedStationIndex = backgroundCurrentStationIndex + 1; - BusStationBean arriveStation = stationList.get(arrivedStationIndex); - String arriveLat = NumberFormatUtil.cutOutNumber(arriveStation.getLat(), 5); - String arriveLon = NumberFormatUtil.cutOutNumber(arriveStation.getLon(), 5); - - if (!latitude.equals(arriveLat) || !longitude.equals(arriveLon)) { - CallerLogger.e(M_BUS + TAG, "行程日志-到站拦截,到站坐标不一致"); - return; - } - } - - if (isArrivedStation) return; - - CallerLogger.d(M_BUS + TAG, "行程日志-当前==backgroundCurrentStationIndex=" - + backgroundCurrentStationIndex); - - arriveSiteStation(type); - } - - public boolean isGoingToNextStation() { - return isGoingToNextStation; - } - - // 登出 - public void logout() { - LoginStatusManager.loginOut(); - } - - public void triggerStartServiceEvent(boolean isRestart, boolean send,int source) { - if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) { - return; - } - BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestart, send, - currentStation.getName(), nextStation.getName(), busRoutesResult.getLineId(),"",System.currentTimeMillis(),source); - } - - public void triggerUpdateStartAutoPilotSessionId(long sessionId) { - if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) { - return; - } - OchAutopilotAnalytics.INSTANCE.triggerUpdateStartAutoPilotSessionId(sessionId); - } - - public void triggerUnableStartAPReasonEvent() { - if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) { - return; - } - BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - OchAutopilotAnalytics.INSTANCE.triggerUnableStartAPReasonEvent( - currentStation.getName(), nextStation.getName(), String.valueOf(busRoutesResult.getLineId()),"", - OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); - } - - public BusRoutesResult getBusRoutesResult() { - return busRoutesResult; - } - - public BusStationBean getBusNextStation() { - // A->B 的过程中A站点的信息 - if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) { - return null; - } - return stationList.get(backgroundCurrentStationIndex); - } - - public int getCurrentStationIndex() { - return backgroundCurrentStationIndex; - } - - /** - * 将业务订单信息保存,鹰眼可取用 - */ - private void updateAutopilotControlParameters() { - - AutopilotControlParameters parameters = initAutopilotControlParameters(-1); - if (null == parameters) { - CallerLogger.e(M_BUS + TAG, "AutopilotControlParameters is empty."); - return; - } - CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is update."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters); - } - - private void clearAutopilotControlParameters() { - CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is clear."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null); - } - - private AutopilotControlParameters initAutopilotControlParameters(int leaveIndex) { - BusStationBean currentStation = null; - BusStationBean nextStation = null; - - if (leaveIndex < 0) { - if (backgroundCurrentStationIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) { - CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition1."); - return null; - } - currentStation = stationList.get(backgroundCurrentStationIndex); - nextStation = stationList.get(backgroundCurrentStationIndex + 1); - } else { - if (leaveIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) { - CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition2."); - return null; - } - currentStation = stationList.get(leaveIndex); - nextStation = stationList.get(leaveIndex + 1); - } - - AutopilotControlParameters parameters = new AutopilotControlParameters(); - parameters.routeID = busRoutesResult.getLineId(); - parameters.routeName = busRoutesResult.getName(); - parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.getName()); - parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.getName()); - parameters.startLatLon = new AutopilotControlParameters - .AutoPilotLonLat(currentStation.getLat(), currentStation.getLon()); - parameters.endLatLon = new AutopilotControlParameters - .AutoPilotLonLat(nextStation.getLat(), nextStation.getLon()); - parameters.vehicleType = VEHICLE_TYPE; - if (parameters.autoPilotLine == null) { - parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine( - busRoutesResult.getLineId(), busRoutesResult.getName(), - busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, - busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, - busRoutesResult.contrailSaveTime, busRoutesResult.carModel, - busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP, - busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP, - busRoutesResult.contrailSaveTimeDPQP); - } - - 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/shuttle/model/TicketModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt deleted file mode 100644 index e02dd0144a..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt +++ /dev/null @@ -1,228 +0,0 @@ -package com.mogo.och.shuttle.model - -import com.elegant.network.utils.GsonUtil -import com.mogo.commons.AbsMogoApplication -import com.mogo.eagle.core.data.enums.EventTypeEnumNew -import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.data.msgbox.MsgBoxType -import com.mogo.eagle.core.data.msgbox.V2XMsg -import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox -import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager -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.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.cloud.IOchOnMessageListener -import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager -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.network.OchCommonServiceCallback -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 io.reactivex.Observable -import io.reactivex.ObservableEmitter -import io.reactivex.ObservableOnSubscribe -import io.reactivex.schedulers.Schedulers - -object TicketModel : IReceivedMsgListener, IOchOnMessageListener { - - private val TAG = "TicketModel" - - private val SELECTWRITEOFFCOUNT = "SELECTWRITEOFFCOUNT" - - private var emitterMain: ObservableEmitter?=null - - private val observable = Observable.create(ObservableOnSubscribe { emitter -> emitterMain = emitter }) - - init { - - //监听乘客屏发来的消息 - CallerTelematicListenerManager.addListener(TAG, this) - OCHSocketMessageManager.registerSocketMessageListener( //监听核销乘客 - OCHSocketMessageManager.msgWriteOffPassengerType, - this - ) - } - - fun load(){ - BizLoopManager.setLoopFunction( - SELECTWRITEOFFCOUNT, LoopInfo(3, - TicketModel::selectWriteOffCount,scheduler = Schedulers.io())) - } - - // 收到局域网的核验信息 - override fun onReceivedMsg(type: Int, byteArray: ByteArray) { - if (OchCommonConst.BUSINESS_STRING == type) { - d(SceneConstant.M_BUS + TAG, "局域网核验"+String(byteArray)) - val msg = GsonUtils.fromJson(String(byteArray), BaseDPMsg::class.java) - if (msg != null) { - if (msg.type == DPMsgType.TYPE_WRITEOFF_INFO.type) { - val writeOffMsg = GsonUtils.fromJson(String(byteArray), WriteOffMsg::class.java) - receiveWrteOffInfo(writeOffMsg) - } else if (msg.type == DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.type) { - val writeOffMsg = GsonUtils.fromJson(String(byteArray), WriteOffDevicesMsg::class.java) - receiveWrteOffDevicesInfo(writeOffMsg) - } - } - } - } - - override fun target(): Class { - return WriteOffPassenger::class.java - } - - // 收到服务器的核验信息 - override fun onMsgReceived(passenger: WriteOffPassenger?) { - //进行播报 - i(SceneConstant.M_BUS + TAG, "后台socket 核验:passenger = " + GsonUtil.jsonFromObject(passenger)) - if(passenger==null||passenger.passengerSize==0){ - return - } - playPassenger( - passenger.passengerSize, - passenger.phone ?: "", - passenger.ticketName?:"", - passenger.orderNo?:"" - ) - selectWriteOffCount() - } - - private fun selectWriteOffCount(){ - val busRoutesResult = OrderModel.getInstance().busRoutesResult - val busNextStation = OrderModel.getInstance().busNextStation - if(busRoutesResult==null||busNextStation==null){ - emitterMain?.onNext(0) - d(SceneConstant.M_BUS + TAG, "线路或者站点未空:${busRoutesResult}----${busNextStation}") - return - } - OrderServiceManager.queryBusTaskByLineId(AbsMogoApplication.getApp(), - "${busRoutesResult.taskId}", - "${busNextStation.siteId}", - object : OchCommonServiceCallback { - override fun onSuccess(data: WriteOffCountResponse?) { - data?.data?.let { - emitterMain?.onNext(it) - d(SceneConstant.M_BUS + TAG, "${busNextStation.name}核销人数:${it}") - } - } - - override fun onFail(code: Int, msg: String?) { - - } - }) - } - - fun getWriteOffCountObservable():Observable{ - return observable - } - - private fun receiveWrteOffInfo(writeOffMsg: WriteOffMsg?) { - if(writeOffMsg!=null) { - if (writeOffMsg.isScuccess != null) { - if (writeOffMsg.isScuccess == true) { // 核验成功 - if(writeOffMsg.ticketSize==null||writeOffMsg.ticketSize==0){ - return - } -// playPassenger( -// writeOffMsg.ticketSize?:0, -// writeOffMsg.phone ?: "", -// writeOffMsg.ticketName ?: "", -// writeOffMsg.orderNo?:"" -// ) - } else { // 核验失败 - ShuttleVoiceManager.writeOffFaile(writeOffMsg.failedReason ?: "") - var tempPhone = writeOffMsg.phone - tempPhone?.let { - if (it.length > 8) { - //截取电话号码前三位 - val phoneNumPre = it.substring(0, 3) - //截取电话号码后四位 - val phoneNumFix = it.substring(7) - tempPhone = "$phoneNumPre****$phoneNumFix" - } - } - val reaseonAndPhone = if(tempPhone.isNullOrEmpty()) { - "${writeOffMsg.failedReason}" - }else{ - "${writeOffMsg.failedReason};乘客:${tempPhone}" - } - saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, V2XMsg( - EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.poiType, - reaseonAndPhone, - EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.tts, - "" - ) - ) - ) - } - } - } - } - - private fun receiveWrteOffDevicesInfo(writeOffMsg: WriteOffDevicesMsg) { - if (writeOffMsg.isConnectScanner != null) { - val reason = if (writeOffMsg.reason == null) "" else writeOffMsg.reason!! - if (writeOffMsg.isConnectScanner==true) { // 链接成功 - saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.poiType, - reason, - EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.tts, - "" - ) - ) - ) - } else { // 核验失败 - saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.poiType, - reason, - EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.tts, - "" - ) - ) - ) - } - } - } - - private fun playPassenger(ticketSize: Int,phone:String,ticketName:String,orderNo:String) { - - ShuttleVoiceManager.writeOffCount(ticketSize) - - var tempPhone = phone - if (tempPhone.length > 8) { - //截取电话号码前三位 - val phoneNumPre = tempPhone.substring(0, 3) - //截取电话号码后四位 - val phoneNumFix = tempPhone.substring(7) - tempPhone = "$phoneNumPre****$phoneNumFix" - } - val content = "${ticketSize}张 $ticketName $tempPhone" - saveMsgBox(MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.poiType, - content, - EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.tts, - "" - ) - ) - ) - } - -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java deleted file mode 100644 index 88d5ecbb0d..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.mogo.och.shuttle.net; -import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.shuttle.bean.BusCloseTaskRequest; -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.BusResetDrivingLineRequest; -import com.mogo.och.shuttle.bean.BusUpdateSiteStatusRequest; -import com.mogo.och.shuttle.bean.WriteOffCountResponse; - -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; - -/** - * 小巴车相关接口 - * - * @author tongchenfei - *

- * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072 - */ -public interface IBascApiService { - /** - * 查询当前运行任务 - * - * @param request 请求参数 - * @return 接口返回数据 - */ - @Headers( {"Content-Type:application/json;charset=UTF-8"} ) - @POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" ) - Observable queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request); - - /** - * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的 - * @return 返回值是重置后的车站列表 - * 开始路线 - */ - @Headers( {"Content-Type:application/json;charset=UTF-8"} ) - @POST( "/och-shuttle-cabin/api/flow/v1/driver/startTask" ) - Observable switchLine(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetDrivingLineRequest request); - - /** - * 离站,通知服务器 - * @param request - * @return - */ - @Headers({"Content-Type:application/json;charset=UTF-8"}) - @POST("/och-shuttle-cabin/api/flow/v1/driver/leave") - Observable leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request); - - /** - * 到站 更新到站信息 - * @param request - * @return - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) - @POST("/och-shuttle-cabin/api/flow/v1/driver/arrive") - Observable arriveSiteStation(@Header ("appId") String appId,@Header("ticket") String ticket,@Body BusUpdateSiteStatusRequest request); - - /** - * 查询车辆配置的所有路线 - * @param appId - * @param ticket - * @param sn - * @return - */ - @GET("/och-shuttle-cabin/api/business/v1/driver/bindLine/query") - Observable queryBusLines(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn); - - /** - * 查询线路的任务 - * @param appId - * @param ticket - * @param lineId 线路id - * @return - */ - @GET("/och-shuttle-cabin/api/business/v1/driver/task/query") - Observable queryBusTaskByLineId(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("lineId") String lineId); - - /** - * 中止任务 - * @param appId - * @param ticket - * @param data - * @return - */ - @POST("/och-shuttle-cabin/api/flow/v1/driver/abortTask") - Observable abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); - - /** - * 任务正常跑完结束 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST("/och-shuttle-cabin/api/flow/v1/driver/endTask") - Observable endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); - - - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET("och-shuttle-cabin/api/business/v1/task/writeOffCount") - Observable writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId); - -} - diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt deleted file mode 100644 index 735e507e02..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt +++ /dev/null @@ -1,192 +0,0 @@ -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.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.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.WriteOffCountResponse - -/** - * @author: wangmingjun - * @date: 2021/10/20 - */ -object OrderServiceManager { - - private val mService: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create( - IBascApiService::class.java - ) - - - /** - * 查询小巴车当前任务 - * @param context - * @param callback - */ - @JvmStatic - fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback?) { - //获取当前高德坐标 - mService.queryBusRoutes( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusQueryLineStationsRequest() - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes")) - } - - /** - * 重置线路站点 - * @param context - * @param taskId - * @param callback - */ - @JvmStatic - fun switchLine( - context: Context, - taskId: Int, - callback: OchCommonServiceCallback? - ) { - mService.switchLine( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusResetDrivingLineRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "switchLine")) - } - - /** - * 中断当前任务 - * @param context - * @param taskId - * @param callback - */ - @JvmStatic - fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) { - mService.abortTask( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusCloseTaskRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "abortTask")) - } - - /** - * 正常结束任务 - * @param context - * @param taskId - * @param callback - */ - @JvmStatic - fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) { - mService.endTask( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusCloseTaskRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "endTask")) - } - - /** - * 离站上报 - * @param context - * @param seq - * @param siteId - * @param callback - */ - @JvmStatic - fun leaveStation( - context: Context, - seq: Int, - siteId: Int, - taskId: Int, - writeVersion: Long, - callback: OchCommonServiceCallback? - ) { - mService.leaveStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq,writeVersion) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) - } - - /** - * 到站更新站点状态 - * @param context - * @param seq - * @param siteId - * @param callback - */ - @JvmStatic - fun arriveSiteStation( - context: Context, seq: Int, siteId: Int, taskId: Int, writeVersion: Long, - callback: OchCommonServiceCallback? - ) { - mService.arriveSiteStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq, writeVersion) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) - } - - @JvmStatic - fun queryBusLines(context: Context, callback: OchCommonServiceCallback?) { - mService.queryBusLines( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) - } - @JvmStatic - fun queryBusTaskByLineId( - context: Context, - lineId: String?, - callback: OchCommonServiceCallback? - ) { - mService.queryBusTaskByLineId( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - lineId - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) - } - - @JvmStatic - fun queryBusTaskByLineId( - context: Context, - taskId: String?, - siteId: String?, - callback: OchCommonServiceCallback? - ) { - mService.writeOffCount( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - taskId, - siteId - ) - .transformIoTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount")) - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java deleted file mode 100644 index 571780f469..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.mogo.och.shuttle.presenter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.LifecycleOwner; - -import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -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; - -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; - -/** - * @author: wangmingjun - * @date: 2022/2/9 - */ -public class BusLinePresenter extends Presenter implements IBusLinesCallback { - - private Disposable subscribe; - - public BusLinePresenter(BusSwitchLineView view) { - super(view); - BusLineModel.getInstance().init(); - OrderModel.getInstance().init(); - } - - @Override - public void onCreate(@NonNull LifecycleOwner owner) { - super.onCreate(owner); - initListener(); - } - - private void initListener() { - BusLineModel.getInstance().setBusLinesCallback(this); - } - - @Override - public void onBusLinesChange(BusQueryLinesResponse 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(); - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onChangeLineIdSuccess(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - public void queryBusLines(){ - BusLineModel.getInstance().queryBusLines(); - } - - public void queryBusLineTasks(int lineId, int position,boolean close){ - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } - if(close){ - return; - } - BusLineModel.getInstance().queryBusLineTasksById(lineId,position,false); - subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> { - BusLineModel.getInstance().queryBusLineTasksById(lineId,position,true); - }); - } - - public void commitSwitchLineId(int taskId,int lineId){ - BusLineModel.getInstance().commitSwitchLineId(taskId,lineId); - } - - public void removeListener(){ - BusLineModel.getInstance().setBusLinesCallback(null); - } - - public void queryBusRoutes(){ - OrderModel.getInstance().queryBusRoutes(); - } - - @Override - public void onDestroy(@NonNull LifecycleOwner owner) { - super.onDestroy(owner); - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } - } - - - @Override - public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) { - if(mView!=null) { - mView.onBusLineTasks(o,position,autoRefresh); - } - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java deleted file mode 100644 index 76a5128c8b..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java +++ /dev/null @@ -1,333 +0,0 @@ -package com.mogo.och.shuttle.presenter; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import android.os.Looper; - -import androidx.annotation.NonNull; -import androidx.lifecycle.LifecycleOwner; - -import com.mogo.commons.AbsMogoApplication; -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.biz.login.LoginStatusEnum; -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.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.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 java.util.ArrayList; -import java.util.List; - -import mogo_msg.MogoReportMsg; - -/** - * 网约车小巴 - * - * @author tongchenfei - */ -public class BusPresenter extends Presenter - implements IRefreshBusStationsCallback, ISlidePannelHideCallback - , IOchAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IBusADASStatusCallback { - - private static final String TAG = "BusPresenter"; - - private final List mStationList = new ArrayList<>(); - private int mCurrentStation = 0; - - public BusPresenter(ShuttleFragment view) { - super(view); - //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 - OrderModel.getInstance().init(); - OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); - - } - - @Override - public void onCreate(@NonNull LifecycleOwner owner) { - super.onCreate(owner); - initModelListener(); - - OrderModel.getInstance().queryBusCacheRoutes(); - } - - @Override - public void onDestroy(@NonNull LifecycleOwner owner) { - super.onDestroy(owner); - OrderModel.getInstance().release(); - releaseListener(); - } - - public void initModelListener() { - OrderModel.getInstance().setRefreshBusStationsCallback(this); - 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() { - OrderModel.getInstance().setRefreshBusStationsCallback(null); - OrderModel.getInstance().setSlidePanelHideCallback(null); - OrderModel.getInstance().setControllerStatusCallback(null); - OrderModel.getInstance().setAdasStatusCallback(null); - OCHAdasAbilityManager.getInstance().release(); - OchAutoPilotStatusListenerManager.INSTANCE.removeListener(TAG); - LoginStatusManager.INSTANCE.removeListener(TAG); - } - - public void abortTask() { - OrderModel.getInstance().abortTask(); - } - - public void autoDriveToNextStation() { - OrderModel.getInstance().autoDriveToNextStation(); - } - - public void restartAutopilot() { - if (OrderModel.getInstance().isGoingToNextStation()){ - OrderModel.getInstance().restartAutopilot(); - } - } - - // 登出 - public void logout() { - OrderModel.getInstance().logout(); - } - - @Override - public void updateBusTaskStatus(String lineName,String lineTime, - List stationList, - int arrivingOrArrivedIndex, - boolean isArrived) { - mStationList.clear(); - mStationList.addAll(stationList); - if (arrivingOrArrivedIndex == 0 || isArrived){ - mCurrentStation = arrivingOrArrivedIndex; - }else { - mCurrentStation = arrivingOrArrivedIndex -1; - } - CallerLogger.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation); - - 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() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateLineEmptyUI(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void clearBusStationsMarkers() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.clearBusStationsMarkers(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void hideSlidePanel() { - if (mView != null) { - mView.hideSlidePanel(); - mView.setArrivedClikable(true); - } - } - - @Override - public void onAutopilotArriveAtStation(ArrivedStation arrivedStation) { - CallerLogger.e( M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive"); - arriveStation(arrivedStation,"底盘触发进站"); - } - - public void arriveStation(ArrivedStation arrivedStation,String type){ - OrderModel.getInstance().onArriveAt(arrivedStation,type); - } - - @Override - public void onAutopilotStatusResponse(int state) { - switch (state) { - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE: - case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING: - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE: - if (FunctionBuildConfig.isDemoMode - && ( - (mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1) - && OrderModel.getInstance().isGoingToNextStation() - ) - ) { - CallerLogger.d(M_BUS + "BusOrderModel=", "有美化功能"); - return; - } - // 改变UI自动驾驶状态 - 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,0); - // 改变UI自动驾驶状态 - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0)); - } - } - }, UiThreadHandler.MODE.QUEUE); - break; - default: - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onAutopilotEnableChange(false); - } - } - }, UiThreadHandler.MODE.QUEUE); - break; - } - } - - @Override - public void onAutopilotStatusResponseFromCan(int state) { - if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - OrderModel.getInstance().triggerStartServiceEvent( - OrderModel.getInstance().isRestartAutopilot(), true,1); - } - } - - @Override - public void onCarLocationChanged(MogoLocation location) { -// if (null != location) { -// runOnUIThread(() -> mView.updateSpeedView(location.getGnssSpeed())); -// } - } - - @Override - public void startOpenAutopilot() { - //非美化模式下启动动画 - 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!=null){ - mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), - CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0)); - } - } - - private void runOnUIThread(Runnable executor) { - if (executor == null) { - return; - } - if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.post(executor); - } else { - executor.run(); - } - } - - /** - * 测试使用 - */ - public void debugAutoPilotStatus(int status) { - onAutopilotStatusResponse(status); - } - - - @Override - public void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { - BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId); - } - - @Override - public void onStatusChange(LoginStatusEnum currentStatus) { - CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); - if(LoginStatusManager.isLogin()){ -// OrderModel.getInstance().queryBusRoutes(); - OrderModel.getInstance().queryBusCacheRoutes(); - }else { - BusTrajectoryManager.getInstance().stopTrajReqLoop(); - BusTrajectoryManager.getInstance().stopTrajReqLoop(); - clearBusStationsMarkers(); - if(mView!=null) { - mView.hideSlidePanel(); - } - OrderModel.getInstance().closeBeautificationMode(); - } - } - - @Override - public void onStartAdasFailure() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.stopAnimAndUpdateBtnStatus(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - 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/shuttle/ui/BusStationCommonItem.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt deleted file mode 100644 index 9f6c121f07..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt +++ /dev/null @@ -1,99 +0,0 @@ -package com.mogo.och.shuttle.ui - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import android.widget.ImageView -import android.widget.LinearLayout -import androidx.core.content.ContextCompat -import com.mogo.och.shuttle.R -import com.mogo.och.common.module.utils.BlinkAnimationUtil -import kotlinx.android.synthetic.main.shuttle_stations_common_item.view.* - -/** - * @author: wangmingjun - * @date: 2022/9/15 - */ -class BusStationCommonItem @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr){ - - init { - LayoutInflater.from(context).inflate(R.layout.shuttle_stations_common_item,this,true) - } - - fun setStationName(name: String){ - busStationNameTv.text = name - } - - fun setStationNameColor(color: Int){ - busStationNameTv.setTextColor(color) - } - - fun setStationPointBg(type: Int) { // 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 - BlinkAnimationUtil.clearAnimation(busCircleIv) - when (type) { - 0 -> { - busCircleIvBg.visibility = GONE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_grey_bus - ) - ) - } - 1 -> { - busCircleIvBg.visibility = VISIBLE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_green_bus - ) - ) - BlinkAnimationUtil.setAnimation(busCircleIv) - } - 2 -> { - busCircleIvBg.visibility = GONE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_blue_bus - ) - ) - } - - } - } - - fun getCircleImageView() : ImageView{ - return busCircleIv - } - - fun setStationArrowBg(type: Int){// 0:灰色 过站 1:绿色 前往下一站 2:蓝色 未到站 - when(type){ - 0 -> busArrowBg.setImageResource(R.drawable.icon_arrow_grey_bus) - 1 -> busArrowBg.setImageResource(R.drawable.icon_arrow_green_bus) - 2 -> busArrowBg.setImageResource(R.drawable.icon_arrow_blue_bus) - } - - } - - fun setStationTag(tag: String){ // 0:起 1:终 - if (tag.isNullOrEmpty()){ - busTagTxt.visibility = GONE - }else{ - busTagTxt.text = tag - busTagTxt.visibility = VISIBLE - } - } - - fun showOrHideStationArrowBg(isShow:Boolean){ - if (isShow){ - busArrowBg.visibility = VISIBLE - }else{ - busArrowBg.visibility = GONE - } - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt deleted file mode 100644 index a9fddd0ff4..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt +++ /dev/null @@ -1,222 +0,0 @@ -package com.mogo.och.shuttle.ui - -import android.graphics.Point -import android.os.Bundle -import android.view.Gravity -import android.view.View -import android.view.ViewGroup -import android.view.WindowManager -import android.widget.ImageView -import android.widget.TextView -import androidx.constraintlayout.widget.ConstraintLayout -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.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.shuttle.R -import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse -import java.util.ArrayList - -/** - * @author: wangmingjun - * @date: 2022/2/8 - */ -class BusSwitchLineActivity : MvpActivity(), - View.OnClickListener, BusSwitchLineView { - - companion object{ - const val LASTCOMMITLINEID = "lastcommitlineid" - } - - private lateinit var mClose: ImageView - private lateinit var mNoDatasView: ConstraintLayout - private lateinit var mLinesListView: RecyclerView - private lateinit var mLineCommitBtn: TextView - private lateinit var mAdapter: SwitchLineAdapter - private lateinit var linearLayoutManager:LinearLayoutManager - private val mData: MutableList = ArrayList() - override fun getLayoutId(): Int { - return R.layout.shuttle_switch_line - } - - override fun createPresenter(): BusLinePresenter { - return BusLinePresenter(this) - } - - override fun initViews() { - initWH() - initView() - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - initDatas() - } - - /** - * 初始化view - */ - private fun initView() { - mClose = findViewById(R.id.switch_line_close) - mClose.setOnClickListener(this) - mNoDatasView = findViewById(R.id.no_order_data_view) - mLineCommitBtn = findViewById(R.id.switch_line_btn_commit) - mLineCommitBtn.setOnClickListener(this) - mLinesListView = findViewById(R.id.switch_line_rv) - linearLayoutManager = LinearLayoutManager(this) - mLinesListView.setLayoutManager(linearLayoutManager) - mLinesListView.setItemAnimator(OpenItemAnimator()) - mAdapter = SwitchLineAdapter(applicationContext, mData) - mLinesListView.addItemDecoration( - SpacesItemDecoration( - 4 - ) - ) - mLinesListView.setAdapter(mAdapter) - //设置item 点击事件 - mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{ - override fun onItemClick(position: Int, close: Boolean) { - mPresenter?.queryBusLineTasks(mData[position].lineId, position, close) - } - }) - } - - /** - * 设置布局宽高 - */ - private fun initWH() { - val window = window - val params = window.attributes - val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager - val point = Point() - windowManager.defaultDisplay.getSize(point) //用于获取屏幕高度 - params.width = (point.x * 0.375).toInt() - params.height = ViewGroup.LayoutParams.MATCH_PARENT - window.attributes = params - window.setGravity(Gravity.START or Gravity.BOTTOM) - } - - /** - * 初始化数据 - */ - private fun initDatas() { - mPresenter?.queryBusLines() - } - - /** - * 查询返回绑定路线集合 - * @param data - */ - override fun onBusLinesChange(data: BusQueryLinesResponse?) { - if (null == data) { - showNoData(true) - return - } - val lastCommitLineid = SharedPrefsMgr.getInstance().getInt(LASTCOMMITLINEID, -1) - if (data.data != null && data.data.size > 0) { - showNoData(false) - mData.clear() - mData.addAll(data.data) - mAdapter.notifyDataSetChanged() - if(lastCommitLineid>0){ - mData.forEachIndexed { index, line -> - if(line.lineId==lastCommitLineid){ - line.open = true - mPresenter?.queryBusLineTasks(line.lineId,index,false) - return - } - } - } - } else { - showNoData(true) - } - } - - override fun onChangeLineIdSuccess() { - ToastUtils.showLong(resources.getString(R.string.bus_change_line_commit_tip_s)) - mPresenter?.queryBusRoutes() - mAdapter.setOnLineItemClickListener(null) - mPresenter?.removeListener() - finish() - } - - override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int, autoRefresh:Boolean) { - val result = mData[position] - if (result.taskList == null) { - result.taskList = ArrayList() - } - if (lineTaskInfo == null) { - result.haveTask = true - // 打开操作 - mAdapter.notifyItemChanged(position) - } else { - if (lineTaskInfo.data == null || lineTaskInfo.data.isEmpty()) { - result.haveTask = true - lineTaskInfo.data = ArrayList() - } - if (lineTaskInfo.data.size != result.taskList.size) { // 不相等有变动 重新赋值 - result.taskList.clear() - result.taskList.addAll(lineTaskInfo.data) - if(autoRefresh) { - mAdapter.checkTaskId = -1 - mAdapter.checkLineId = -1 - lineTaskInfo.data.forEach { - if (it.id == mAdapter.checkTaskId) { - mAdapter.checkTaskId = it.id - mAdapter.checkLineId = result.lineId - } - } - } - // 打开操作 - mAdapter.notifyItemChanged(position) - linearLayoutManager.stackFromEnd = (position==mData.size-1||position==mData.size-2)&&mData.size>6 - mLinesListView.smoothScrollToPosition(position) - }else if(lineTaskInfo.data.isEmpty()){ - mAdapter.notifyItemChanged(position) - } - } - } - - /** - * 有无数据UI显示 - * @param b - */ - private fun showNoData(b: Boolean) { - if (b) { - mLinesListView.visibility = View.GONE - mLineCommitBtn.visibility = View.GONE - mNoDatasView.visibility = View.VISIBLE - } else { - mLinesListView.visibility = View.VISIBLE - mLineCommitBtn.visibility = View.VISIBLE - mNoDatasView.visibility = View.GONE - } - } - - override fun onClick(v: View) { - //关闭dialog - if (v.id == R.id.switch_line_close) { - finish() - return - } - //切换路线提交 - if (v.id == R.id.switch_line_btn_commit) { - if(mAdapter.checkLineId!=-1&&mAdapter.checkTaskId!=-1){ - mPresenter?.commitSwitchLineId(mAdapter.checkTaskId,mAdapter.checkLineId) - }else{ - ToastUtils.showLong("请选择任务") - } - } - } - - override fun onDestroy() { - mPresenter!!.removeListener() - super.onDestroy() - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java deleted file mode 100644 index 5a4d85d312..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.och.shuttle.ui; - -import com.mogo.commons.mvp.IView; -import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse; -import com.mogo.och.shuttle.bean.BusQueryLinesResponse; - -/** - * @author: wangmingjun - * @date: 2022/2/10 - */ -public interface BusSwitchLineView extends IView { - - void onBusLinesChange(BusQueryLinesResponse data); - void onChangeLineIdSuccess(); - - void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); -} - diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java deleted file mode 100644 index bc8596d255..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java +++ /dev/null @@ -1,643 +0,0 @@ -package com.mogo.och.shuttle.ui.adapter; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.TimeInterpolator; -import android.animation.ValueAnimator; -import android.view.View; -import android.view.ViewPropertyAnimator; - -import androidx.annotation.NonNull; -import androidx.core.view.ViewCompat; -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.SimpleItemAnimator; - -import java.util.ArrayList; -import java.util.List; - -/** - * This implementation of {@link RecyclerView.ItemAnimator} provides basic - * animations on remove, add, and move events that happen to the items in - * a RecyclerView. RecyclerView uses a DefaultItemAnimator by default. - * - * @see RecyclerView#setItemAnimator(RecyclerView.ItemAnimator) - */ -public class OpenItemAnimator extends DefaultItemAnimator { - private static final boolean DEBUG = false; - - private static TimeInterpolator sDefaultInterpolator; - - private final ArrayList mPendingRemovals = new ArrayList<>(); - private final ArrayList mPendingAdditions = new ArrayList<>(); - private final ArrayList mPendingMoves = new ArrayList<>(); - private final ArrayList mPendingChanges = new ArrayList<>(); - - ArrayList> mAdditionsList = new ArrayList<>(); - ArrayList> mMovesList = new ArrayList<>(); - ArrayList> mChangesList = new ArrayList<>(); - - ArrayList mAddAnimations = new ArrayList<>(); - ArrayList mMoveAnimations = new ArrayList<>(); - ArrayList mRemoveAnimations = new ArrayList<>(); - ArrayList mChangeAnimations = new ArrayList<>(); - - private static class MoveInfo { - public RecyclerView.ViewHolder holder; - public int fromX, fromY, toX, toY; - - MoveInfo(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) { - this.holder = holder; - this.fromX = fromX; - this.fromY = fromY; - this.toX = toX; - this.toY = toY; - } - } - - private static class ChangeInfo { - public RecyclerView.ViewHolder oldHolder, newHolder; - public int fromX, fromY, toX, toY; - private ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder) { - this.oldHolder = oldHolder; - this.newHolder = newHolder; - } - - ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, - int fromX, int fromY, int toX, int toY) { - this(oldHolder, newHolder); - this.fromX = fromX; - this.fromY = fromY; - this.toX = toX; - this.toY = toY; - } - - @Override - public String toString() { - return "ChangeInfo{" - + "oldHolder=" + oldHolder - + ", newHolder=" + newHolder - + ", fromX=" + fromX - + ", fromY=" + fromY - + ", toX=" + toX - + ", toY=" + toY - + '}'; - } - } - - @Override - public void runPendingAnimations() { - boolean removalsPending = !mPendingRemovals.isEmpty(); - boolean movesPending = !mPendingMoves.isEmpty(); - boolean changesPending = !mPendingChanges.isEmpty(); - boolean additionsPending = !mPendingAdditions.isEmpty(); - if (!removalsPending && !movesPending && !additionsPending && !changesPending) { - // nothing to animate - return; - } - // First, remove stuff - for (RecyclerView.ViewHolder holder : mPendingRemovals) { - animateRemoveImpl(holder); - } - mPendingRemovals.clear(); - // Next, move stuff - if (movesPending) { - final ArrayList moves = new ArrayList<>(mPendingMoves); - mMovesList.add(moves); - mPendingMoves.clear(); - Runnable mover = () -> { - for (MoveInfo moveInfo : moves) { - animateMoveImpl(moveInfo.holder, moveInfo.fromX, moveInfo.fromY, - moveInfo.toX, moveInfo.toY); - } - moves.clear(); - mMovesList.remove(moves); - }; - if (removalsPending) { - View view = moves.get(0).holder.itemView; - ViewCompat.postOnAnimationDelayed(view, mover, getRemoveDuration()); - } else { - mover.run(); - } - } - // Next, change stuff, to run in parallel with move animations - if (changesPending) { - final ArrayList changes = new ArrayList<>(mPendingChanges); - mChangesList.add(changes); - mPendingChanges.clear(); - Runnable changer = () -> { - for (ChangeInfo change : changes) { - animateChangeImpl(change); - } - changes.clear(); - mChangesList.remove(changes); - }; - if (removalsPending) { - RecyclerView.ViewHolder holder = changes.get(0).oldHolder; - ViewCompat.postOnAnimationDelayed(holder.itemView, changer, getRemoveDuration()); - } else { - changer.run(); - } - } - // Next, add stuff - if (additionsPending) { - final ArrayList additions = new ArrayList<>(mPendingAdditions); - mAdditionsList.add(additions); - mPendingAdditions.clear(); - Runnable adder = () -> { - for (RecyclerView.ViewHolder holder : additions) { - animateAddImpl(holder); - } - additions.clear(); - mAdditionsList.remove(additions); - }; - if (removalsPending || movesPending || changesPending) { - long removeDuration = removalsPending ? getRemoveDuration() : 0; - long moveDuration = movesPending ? getMoveDuration() : 0; - long changeDuration = changesPending ? getChangeDuration() : 0; - long totalDelay = removeDuration + Math.max(moveDuration, changeDuration); - View view = additions.get(0).itemView; - ViewCompat.postOnAnimationDelayed(view, adder, totalDelay); - } else { - adder.run(); - } - } - } - - @Override - public boolean animateRemove(final RecyclerView.ViewHolder holder) { - resetAnimation(holder); - mPendingRemovals.add(holder); - return true; - } - - private void animateRemoveImpl(final RecyclerView.ViewHolder holder) { - final View view = holder.itemView; - final ViewPropertyAnimator animation = view.animate(); - mRemoveAnimations.add(holder); - animation.setDuration(getRemoveDuration()).alpha(0).setListener( - new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchRemoveStarting(holder); - } - - @Override - public void onAnimationEnd(Animator animator) { - animation.setListener(null); - view.setAlpha(1); - dispatchRemoveFinished(holder); - mRemoveAnimations.remove(holder); - dispatchFinishedWhenDone(); - } - }).start(); - } - - @Override - public boolean animateAdd(final RecyclerView.ViewHolder holder) { - resetAnimation(holder); - holder.itemView.setAlpha(0); - mPendingAdditions.add(holder); - return true; - } - - void animateAddImpl(final RecyclerView.ViewHolder holder) { - final View view = holder.itemView; - final ViewPropertyAnimator animation = view.animate(); - mAddAnimations.add(holder); - animation.alpha(1).setDuration(getAddDuration()) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchAddStarting(holder); - } - - @Override - public void onAnimationCancel(Animator animator) { - view.setAlpha(1); - } - - @Override - public void onAnimationEnd(Animator animator) { - animation.setListener(null); - dispatchAddFinished(holder); - mAddAnimations.remove(holder); - dispatchFinishedWhenDone(); - } - }).start(); - } - - @Override - public boolean animateMove(final RecyclerView.ViewHolder holder, int fromX, int fromY, - int toX, int toY) { - final View view = holder.itemView; - fromX += (int) holder.itemView.getTranslationX(); - fromY += (int) holder.itemView.getTranslationY(); - resetAnimation(holder); - int deltaX = toX - fromX; - int deltaY = toY - fromY; - if (deltaX == 0 && deltaY == 0) { - dispatchMoveFinished(holder); - return false; - } - if (deltaX != 0) { - view.setTranslationX(-deltaX); - } - if (deltaY != 0) { - view.setTranslationY(-deltaY); - } - mPendingMoves.add(new MoveInfo(holder, fromX, fromY, toX, toY)); - return true; - } - - void animateMoveImpl(final RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) { - final View view = holder.itemView; - final int deltaX = toX - fromX; - final int deltaY = toY - fromY; - if (deltaX != 0) { - view.animate().translationX(0); - } - if (deltaY != 0) { - view.animate().translationY(0); - } - // TODO: make EndActions end listeners instead, since end actions aren't called when - // vpas are canceled (and can't end them. why?) - // need listener functionality in VPACompat for this. Ick. - final ViewPropertyAnimator animation = view.animate(); - mMoveAnimations.add(holder); - animation.setDuration(getMoveDuration()).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchMoveStarting(holder); - } - - @Override - public void onAnimationCancel(Animator animator) { - if (deltaX != 0) { - view.setTranslationX(0); - } - if (deltaY != 0) { - view.setTranslationY(0); - } - } - - @Override - public void onAnimationEnd(Animator animator) { - animation.setListener(null); - dispatchMoveFinished(holder); - mMoveAnimations.remove(holder); - dispatchFinishedWhenDone(); - } - }).start(); - } - - @Override - public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, - int fromX, int fromY, int toX, int toY) { - if (oldHolder == newHolder) { - // Don't know how to run change animations when the same view holder is re-used. - // run a move animation to handle position changes. - return animateMove(oldHolder, fromX, fromY, toX, toY); - } - final float prevTranslationX = oldHolder.itemView.getTranslationX(); - final float prevTranslationY = oldHolder.itemView.getTranslationY(); - final float prevAlpha = oldHolder.itemView.getAlpha(); - resetAnimation(oldHolder); - int deltaX = (int) (toX - fromX - prevTranslationX); - int deltaY = (int) (toY - fromY - prevTranslationY); - // recover prev translation state after ending animation - oldHolder.itemView.setTranslationX(prevTranslationX); - oldHolder.itemView.setTranslationY(prevTranslationY); - oldHolder.itemView.setAlpha(prevAlpha); - if (newHolder != null) { - // carry over translation values - resetAnimation(newHolder); - newHolder.itemView.setTranslationX(-deltaX); - newHolder.itemView.setTranslationY(-deltaY); - newHolder.itemView.setAlpha(0); - } - mPendingChanges.add(new ChangeInfo(oldHolder, newHolder, fromX, fromY, toX, toY)); - return true; - } - - void animateChangeImpl(final ChangeInfo changeInfo) { - final RecyclerView.ViewHolder holder = changeInfo.oldHolder; - final View view = holder == null ? null : holder.itemView; - final RecyclerView.ViewHolder newHolder = changeInfo.newHolder; - final View newView = newHolder != null ? newHolder.itemView : null; - if (view != null) { - final ViewPropertyAnimator oldViewAnim = view.animate().setDuration( - getChangeDuration()); - mChangeAnimations.add(changeInfo.oldHolder); - oldViewAnim.translationX((float)(changeInfo.toX - changeInfo.fromX)); - oldViewAnim.translationY((float)(changeInfo.toY - changeInfo.fromY)); - oldViewAnim.alpha(0).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchChangeStarting(changeInfo.oldHolder, true); - } - - @Override - public void onAnimationEnd(Animator animator) { - oldViewAnim.setListener(null); - view.setAlpha(1); - view.setTranslationX(0); - view.setTranslationY(0); - dispatchChangeFinished(changeInfo.oldHolder, true); - mChangeAnimations.remove(changeInfo.oldHolder); - dispatchFinishedWhenDone(); - } - }).start(); - } - if (newView != null) { - final ViewPropertyAnimator newViewAnimation = newView.animate(); - mChangeAnimations.add(changeInfo.newHolder); - newViewAnimation.translationX(0).translationY(0).setDuration(getChangeDuration()) - .alpha(1).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animator) { - dispatchChangeStarting(changeInfo.newHolder, false); - } - @Override - public void onAnimationEnd(Animator animator) { - newViewAnimation.setListener(null); - newView.setAlpha(1); - newView.setTranslationX(0); - newView.setTranslationY(0); - dispatchChangeFinished(changeInfo.newHolder, false); - mChangeAnimations.remove(changeInfo.newHolder); - dispatchFinishedWhenDone(); - } - }).start(); - } - } - - private void endChangeAnimation(List infoList, RecyclerView.ViewHolder item) { - for (int i = infoList.size() - 1; i >= 0; i--) { - ChangeInfo changeInfo = infoList.get(i); - if (endChangeAnimationIfNecessary(changeInfo, item)) { - if (changeInfo.oldHolder == null && changeInfo.newHolder == null) { - infoList.remove(changeInfo); - } - } - } - } - - private void endChangeAnimationIfNecessary(ChangeInfo changeInfo) { - if (changeInfo.oldHolder != null) { - endChangeAnimationIfNecessary(changeInfo, changeInfo.oldHolder); - } - if (changeInfo.newHolder != null) { - endChangeAnimationIfNecessary(changeInfo, changeInfo.newHolder); - } - } - private boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) { - boolean oldItem = false; - if (changeInfo.newHolder == item) { - changeInfo.newHolder = null; - } else if (changeInfo.oldHolder == item) { - changeInfo.oldHolder = null; - oldItem = true; - } else { - return false; - } - item.itemView.setAlpha(1); - item.itemView.setTranslationX(0); - item.itemView.setTranslationY(0); - dispatchChangeFinished(item, oldItem); - return true; - } - - @Override - public void endAnimation(RecyclerView.ViewHolder item) { - final View view = item.itemView; - // this will trigger end callback which should set properties to their target values. - view.animate().cancel(); - // TODO if some other animations are chained to end, how do we cancel them as well? - for (int i = mPendingMoves.size() - 1; i >= 0; i--) { - MoveInfo moveInfo = mPendingMoves.get(i); - if (moveInfo.holder == item) { - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(item); - mPendingMoves.remove(i); - } - } - endChangeAnimation(mPendingChanges, item); - if (mPendingRemovals.remove(item)) { - view.setAlpha(1); - dispatchRemoveFinished(item); - } - if (mPendingAdditions.remove(item)) { - view.setAlpha(1); - dispatchAddFinished(item); - } - - for (int i = mChangesList.size() - 1; i >= 0; i--) { - ArrayList changes = mChangesList.get(i); - endChangeAnimation(changes, item); - if (changes.isEmpty()) { - mChangesList.remove(i); - } - } - for (int i = mMovesList.size() - 1; i >= 0; i--) { - ArrayList moves = mMovesList.get(i); - for (int j = moves.size() - 1; j >= 0; j--) { - MoveInfo moveInfo = moves.get(j); - if (moveInfo.holder == item) { - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(item); - moves.remove(j); - if (moves.isEmpty()) { - mMovesList.remove(i); - } - break; - } - } - } - for (int i = mAdditionsList.size() - 1; i >= 0; i--) { - ArrayList additions = mAdditionsList.get(i); - if (additions.remove(item)) { - view.setAlpha(1); - dispatchAddFinished(item); - if (additions.isEmpty()) { - mAdditionsList.remove(i); - } - } - } - - // animations should be ended by the cancel above. - //noinspection PointlessBooleanExpression,ConstantConditions - if (mRemoveAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mRemoveAnimations list"); - } - - //noinspection PointlessBooleanExpression,ConstantConditions - if (mAddAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mAddAnimations list"); - } - - //noinspection PointlessBooleanExpression,ConstantConditions - if (mChangeAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mChangeAnimations list"); - } - - //noinspection PointlessBooleanExpression,ConstantConditions - if (mMoveAnimations.remove(item) && DEBUG) { - throw new IllegalStateException("after animation is cancelled, item should not be in " - + "mMoveAnimations list"); - } - dispatchFinishedWhenDone(); - } - - private void resetAnimation(RecyclerView.ViewHolder holder) { - if (sDefaultInterpolator == null) { - sDefaultInterpolator = new ValueAnimator().getInterpolator(); - } - holder.itemView.animate().setInterpolator(sDefaultInterpolator); - endAnimation(holder); - } - - @Override - public boolean isRunning() { - return (!mPendingAdditions.isEmpty() - || !mPendingChanges.isEmpty() - || !mPendingMoves.isEmpty() - || !mPendingRemovals.isEmpty() - || !mMoveAnimations.isEmpty() - || !mRemoveAnimations.isEmpty() - || !mAddAnimations.isEmpty() - || !mChangeAnimations.isEmpty() - || !mMovesList.isEmpty() - || !mAdditionsList.isEmpty() - || !mChangesList.isEmpty()); - } - - /** - * Check the state of currently pending and running animations. If there are none - * pending/running, call {@link #dispatchAnimationsFinished()} to notify any - * listeners. - */ - void dispatchFinishedWhenDone() { - if (!isRunning()) { - dispatchAnimationsFinished(); - } - } - - @Override - public void endAnimations() { - int count = mPendingMoves.size(); - for (int i = count - 1; i >= 0; i--) { - MoveInfo item = mPendingMoves.get(i); - View view = item.holder.itemView; - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(item.holder); - mPendingMoves.remove(i); - } - count = mPendingRemovals.size(); - for (int i = count - 1; i >= 0; i--) { - RecyclerView.ViewHolder item = mPendingRemovals.get(i); - dispatchRemoveFinished(item); - mPendingRemovals.remove(i); - } - count = mPendingAdditions.size(); - for (int i = count - 1; i >= 0; i--) { - RecyclerView.ViewHolder item = mPendingAdditions.get(i); - item.itemView.setAlpha(1); - dispatchAddFinished(item); - mPendingAdditions.remove(i); - } - count = mPendingChanges.size(); - for (int i = count - 1; i >= 0; i--) { - endChangeAnimationIfNecessary(mPendingChanges.get(i)); - } - mPendingChanges.clear(); - if (!isRunning()) { - return; - } - - int listCount = mMovesList.size(); - for (int i = listCount - 1; i >= 0; i--) { - ArrayList moves = mMovesList.get(i); - count = moves.size(); - for (int j = count - 1; j >= 0; j--) { - MoveInfo moveInfo = moves.get(j); - RecyclerView.ViewHolder item = moveInfo.holder; - View view = item.itemView; - view.setTranslationY(0); - view.setTranslationX(0); - dispatchMoveFinished(moveInfo.holder); - moves.remove(j); - if (moves.isEmpty()) { - mMovesList.remove(moves); - } - } - } - listCount = mAdditionsList.size(); - for (int i = listCount - 1; i >= 0; i--) { - ArrayList additions = mAdditionsList.get(i); - count = additions.size(); - for (int j = count - 1; j >= 0; j--) { - RecyclerView.ViewHolder item = additions.get(j); - View view = item.itemView; - view.setAlpha(1); - dispatchAddFinished(item); - additions.remove(j); - if (additions.isEmpty()) { - mAdditionsList.remove(additions); - } - } - } - listCount = mChangesList.size(); - for (int i = listCount - 1; i >= 0; i--) { - ArrayList changes = mChangesList.get(i); - count = changes.size(); - for (int j = count - 1; j >= 0; j--) { - endChangeAnimationIfNecessary(changes.get(j)); - if (changes.isEmpty()) { - mChangesList.remove(changes); - } - } - } - - cancelAll(mRemoveAnimations); - cancelAll(mMoveAnimations); - cancelAll(mAddAnimations); - cancelAll(mChangeAnimations); - - dispatchAnimationsFinished(); - } - - void cancelAll(List viewHolders) { - for (int i = viewHolders.size() - 1; i >= 0; i--) { - viewHolders.get(i).itemView.animate().cancel(); - } - } - - /** - * {@inheritDoc} - *

- * If the payload list is not empty, DefaultItemAnimator returns true. - * When this is the case: - *

    - *
  • If you override {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}, both - * ViewHolder arguments will be the same instance. - *
  • - *
  • - * If you are not overriding {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}, - * then DefaultItemAnimator will call {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int)} and - * run a move animation instead. - *
  • - *
- */ - @Override - public boolean canReuseUpdatedViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, - @NonNull List payloads) { - return !payloads.isEmpty() || super.canReuseUpdatedViewHolder(viewHolder, payloads); - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt deleted file mode 100644 index 19738350eb..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt +++ /dev/null @@ -1,181 +0,0 @@ -package com.mogo.och.shuttle.ui.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.appcompat.widget.AppCompatTextView -import androidx.core.content.ContextCompat -import androidx.recyclerview.widget.GridLayoutManager -import androidx.recyclerview.widget.RecyclerView -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 - -/** - * 路线列表adapter - */ -class SwitchLineAdapter( - private val mContext: Context, - private val mData: List -) : RecyclerView.Adapter() { - companion object{ - const val TAG = "SwitchLineAdapter" - } - // RecyclerView设置点击事件 - private var mItemClickListener: LineItemClickListener? = null - var checkLineId:Int = -1 - var checkTaskId:Int = -1 - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int - ): SwitchLineViewHolder { - val view = LayoutInflater.from(mContext).inflate( - R.layout.shuttle_switch_line_list_item, parent, false - ) - return SwitchLineViewHolder(view) - } - - override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) { - val currentPosition = holder.bindingAdapterPosition - val line = mData[currentPosition] - if(line.name!=null&&line.name.length>10){ - line.name = line.name.substring(0,10)+"…" - } - holder.lineName.text = line.name - val sb = StringBuilder() - if (line.endSiteName!=null&&line.endSiteName.length>10) { - sb.append(line.endSiteName.substring(0,5)) - sb.append("…") - sb.append(line.endSiteName.substring(line.endSiteName.length-5,line.endSiteName.length)) - }else{ - sb.append(line.endSiteName) - } - val string = mContext.getString(R.string.bus_line_goto_end, sb.toString()) - holder.lineEndName.text = string - holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3) - val switchLineTaskAdapter = SwitchLineTaskAdapter( - mContext, - checkTaskId, - line.taskList, - object : SwitchLineTaskAdapter.TaskItemClickListener { - override fun onItemClick(position: Int,isCheck:Boolean) { - try { - if(isCheck) { - checkLineId = line.lineId - checkTaskId = line.taskList[position].id - }else{ - checkLineId=-1 - checkTaskId=-1 - } - }catch (e:Exception){ - e.printStackTrace() - checkLineId=-1 - checkTaskId=-1 - } - } - }) - holder.rvLineTask.adapter = switchLineTaskAdapter - holder.rvLineTask.isFocusableInTouchMode = false - holder.actvShowMore.visibility = View.VISIBLE - - if(line.open){ - if(line.taskList==null||line.taskList.isEmpty()){ - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.INVISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - }else { - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white)) - holder.vLineTask.visibility = View.VISIBLE - holder.rvLineTask.visibility = View.VISIBLE - holder.selectIv.visibility = View.VISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_selected) - holder.selectIv.apply { - pivotX = 9.5f - pivotY = 17f - rotation = 90f - } - } - }else{ - if(line.haveTask){ - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.INVISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - }else { - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.VISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - holder.selectIv.apply { - pivotX = 9.5f - pivotY = 17f - rotation = 0f - } - } - } - - - //设置item点击事件 - holder.itemView.setOnClickListener { - if(holder.actvShowMore.text==mContext.getString(R.string.bus_switch_line_no_task)){ - return@setOnClickListener - } - mData.forEachIndexed { index, result -> - if(result.open){ - result.open = false; - notifyItemChanged(index) - if(result.taskList!=null) { - result.taskList.clear() - } - if(index==currentPosition){// 点击当前已经打开的item 去关闭定时网络请求 - mItemClickListener?.onItemClick(currentPosition,true) - return@setOnClickListener - } - } - } - mItemClickListener?.onItemClick(currentPosition,false) - line.open = holder.rvLineTask.visibility == View.GONE - } - } - - override fun getItemCount(): Int { - return mData.size - } - - fun setOnLineItemClickListener(itemClickListener: LineItemClickListener?) { - mItemClickListener = itemClickListener - } - - class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val selectIv: ImageView - val lineName: AppCompatTextView//线路名称 - val lineEndName: AppCompatTextView //终点 - val actvShowMore: AppCompatTextView //选择时间 - val rvLineTask: RecyclerView// 排班时间 - val vLineTask: View// 白色分割线 - - init { - selectIv = itemView.findViewById(R.id.switch_line_item_select_iv) - lineName = itemView.findViewById(R.id.switch_line_name) - lineEndName = itemView.findViewById(R.id.switch_line_end_station) - rvLineTask = itemView.findViewById(R.id.rv_line_task_list) - vLineTask = itemView.findViewById(R.id.v_line_task) - actvShowMore = itemView.findViewById(R.id.actv_show_more) - } - } - - interface LineItemClickListener { - fun onItemClick(position: Int,close:Boolean) - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt deleted file mode 100644 index 95d5badfb8..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt +++ /dev/null @@ -1,76 +0,0 @@ -package com.mogo.och.shuttle.ui.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -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.shuttle.R -import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse -import com.mogo.och.shuttle.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder - -/** - * 路线列表adapter - */ -class SwitchLineTaskAdapter( - private val mContext: Context, - private var checkTaskId:Int, - private val mData: List?, - private val mTaskItemClickListener: TaskItemClickListener? -) : RecyclerView.Adapter() { - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineTaskViewHolder { - val view = LayoutInflater.from(mContext).inflate( - R.layout.shuttle_switch_line_list_task_item, parent, false - ) - return SwitchLineTaskViewHolder(view) - } - - override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) { - val currentPosition = holder.bindingAdapterPosition - val task = mData!![currentPosition] - val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm") - holder.lineTask.text = taskStartTime - if(checkTaskId==task.id){ - holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg_selected) - }else{ - holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg) - } - holder.lineTask.setOnClickListener { - if(checkTaskId==task.id){ - checkTaskId = -1 - mTaskItemClickListener?.onItemClick(currentPosition,false) - }else { - resetOther() - checkTaskId = task.id - mTaskItemClickListener?.onItemClick(currentPosition,true) - } - notifyItemChanged(currentPosition) - } - } - - private fun resetOther() { - mData?.forEachIndexed { index, result -> - if(result.id==checkTaskId){ - checkTaskId = -1 - notifyItemChanged(index) - } - } - } - - override fun getItemCount(): Int { - return mData?.size ?: 0 - } - - class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val lineTask: TextView // 时间 - init { - lineTask = itemView.findViewById(R.id.actv_line_task) - } - } - - interface TaskItemClickListener { - fun onItemClick(position: Int,isCheck:Boolean) - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt deleted file mode 100644 index b0d7b3851a..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt +++ /dev/null @@ -1,55 +0,0 @@ -package com.mogo.och.shuttle.ui.writeoff - -import android.content.Context -import android.util.AttributeSet -import android.util.Log -import android.view.LayoutInflater -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.findViewTreeViewModelStoreOwner -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 { - - 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 fun initView() { - LayoutInflater.from(context).inflate(R.layout.shuttle_wirte_off_view, this, true) - } - - - - override fun onAttachedToWindow() { - super.onAttachedToWindow() - - val viewModel = findViewTreeViewModelStoreOwner()?.let { - ViewModelProvider(it).get(WriteOffViewModel::class.java) - } - - viewModel?.setWriteOffCallback(this) - } - - - init { - try { - initView() - } catch (e: Exception) { - e.printStackTrace() - } - } - - override fun setWriteOffCount(showText: String) { - tv_write_off_count.text = showText - } - - -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt deleted file mode 100644 index 68da5137b1..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt +++ /dev/null @@ -1,70 +0,0 @@ -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.shuttle.R -import com.mogo.och.common.module.utils.RxUtils -import com.mogo.och.shuttle.model.TicketModel -import io.reactivex.Observable -import io.reactivex.Observer -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable - -class WriteOffViewModel : ViewModel() { - - private val TAG = WriteOffViewModel::class.java.simpleName - - private var viewCallback: IwriteOffViewCallback? = null - - init { - - } - - private var disposable: Disposable? = null - - private val observer = object : Observer { - override fun onSubscribe(d: Disposable) { - disposable = d - } - - override fun onError(e: Throwable) { - - } - - override fun onComplete() { - - } - - override fun onNext(countInfo: String) { - viewCallback?.setWriteOffCount(countInfo) - } - - } - - fun setWriteOffCallback(viewCallback: IwriteOffViewCallback) { - this.viewCallback = viewCallback - TicketModel - .getWriteOffCountObservable() - .flatMap { t -> - val showText = - AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, t) - CallerLogger.d(SceneConstant.M_BUS + TAG, "显示文案:${showText}") - Observable.just(showText) - } - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(observer) - } - - override fun onCleared() { - super.onCleared() - this.viewCallback = null - RxUtils.disposeSubscribe(disposable) - } - - interface IwriteOffViewCallback { - fun setWriteOffCount(count:String) - } - -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java deleted file mode 100644 index 0d3dca0c64..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java +++ /dev/null @@ -1,204 +0,0 @@ -package com.mogo.och.shuttle.util; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import androidx.annotation.Nullable; - -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.biz.login.LoginStatusManager; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; -import com.mogo.och.data.bean.BusRoutesResult; -import com.mogo.och.shuttle.constant.BusConst; -import com.mogo.och.shuttle.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; -import mogo_msg.MogoReportMsg; - -/** - * Bus轨迹管理:给MEC下发用于轨迹下载的信息 - * Created on 2022/6/23 - */ -public class BusTrajectoryManager { - private static final String TAG = BusTrajectoryManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final BusTrajectoryManager INSTANCE = new BusTrajectoryManager(); - } - - public static BusTrajectoryManager getInstance() { - return SingletonHolder.INSTANCE; - } - - private AutopilotControlParameters.AutoPilotLine mAutoPilotLine = null; - private Disposable mSendReqDisposable = null; - - public BusTrajectoryManager() { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "", - "", "", "", "", 0, "", - "", "", "", "", 0); - } - - /** - * 同步Bus路线信息 - */ - public void syncTrajectoryInfo() { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - if (LoginStatusManager.isLogin() && routesResult != null - && OrderModel.getInstance().getCurrentStationIndex() == 0 - && !OrderModel.getInstance().isGoingToNextStation()) { - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start."); - startTrajReqLoop(); - } else { - // 无路线信息or当前未在始发站 - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop."); - stopTrajReqLoop(); - } - } - - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) { - onAutopilotGuardian(guardianInfo); - } - - /** - * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) - * @param guardianInfo - */ - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - if (guardianInfo == null || !guardianInfo.hasCode()) return; - if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())) { - // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发) - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹开始下载"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹开始下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹开始下载"); - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())) { - // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发) - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载成功"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载成功"); - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())) { - // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " + - "轨迹下载失败,本地无对应轨迹"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地无对应轨迹", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载失败,本地无对应轨迹"); - } else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())) { - // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " + - "轨迹下载失败,本地有对应轨迹,认为成功"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地有对应轨迹,认为成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功"); - } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())) { - // 5. 轨迹管理_轨迹下载超时 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载超时"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载超时", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载超时"); - } else if ("ISSM_FUNC_AUTO_PILOT_READY".equals(guardianInfo.getCode())) { - // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 - CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() ssm ready,再次发起下载"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 再次发起下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - syncTrajectoryInfo(); - } - } - - private void setupAutoPilotLine() { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - if (routesResult == null) { - CallerLogger.e(M_BUS + TAG, - "setupAutoPilotLine(): routesResult is null."); - return; - } else { - if (mAutoPilotLine == null) { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine( - routesResult.getLineId(), routesResult.getName(), - routesResult.csvFileUrl, routesResult.csvFileMd5, - routesResult.txtFileUrl, routesResult.txtFileMd5, - routesResult.contrailSaveTime, routesResult.carModel, - routesResult.csvFileUrlDPQP, routesResult.csvFileMd5DPQP, - routesResult.txtFileUrlDPQP, routesResult.txtFileMd5DPQP, - routesResult.contrailSaveTimeDPQP); - } else { - mAutoPilotLine.setLineId(routesResult.getLineId()); - mAutoPilotLine.setLineName(routesResult.getName()); - mAutoPilotLine.setTrajUrl(routesResult.csvFileUrl); - mAutoPilotLine.setTrajMd5(routesResult.csvFileMd5); - mAutoPilotLine.setStopUrl(routesResult.txtFileUrl); - mAutoPilotLine.setStopMd5(routesResult.txtFileMd5); - mAutoPilotLine.setTimestamp(routesResult.contrailSaveTime); - mAutoPilotLine.setVehicleModel(routesResult.carModel); - mAutoPilotLine.setTrajUrl_dpqp(routesResult.csvFileUrlDPQP); - mAutoPilotLine.setTrajMd5_dpqp(routesResult.csvFileMd5DPQP); - mAutoPilotLine.setStopUrl_dpqp(routesResult.txtFileUrlDPQP); - mAutoPilotLine.setStopMd5_dpqp(routesResult.txtFileMd5DPQP); - mAutoPilotLine.setTimestamp_dpqp(routesResult.contrailSaveTimeDPQP); - } - } - } - - private void clearAutoPilotLine() { - if (mAutoPilotLine == null) return; - mAutoPilotLine.setLineId(-1); - mAutoPilotLine.setLineName(""); - mAutoPilotLine.setTrajUrl(""); - mAutoPilotLine.setTrajMd5(""); - mAutoPilotLine.setStopUrl(""); - mAutoPilotLine.setStopMd5(""); - mAutoPilotLine.setTimestamp(0); - mAutoPilotLine.setVehicleModel(""); - mAutoPilotLine.setTrajUrl_dpqp(""); - mAutoPilotLine.setTrajMd5_dpqp(""); - mAutoPilotLine.setStopUrl_dpqp(""); - mAutoPilotLine.setStopMd5_dpqp(""); - mAutoPilotLine.setTimestamp_dpqp(0); - } - - private void startTrajReqLoop() { - if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) { - return; - } - CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()"); - setupAutoPilotLine(); - mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY, - BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> { - if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) { - stopTrajReqLoop(); - return; - } - CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong); - sendTrajectoryReq(); - }); - } - - public void stopTrajReqLoop() { - if (mSendReqDisposable != null) { - CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()"); - mSendReqDisposable.dispose(); - mSendReqDisposable = null; - clearAutoPilotLine(); - } - } - - private void sendTrajectoryReq() { - if (mAutoPilotLine == null) { - CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); - return; - } - OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+mAutoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine); - CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): " - + GsonUtils.toJson(mAutoPilotLine)); - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleAnalyticsEventKey.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleAnalyticsEventKey.java deleted file mode 100644 index 35d1bd52eb..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleAnalyticsEventKey.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.mogo.och.shuttle.util; - - -import androidx.annotation.NonNull; - -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey; - -/** - * OCH Bus埋点工具 - *

- * Created on 2022/3/24 - */ -public class ShuttleAnalyticsEventKey implements IOchEventKey { - - // 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾 - private static final String EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_bus_ap_unable_start_reason"; - // 埋点key:接管后点击'自动驾驶'按钮启动 - private static final String EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_bus_restart_autopilot"; - // 埋点key:开始服务开启自动驾驶(成功/失败) - private static final String EVENT_KEY_START_SERVICE = "event_key_och_bus_start_service"; - // 埋点key:点击启动自驾 - private static final String EVENT_KEY_CLICK_START_AUTOPILOT = "event_key_och_shuttle_click_start_autopilot"; - - private static final class SingletonHolder { - private static final ShuttleAnalyticsEventKey INSTANCE = new ShuttleAnalyticsEventKey(); - } - - public static ShuttleAnalyticsEventKey getInstance() { - return SingletonHolder.INSTANCE; - } - - @NonNull - @Override - public String getEventKeyStartService() { - return EVENT_KEY_START_SERVICE; - } - - @NonNull - @Override - public String getEventKeyRestartService() { - return EVENT_KEY_RESTART_AUTOPILOT; - } - - @NonNull - @Override - public String getEventKeyApUnableStartReason() { - return EVENT_KEY_AP_UNABLE_START_REASON; - } - - @NonNull - @Override - public String getEventKeyClickStartAutopilot() { - return EVENT_KEY_CLICK_START_AUTOPILOT; - } - -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt deleted file mode 100644 index 123b7ca541..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt +++ /dev/null @@ -1,156 +0,0 @@ -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.common.module.manager.socket.lan.LanSocketManager -import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg -import com.mogo.och.common.module.utils.ResourcesUtils -import com.mogo.och.common.module.voice.VoiceNotice -import com.mogo.och.shuttle.R -import com.mogo.tts.base.LangTtsEntity -import com.mogo.tts.base.LanguageType - -object ShuttleVoiceManager { - - fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { - val context = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_tip, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_english_tip, it), - LanguageType.ENGLISH - ) - val koreanTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it), - LanguageType.KOREAN - ) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - - } - - if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { - VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) - } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - siteNameCN?.let { - sendArrivedStationToClient(it) - } - } - } - - private fun sendArrivedStationToClient(arriveStation: String) { - val arrivedMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_arrived_station_tip,arriveStation), - ) - LanSocketManager.sendMsgToClient(arrivedMsg) - } - - fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) { - val list: MutableList = ArrayList() - val context = AbsMogoApplication.getApp() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_tip, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_english_tip, it), - LanguageType.ENGLISH - ) - list.add(chineseTTS) - list.add(engTTS) - - val koreanTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it), - LanguageType.KOREAN - ) - - list.add(koreanTTS) - } - - if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { - VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) - } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - siteNameCN?.let { - sendStartStationToClient(it) - } - } - } - - private fun sendStartStationToClient(nextStation: String) { - val startMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_leave_station_tip,nextStation), - ) - LanSocketManager.sendMsgToClient(startMsg) - } - - fun endOrderBus() { - val context = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE) - val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH) - val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - - if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { - VoiceNotice.showNotice(list, AIAssist.LEVEL0,null) - } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - sendEndTaskToClient() - } - - } - - private fun sendEndTaskToClient() { - val endMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_end_task_tip), - ) - LanSocketManager.sendMsgToClient(endMsg) - } - - - fun writeOffCount(successNum:Int){ - if(successNum<=1){ - VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3) - //sendWriteOffNumToClient("核验通过") - }else{ - VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3) - //sendWriteOffNumToClient("$successNum 人核验通过") - } - } - - private fun sendWriteOffNumToClient(msg: String?) { - val passengerMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = msg!!, - ) - LanSocketManager.sendMsgToClient(passengerMsg) - } - - - // 距离发车还有1分钟 - fun showLeafTime(tips: String) { - //语音提示 - VoiceNotice.showNotice(tips) - } - - fun writeOffFaile(reaseon:String) { - VoiceNotice.showNotice(reaseon, AIAssist.LEVEL3) - } - -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt deleted file mode 100644 index d396c664ca..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt +++ /dev/null @@ -1,63 +0,0 @@ -package com.mogo.och.shuttle.view - -import android.content.Context -import android.os.Bundle -import android.util.AttributeSet -import android.view.LayoutInflater -import android.widget.FrameLayout -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.shuttle.R - -/** - * 魔戒蓝牙控件 - * 放置于StatusBar右侧位置 - */ -class BizMapView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : FrameLayout(context, attrs, defStyleAttr) { - - private lateinit var mapBizView: MapBizView - - init { - if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - LayoutInflater.from(context).inflate(R.layout.shuttle_m2_bizmap_map, this, true) - }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) - } - mapBizView = findViewById(R.id.bizMapView) - } - - fun getUI(): IMogoMapUIController? { - return mapBizView.getUI() - } - - fun onCreate(bundle: Bundle?) { - mapBizView.onCreate(bundle) - } - fun onResume() { - mapBizView.onResume() - } - - fun onSaveInstanceState(outState: Bundle){ - mapBizView.onSaveInstanceState(outState) - } - - fun onLowMemory() { - mapBizView.onLowMemory() - } - - fun onPause() { - mapBizView.onPause() - } - - fun onDestroy() { - mapBizView.onDestroy() - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java deleted file mode 100644 index 87c355ceb5..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java +++ /dev/null @@ -1,300 +0,0 @@ -package com.mogo.och.shuttle.view; - -import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.LinearGradient; -import android.graphics.Matrix; -import android.graphics.Paint; -import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.Shader; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; -import android.view.animation.DecelerateInterpolator; - -import androidx.annotation.Nullable; - -import com.mogo.commons.AbsMogoApplication; -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.shuttle.R; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; - -import me.jessyan.autosize.AutoSizeConfig; -import me.jessyan.autosize.utils.AutoSizeUtils; - -/** - * 滑块滑动面板 - * - * @author tongchenfei - */ -public class SlidePanelView extends View { - private static final String TAG = "SlidePanelView"; - - public SlidePanelView(Context context) { - this(context, null); - } - - public SlidePanelView(Context context, @Nullable AttributeSet attrs) { - this(context, attrs, 0); - } - - public SlidePanelView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - TypedArray mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.SlidePanelView); - textSize = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_textSize, textSize); - BLOCK_START_X = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_X, BLOCK_START_X); - BLOCK_START_Y = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_Y, BLOCK_START_Y); - NORMAL_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_LEFT, NORMAL_TEXT_MARGIN_LEFT); - NORMAL_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_RIGHT, NORMAL_TEXT_MARGIN_RIGHT); - SHORT_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_LEFT, SHORT_TEXT_MARGIN_LEFT); - SHORT_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_RIGHT, SHORT_TEXT_MARGIN_RIGHT); - init(); - } - - private final Paint bgPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Paint blockPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - - private static int textSize = 40; - private static int BLOCK_START_X = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15); - private static int BLOCK_START_Y = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15); - private static int NORMAL_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),40); - private static int NORMAL_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60); - private static int SHORT_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60);; - private static int SHORT_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),70);; - - private int textMarginLeft = NORMAL_TEXT_MARGIN_LEFT; - private int textMarginRight = NORMAL_TEXT_MARGIN_RIGHT; - - private OnSlidePanelMoveToEndListener moveToEndListener; - - private int blockWidth = 0; - private int blockOffset = 0; - - private float lastX; - private boolean isToEnd = false; - - private static final String STRING_SLIDE_TO_RIGHT = "向右滑动"; - private RectF bgRectF; - private Bitmap bmBlock; - - private final Matrix gradientMatrix = new Matrix(); - private float matrixTranslate; - private final Rect textRect = new Rect(); - private LinearGradient textGradient; - - private ObjectAnimator matrixAnim; - - private String blockText = STRING_SLIDE_TO_RIGHT; - private final Paint.FontMetrics blockTextMetrics = new Paint.FontMetrics(); - - private static final int GRADIENT_OFFSET = 200; - - public void setOnSlidePanelMoveToEndListener(OnSlidePanelMoveToEndListener moveToEndListener) { - this.moveToEndListener = moveToEndListener; - } - - private void setBlockOffset(int blockOffset) { - this.blockOffset = blockOffset; - invalidate(); - } - - private void setMatrixTranslate(float matrixTranslate) { - this.matrixTranslate = matrixTranslate; - invalidate(); - } - - public void setText(String text) { - this.blockText = text; - requestLayout(); - invalidate(); - } - - private void init() { - bgRectF = new RectF(0, 0, 0, 0); - bgPaint.setColor(Color.parseColor("#CC0F1325")); - bgPaint.setStyle(Paint.Style.FILL); - - textPaint.setStyle(Paint.Style.FILL); - textPaint.setTextSize(textSize); - textPaint.setTextAlign(Paint.Align.LEFT); - textGradient = new LinearGradient(-GRADIENT_OFFSET, 0, 0, 0, new int[]{0x33ffffff, 0xffffffff, 0x33ffffff}, null, Shader.TileMode.CLAMP); - textGradient.setLocalMatrix(gradientMatrix); - textPaint.setShader(textGradient); - textPaint.getFontMetrics(blockTextMetrics); - decodeImage(); - } - - private void decodeImage(){ - ThreadUtils.getCpuPool().execute(() -> { - int size = AutoSizeUtils.dp2px(getContext(), 120); - BitmapFactory.Options opts = new BitmapFactory.Options(); - opts.inDensity = (int) AutoSizeConfig.getInstance().getInitDensity(); - bmBlock = BitmapFactory.decodeResource(getResources(), R.drawable.bus_base_slide_block,opts); - bmBlock = Bitmap.createScaledBitmap(bmBlock, size, size, true); - blockWidth = bmBlock.getWidth(); - UiThreadHandler.post(this::requestLayout,UiThreadHandler.MODE.QUEUE); - }); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int widthMode = MeasureSpec.getMode(widthMeasureSpec); - int heightMode = MeasureSpec.getMode(heightMeasureSpec); - int widthSize; - int heightSize; - - if (blockText.length() < 5) { - textMarginLeft = SHORT_TEXT_MARGIN_LEFT; - textMarginRight = SHORT_TEXT_MARGIN_RIGHT; - } else { - textMarginLeft = NORMAL_TEXT_MARGIN_LEFT; - textMarginRight = NORMAL_TEXT_MARGIN_RIGHT; - } - if(bmBlock!=null) { - if (widthMode == MeasureSpec.AT_MOST) { - // 宽度根据图片大小,字符串长度,各种间隔确定 - // 高度根据图片大小和上下间隔确定 - textPaint.getTextBounds(blockText, 0, blockText.length(), textRect); - widthSize = BLOCK_START_X * 2 + bmBlock.getWidth() + textMarginLeft + textMarginRight + textRect.width(); - heightSize = BLOCK_START_Y * 2 + bmBlock.getHeight(); - widthMeasureSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode); - heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode); - } - } - - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - - private float textOffset = 0; - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - super.onSizeChanged(w, h, oldw, oldh); - if (bgRectF != null){ - bgRectF.left = 0; - bgRectF.top = 0; - bgRectF.right = w; - bgRectF.bottom = h; - } - - if (matrixAnim != null) { - matrixAnim.cancel(); - } - textOffset = (getHeight() - blockTextMetrics.ascent - blockTextMetrics.descent) / 2; - matrixAnim = ObjectAnimator.ofFloat(this, "matrixTranslate", 0, w + GRADIENT_OFFSET).setDuration(2000); - matrixAnim.setRepeatCount(ValueAnimator.INFINITE); - matrixAnim.start(); - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - if (matrixAnim != null) { - matrixAnim.start(); - } - } - - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (matrixAnim != null) { - matrixAnim.cancel(); - } - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - float x = event.getX(); - float y = event.getY(); - - switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: - if (x > BLOCK_START_X + blockOffset && x < blockWidth + BLOCK_START_X + blockOffset && y > BLOCK_START_Y && y < getHeight() - BLOCK_START_Y) { - isToEnd = false; - lastX = x; - } - break; - case MotionEvent.ACTION_MOVE: - if (lastX != 0) { - blockOffset = (int) (x - lastX); - if (blockOffset < 0) { - blockOffset = 0; - } - if (blockOffset + BLOCK_START_X + blockWidth > getWidth()) { - // 超出右边界 - blockOffset = getWidth() - BLOCK_START_X - blockWidth; - if (!isToEnd) { - isToEnd = true; - if (moveToEndListener != null) { - moveToEndListener.moveToEnd(); - } - startBlockBackAnim(); - } - } - invalidate(); - } - break; - case MotionEvent.ACTION_UP: - // 执行滑块回归动画 - if (!isToEnd) { - startBlockBackAnim(); - } - break; - default: - break; - } - - return true; - } - - private void startBlockBackAnim() { - ObjectAnimator blockBackanimator = ObjectAnimator.ofInt(this, "blockOffset", blockOffset, 0); - blockBackanimator.setInterpolator(new DecelerateInterpolator()); - blockBackanimator.setDuration(1000 * blockOffset / getWidth()); - blockBackanimator.start(); - lastX = 0; - } - - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - // 画背景 - canvas.drawRoundRect(bgRectF, (float) getHeight() / 2.0f, (float) getHeight() / 2.0f, bgPaint); - // 画文字 - gradientMatrix.setTranslate(matrixTranslate, 0); - textGradient.setLocalMatrix(gradientMatrix); - canvas.save(); - canvas.drawText(blockText, (float) (blockWidth + BLOCK_START_X + textMarginLeft), (float) textOffset, textPaint); - canvas.restore(); - if (bmBlock != null) { - if(bmBlock.getByteCount()>=5*1024*1024){ - OchChainLogManager.writeChainLog("崩溃兜底策略", - "图片大小监听"+ ConvertUtils.byte2FitMemorySize(bmBlock.getByteCount()),true,OchChainLogManager.EVENT_KEY_INFE_ERROR); - bmBlock.recycle(); - bmBlock = null; - blockWidth = 0; - decodeImage(); - }else { - // 画滑块 - canvas.drawBitmap(bmBlock, (float) (BLOCK_START_X + blockOffset), (float) BLOCK_START_Y, blockPaint); - } - } - - } - - public interface OnSlidePanelMoveToEndListener { - /** - * 滑块滑到了末尾 - */ - void moveToEnd(); - } -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java deleted file mode 100644 index 2b0fdfcf6d..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.mogo.och.shuttle.view; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.DashPathEffect; -import android.graphics.LinearGradient; -import android.graphics.Paint; -import android.graphics.Path; -import android.graphics.Shader; -import android.util.AttributeSet; -import android.view.View; - -import androidx.annotation.Nullable; - -/** - * 垂直虚线 - * - * @author tongchenfei - */ -public class VerticalDashLineView extends View { - public VerticalDashLineView(Context context) { - this(context,null); - } - - public VerticalDashLineView(Context context, @Nullable AttributeSet attrs) { - this(context, attrs,0); - } - - public VerticalDashLineView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(); - } - - private final Paint linePaint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Path dashPath = new Path(); - - private void init(){ - linePaint.setColor(Color.GREEN); - linePaint.setStyle(Paint.Style.STROKE); - linePaint.setStrokeWidth(2); - linePaint.setPathEffect(new DashPathEffect(new float[]{5, 5}, 0)); - } - - public void setGradient(int startColor, int endColor) { - LinearGradient linearGradient = new LinearGradient(0, 0, getWidth(), getHeight(), startColor, endColor, Shader.TileMode.CLAMP); - linePaint.setShader(linearGradient); - invalidate(); - } - - public void setColor(int color) { - linePaint.setShader(null); - linePaint.setColor(color); - invalidate(); - } - - @Override - protected void onDraw(Canvas canvas) { - dashPath.reset(); - dashPath.moveTo((float) getWidth()/2, 0); - dashPath.lineTo((float) getWidth()/2,getHeight()); - canvas.drawPath(dashPath,linePaint); - } -} diff --git a/OCH/shuttle/driver/src/main/res/color/bus_autopilot_text_color_selector.xml b/OCH/shuttle/driver/src/main/res/color/bus_autopilot_text_color_selector.xml deleted file mode 100644 index 15f6897792..0000000000 --- a/OCH/shuttle/driver/src/main/res/color/bus_autopilot_text_color_selector.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png deleted file mode 100644 index 75c26c3d71..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png deleted file mode 100644 index 927296d690..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png deleted file mode 100644 index ed7b293b90..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png deleted file mode 100644 index 170f254cd1..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png deleted file mode 100644 index 186001352c..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png deleted file mode 100644 index be978145dc..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png deleted file mode 100644 index 8a065b66dd..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png deleted file mode 100644 index 4ed57a0e30..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png deleted file mode 100644 index e0bb24c526..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png deleted file mode 100644 index bc9fed952d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png deleted file mode 100644 index 8732508ded..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png deleted file mode 100644 index bae01408fd..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png deleted file mode 100755 index 3166d20e37..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png deleted file mode 100755 index 09a9c252da..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png deleted file mode 100644 index b32f0693a6..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png deleted file mode 100644 index f21a1081f1..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png deleted file mode 100755 index fc20dca73c..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png deleted file mode 100644 index a720a532ea..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png deleted file mode 100644 index 3c339efde4..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png deleted file mode 100644 index c6717d2518..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png deleted file mode 100644 index cc2b18083d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png deleted file mode 100644 index 3f05565483..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png deleted file mode 100644 index ba41bf3a53..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png deleted file mode 100644 index 370b61de38..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png deleted file mode 100755 index cf3e5a3778..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png deleted file mode 100755 index bdc2725468..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png deleted file mode 100644 index 0114bb4f2b..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png deleted file mode 100644 index 0c8988acb3..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png deleted file mode 100755 index 8acf113151..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png deleted file mode 100755 index 6da7b81fe4..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png deleted file mode 100755 index e98738b192..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png deleted file mode 100755 index d3e0107c02..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png deleted file mode 100755 index 026c36086f..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png deleted file mode 100755 index 06bebc7013..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png deleted file mode 100755 index f4f9b2bca2..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png deleted file mode 100755 index 22f88301f9..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png deleted file mode 100755 index c0a978fc2b..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png deleted file mode 100755 index ebacf3a11a..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png deleted file mode 100755 index fc20dca73c..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png deleted file mode 100755 index dc4c4f6f0d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png deleted file mode 100755 index ed3b871338..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png deleted file mode 100755 index d43e34bb26..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png deleted file mode 100644 index 04580a8f0d..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png deleted file mode 100644 index 0e61996d3f..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png deleted file mode 100644 index 78bfa2687f..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png deleted file mode 100755 index af32c20cb5..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png and /dev/null differ 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 deleted file mode 100755 index de9b6c49b7..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_write_off_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/ai_collect_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/ai_collect_selector.xml deleted file mode 100755 index a1211f3c47..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/ai_collect_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bad_case_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bad_case_selector.xml deleted file mode 100755 index bc47ce95d7..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bad_case_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml b/OCH/shuttle/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml deleted file mode 100644 index e0b90b9c55..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file 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 deleted file mode 100644 index 47ca8c7d4b..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml deleted file mode 100644 index 94555d78cc..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_checkbox_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_checkbox_selector.xml deleted file mode 100644 index d95e931160..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_checkbox_selector.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml deleted file mode 100644 index b00fbd8bd6..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml deleted file mode 100644 index ee555aae15..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml deleted file mode 100755 index 3a3dc6a292..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml deleted file mode 100644 index 21b39b7e37..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_bkg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_panel_bkg.xml deleted file mode 100644 index 69539ed40f..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_bkg.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml deleted file mode 100644 index 203971340e..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml deleted file mode 100644 index 272e718cce..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml deleted file mode 100644 index e5faafb27b..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml deleted file mode 100644 index ee8088637c..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml deleted file mode 100644 index e2b482ee5f..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_station_green_dash_line.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_station_green_dash_line.xml deleted file mode 100644 index fe46ef2228..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_station_green_dash_line.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_station_v_green_dash.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_station_v_green_dash.xml deleted file mode 100644 index 376e0a472c..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_station_v_green_dash.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn.xml deleted file mode 100644 index 8b066b0ce8..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml deleted file mode 100644 index e94992d507..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_bg.xml deleted file mode 100644 index b34021d977..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_bg.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_task_time_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_task_time_bg.xml deleted file mode 100644 index 917f3932fe..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_task_time_bg.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml deleted file mode 100644 index 2ef90e60f7..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml deleted file mode 100644 index dea7a88bb6..0000000000 --- a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file 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 deleted file mode 100644 index 11bbbc066a..0000000000 --- a/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -