diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt index 3e73f29436..5be668b7ac 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt @@ -50,6 +50,7 @@ object LineManager : CallerBase() { function.invoke(start,end) } } + OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}") } fun getStationsWithContrai(function: (start:BusStationBean,end:BusStationBean,contrai: ContraiInfo) -> Unit){ startStation?.let { start-> @@ -59,6 +60,7 @@ object LineManager : CallerBase() { } } } + OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}__contraiInfo:${contraiInfo}") } fun getStationsWithLine(function: (start:BusStationBean,end:BusStationBean,lineInfo: LineInfo) -> Unit){ @@ -69,6 +71,7 @@ object LineManager : CallerBase() { } } } + OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}__lineInfos:${lineInfos}") } fun getStationsWithLineAndContrai(function: (start:BusStationBean,end:BusStationBean,lineInfo: LineInfo,contrai: ContraiInfo) -> Unit){ startStation?.let { start-> @@ -80,12 +83,14 @@ object LineManager : CallerBase() { } } } + OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}__lineInfos:${lineInfos}__contraiInfo:${contraiInfo}") } fun getStartStation(function: (start:BusStationBean) -> Unit){ startStation?.let { start -> function.invoke(start) } + OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}") } @JvmStatic diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt index 8ab46c8ee7..3fd5f7993e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewModel.kt @@ -32,8 +32,8 @@ class VisualViewModel : ViewModel(), } override fun onSceneChanged(scene: Scene) { - if (scene.isCanSwitch) {// 可切换 - when (scene.angle) { + if (scene.isCanSwitch()) {// 可切换 + when (scene.getVisualAngleMode()) { VisualAngleMode.MODE_MEDIUM_SIGHT -> { UiThreadHandler.post({ this.viewCallback?.setViewShow(true) diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt index a0bd15cc00..150408add5 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -58,7 +58,6 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { private fun showFragment() { val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager - injectStatusBar() val fragment = if (LoginStatusManager.isLogin()) { val fragment = getFragment() LoginStatusManager.resetFragment() @@ -70,6 +69,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { commonService?.resetFragment() LoginStatusManager.getFragment() } + injectStatusBar() d(TAG, "切换 fragment:${fragment}") @@ -199,7 +199,6 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { } override fun onBusinessChangeDebug(businessEnum: BusinessEnum) { - injectStatusBar() if (businessEnum == BusinessEnum.None) { CallerHmiManager.hideToolsView() ToggleDebugView.toggleDebugView.dismiss() @@ -224,6 +223,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { back.commitAllowingStateLoss() } } + injectStatusBar() } private fun injectStatusBar() { @@ -235,10 +235,16 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { contentView.fitsSystemWindows = false decorView.clipToPadding = false var statusBarView = decorView.findViewWithTag("status_bar") - if(statusBarView!=null){ - return - } val statusBar = commonService?.getStatusBarView(it) + if(statusBarView==null){ + + }else{ + if(statusBar == statusBarView||statusBar==null){ + return + }else{ + removeStatusBar() + } + } statusBarView = statusBar ?: StatusBarView(it) statusBarView.tag = "status_bar" val statusBarLP = FrameLayout.LayoutParams( diff --git a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/2.json b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/2.json new file mode 100644 index 0000000000..11a83b0e97 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/2.json @@ -0,0 +1,577 @@ +{ + "formatVersion": 1, + "database": { + "version": 2, + "identityHash": "66522c4500a3e7f83bfcabf98096c6bd", + "entities": [ + { + "tableName": "contrail_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `csv_file_url` TEXT, `csv_file_md5` TEXT, `txt_file_url` TEXT, `txt_file_md5` TEXT, `contrail_save_time` INTEGER, `md5` TEXT)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "csvFileUrl", + "columnName": "csv_file_url", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "csvFileMd5", + "columnName": "csv_file_md5", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "txtFileUrl", + "columnName": "txt_file_url", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "txtFileMd5", + "columnName": "txt_file_md5", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "contrailSaveTime", + "columnName": "contrail_save_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "md5", + "columnName": "md5", + "affinity": "TEXT", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_contrail_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + }, + { + "name": "index_contrail_data_table_md5", + "unique": false, + "columnNames": [ + "md5" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_md5` ON `${TABLE_NAME}` (`md5`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "line_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `line_name` TEXT, `end_station_name` TEXT, `line_get_time` INTEGER NOT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineName", + "columnName": "line_name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "endStationName", + "columnName": "end_station_name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "linegetTime", + "columnName": "line_get_time", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_line_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_line_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "site_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `site_id` INTEGER, `line_id` INTEGER, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `introduction` TEXT, `is_play_tts` INTEGER, `md5` TEXT)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "siteId", + "columnName": "site_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "nameKr", + "columnName": "name_kr", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "seq", + "columnName": "seq", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "gcjLon", + "columnName": "gcj_lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "gcjLat", + "columnName": "gcj_lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lon", + "columnName": "lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lat", + "columnName": "lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "introduction", + "columnName": "introduction", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "isPlayTts", + "columnName": "is_play_tts", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "md5", + "columnName": "md5", + "affinity": "TEXT", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_site_data_table_site_id", + "unique": false, + "columnNames": [ + "site_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_site_id` ON `${TABLE_NAME}` (`site_id`)" + }, + { + "name": "index_site_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "task_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `task_data` INTEGER, `task_start_time` INTEGER, `start_time` INTEGER, `end_time` INTEGER, `task_get_time` INTEGER NOT NULL, `status` INTEGER)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "taskId", + "columnName": "task_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskDate", + "columnName": "task_data", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskStartTime", + "columnName": "task_start_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "startTime", + "columnName": "start_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "endtime", + "columnName": "end_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskgetTime", + "columnName": "task_get_time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "status", + "columnName": "status", + "affinity": "INTEGER", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_task_data_table_task_id", + "unique": false, + "columnNames": [ + "task_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_task_id` ON `${TABLE_NAME}` (`task_id`)" + }, + { + "name": "index_task_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "used_task_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "taskId", + "columnName": "task_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "siteId", + "columnName": "site_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineName", + "columnName": "line_name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "nameKr", + "columnName": "name_kr", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "seq", + "columnName": "seq", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "gcjLon", + "columnName": "gcj_lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "gcjLat", + "columnName": "gcj_lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lon", + "columnName": "lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lat", + "columnName": "lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "drivingStatus", + "columnName": "driving_status", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "leaving", + "columnName": "leaving", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "arrivedTime", + "columnName": "arrived_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "leaveTime", + "columnName": "leave_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "introduction", + "columnName": "introduction", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "isPlayTts", + "columnName": "is_play_tts", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "eventSaveTime", + "columnName": "event_save_time", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [], + "foreignKeys": [] + }, + { + "tableName": "event_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `lineId` INTEGER, `lineName` TEXT, `task_id` INTEGER, `task_start_time` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `driver_id` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "eventType", + "columnName": "event_type", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "lineId", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineName", + "columnName": "lineName", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "taskId", + "columnName": "task_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskStartTime", + "columnName": "task_start_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "businessTime", + "columnName": "business_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "writeVersion", + "columnName": "write_version", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "siteId", + "columnName": "site_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "seq", + "columnName": "seq", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "driverId", + "columnName": "driver_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "eventSaveTime", + "columnName": "event_save_time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "updateStatus", + "columnName": "update_status", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_event_data_table_event_save_time", + "unique": false, + "columnNames": [ + "event_save_time" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_event_data_table_event_save_time` ON `${TABLE_NAME}` (`event_save_time`)" + } + ], + "foreignKeys": [] + } + ], + "views": [], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '66522c4500a3e7f83bfcabf98096c6bd')" + ] + } +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt index fa6106075b..1ea029ba2e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt @@ -18,15 +18,9 @@ data class ShuttleEventRequest(val requestId: String, val sn: String, val busine val md5Hex = DigestUtils.md5Hex(waitUpdateEvent.toString()) val eventList4Request = mutableListOf() var tempEvent:Event?=null - var driverId = 0L - LoginStatusManager.getLoginInfo()?.let { - if(it.driverId>0){ - driverId = it.driverId - } - } waitUpdateEvent.forEach { tempEvent = Event(it.eventType, - EventData(it.taskId,it.businessTime,it.writeVersion,it.siteId,it.seq,driverId) + EventData(it.taskId,it.businessTime,it.writeVersion,it.siteId,it.seq,it.driverId) ) eventList4Request.add(tempEvent!!) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/MyDataBase.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/MyDataBase.kt index 7d0635d452..f525b824dc 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/MyDataBase.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/MyDataBase.kt @@ -4,6 +4,8 @@ import android.os.Environment import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase import androidx.sqlite.db.SupportSQLiteOpenHelper import com.mogo.commons.AbsMogoApplication import com.mogo.och.weaknet.database.bean.ContrailDataBean @@ -24,7 +26,7 @@ import java.io.File //entities指定该数据库有哪些表,多张表就逗号分隔 //version指定数据库版本号,升级时需要用到 //数据库继承自RoomDatabase -@Database(entities = [ContrailDataBean::class, LineDataBean::class, SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class, EventDataBean::class], version = 1) +@Database(entities = [ContrailDataBean::class, LineDataBean::class, SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class, EventDataBean::class], version = 2) abstract class MyDataBase : RoomDatabase() { @@ -33,6 +35,7 @@ abstract class MyDataBase : RoomDatabase() { val instance: MyDataBase = Room.databaseBuilder( AbsMogoApplication.getApp()!!.applicationContext, MyDataBase::class.java, ROOT_PATH+DATABASE_NAME ) + .addMigrations(Migration1_2(1,2)) .build() } @@ -56,4 +59,10 @@ abstract class MyDataBase : RoomDatabase() { //结合单例模式完成数据库实例创建 get() = SingleTon.instance } + + class Migration1_2(val startVersion:Int,val endVersion:Int): Migration(startVersion,endVersion) { + override fun migrate(database: SupportSQLiteDatabase) { + database.execSQL("ALTER TABLE ${EventDataBean.evnetDataTable} ADD COLUMN driver_id INTEGER"); + } + } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt index 73b42c4b28..74f548ee28 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt @@ -67,6 +67,12 @@ data class EventDataBean( @ColumnInfo(name = "seq", typeAffinity = ColumnInfo.INTEGER) var seq: Int? = null, + /** + * 站点排序 + */ + @ColumnInfo(name = "driver_id", typeAffinity = ColumnInfo.INTEGER) + var driverId: Long? = null, + /** * 存储此条数据时时间戳 */ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt index 5b1161917b..a1c26b39f6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt @@ -1,5 +1,6 @@ package com.mogo.och.weaknet.database.repository +import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.weaknet.database.MyDataBase @@ -27,6 +28,7 @@ object EventRepository { event.taskStartTime = taskStartTime event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() + event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1 event.siteId = 0L event.seq = 0 DbThreadUtils.runInIoThread { @@ -52,6 +54,7 @@ object EventRepository { event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() event.siteId = siteId + event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1 event.seq = seq DbThreadUtils.runInIoThread { eventDataDao?.insert(event) @@ -75,6 +78,7 @@ object EventRepository { event.lineName = lineName event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() + event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L event.siteId = siteId event.seq = seq DbThreadUtils.runInIoThread { @@ -92,6 +96,7 @@ object EventRepository { event.taskStartTime = taskStartTime event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() + event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L event.siteId = 0L event.seq = 0 DbThreadUtils.runInIoThread { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index 09299e9c12..a0ae00d32f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -362,6 +362,7 @@ object OrderModel { */ private fun startAutopilot(isRestart: Boolean) { + val temp = initAutopilotControlParameters() /** * 存在Session */ @@ -767,7 +768,7 @@ object OrderModel { if(parameters==null){ ToastUtils.showShort("未设置起始或终点站点") } - return null + return parameters } fun setTrajectoryStation(isClean:Boolean) { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt index 6096141c59..5c94dda2b3 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt @@ -54,8 +54,6 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running } private fun initView(){ - clLayout.setOnClickListener { - } //关闭BadCase管理窗口 ivTaskRunningClose.setOnClickListener { clickListener?.onClose() diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt index 74a1a957b9..00ca696beb 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/debug/DebugViewModel.kt @@ -33,8 +33,8 @@ class DebugViewModel : ViewModel(), } override fun onSceneChanged(scene: Scene) { - if (scene.isCanSwitch) {// 可切换 - when (scene.angle) { + if (scene.isCanSwitch()) {// 可切换 + when (scene.getVisualAngleMode()) { VisualAngleMode.MODE_MEDIUM_SIGHT -> { UiThreadHandler.post({ this.viewCallback?.setViewShow(true) @@ -76,9 +76,9 @@ class DebugViewModel : ViewModel(), CallerVisualAngleManager.getCurrentScene().let { val default = Default() - when (it.angle) { + when (it.getVisualAngleMode()) { VisualAngleMode.MODE_MEDIUM_SIGHT -> { - if(default.angle==VisualAngleMode.MODE_MEDIUM_SIGHT){ + if(default.getVisualAngleMode()==VisualAngleMode.MODE_MEDIUM_SIGHT){ CallerVisualAngleManager.changeScene(LongSight()) } } @@ -87,7 +87,7 @@ class DebugViewModel : ViewModel(), CallerVisualAngleManager.changeScene(Default()) } VisualAngleMode.MAP_STYLE_VR_SKY_BOX -> { - if(default.angle==VisualAngleMode.MAP_STYLE_VR_SKY_BOX){ + if(default.getVisualAngleMode()==VisualAngleMode.MAP_STYLE_VR_SKY_BOX){ CallerVisualAngleManager.changeScene(LongSight()) } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index 4889b82e34..e43a5babc0 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -130,7 +130,7 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis CallerFsm2024ListenerManager.addListener(TAG,this) CallerAutopilotStatisticsListenerManager.addListener(TAG,this) CallerOrderListenerManager.addListener(TAG,this) - CallerAutoPilotStatusListenerManager.addListener(TAG,this) + CallerAutoPilotStatusListenerManager.addListener("RecordViewManager",this) CallerChassisStatesListenerManager.addListener(TAG,this) } checkDelete(context) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index d904d799ce..0a22da8fa6 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -152,7 +152,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { override fun changeScene(scene: Scene) { prevJob?.safeCancel() scope.launch { - val delay = scene.delay + val delay = scene.getDelay() if (delay > 0) { delay(delay) } @@ -165,8 +165,8 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { verifyPrior = false } if (verifyPrior) { - val lastPriority = prev?.priority ?: Int.MIN_VALUE - val currentPriority = scene.priority + val lastPriority = prev?.getPriority() ?: Int.MIN_VALUE + val currentPriority = scene.getPriority() if (lastPriority > currentPriority) { return@launch } @@ -182,18 +182,19 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { } private fun doChangeAngle(target: Scene) { - val angle = target.angle + val angle = target.getVisualAngleMode() CallerMapUIServiceManager.getMapUIController()?.also { Log.d(TAG, "--- doChangeAngle ---: $target") val prev = prevScene.get() try { - if (!target.isCanTouch) { + if (!target.isCanTouch()) { CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(false) } else { CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true) } val screenToOriginDis = target.getScreenToOriginDis() when(screenToOriginDis) { + ScreenToOriginDis.NONE -> {} DEFAULT -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(4.0f) UP -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(3.0f) DOWN -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(5.0f) @@ -206,9 +207,9 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { notifyChanged(target) } prevScene.set(target) - if (target.displayThreshold > 0) { + if (target.getDisplayThreshold() > 0) { scope.launch { - delay(target.displayThreshold) + delay(target.getDisplayThreshold()) doChangeAngle(Default()) } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt index 4b4227754f..785c3f12c1 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt @@ -1,8 +1,11 @@ package com.mogo.eagle.core.function.angle.scenes +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.map.angle.Scene import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.DOWN +import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.NONE +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS_NEW import java.util.concurrent.TimeUnit @@ -10,28 +13,32 @@ import java.util.concurrent.TimeUnit /** * 十字路口 */ -class CrossRoad(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene { - override val angle: VisualAngleMode - get() = MAP_STYLE_VR_ANGLE_CROSS_NEW +class CrossRoad(private val delayTime: Long = 0, unit: TimeUnit = TimeUnit.SECONDS) : + Scene(delayTime, unit) { - override val priority: Int = 0 - override val displayThreshold: Long - get() = -1 + override fun getVisualAngleMode(): VisualAngleMode { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + return VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS + } + return MAP_STYLE_VR_ANGLE_CROSS_NEW + } - override val delay: Long - get() = unit.toMillis(delayTime) + override fun isCanTouch(): Boolean { + return false + } - override val isCanSwitch: Boolean - get() = false - - override val isCanTouch: Boolean - get() = false + override fun isCanSwitch(): Boolean { + return false + } override fun toString(): String { - return "CrossRoad(delayTime=${delayTime}, priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority})" + return "CrossRoad(delayTime=${delayTime}, priority=${getPriority()}, displayThreshold: ${getDisplayThreshold()}, priority=${getPriority()})" } override fun getScreenToOriginDis(): ScreenToOriginDis { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + return NONE + } return DOWN } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt index f6f16ba578..1d2ce42466 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt @@ -1,37 +1,29 @@ package com.mogo.eagle.core.function.angle.scenes +import android.util.Log +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.map.angle.Scene import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.MODE_MEDIUM_SIGHT import java.util.concurrent.TimeUnit /** * 默认视图 - * @param delay: 表示多少稍后,默认值为2 - * @param unit: 时间单位,默认为秒 */ +class Default(val delayTime: Long = 0, val unit: TimeUnit = TimeUnit.SECONDS, val forceClosePrev: Boolean = false): Scene(delayTime, unit) { -class Default(val delayTime: Long = 0, val unit: TimeUnit = TimeUnit.SECONDS, val forceClosePrev: Boolean = false): Scene { - - override val angle: VisualAngleMode - get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT - - override val priority: Int = 0 - - override val displayThreshold: Long - get() = 0 - - override val delay: Long - get() = unit.toMillis(delayTime) - - override val isCanSwitch: Boolean - get() = true - - override val isCanTouch: Boolean - get() = true + override fun getVisualAngleMode(): VisualAngleMode { + Log.d("Default", "---- 1 --------------") + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + Log.d("Default", "---- 2 --------------") + return VisualAngleMode.MAP_STYLE_VR_ERHAI_B2 + } + return CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT + } override fun toString(): String { - return "Default(delay=$delay, unit=$unit, angle=$angle, priority=$priority, closePrevious=$forceClosePrev)" + return "Default(delay=${getDelay()}, unit=$unit, angle=${getVisualAngleMode()}, priority=${getPriority()}, closePrevious=$forceClosePrev)" } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt index a26ac58437..3189dcd1e7 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt @@ -5,21 +5,13 @@ import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.MODE_LONG_SIGHT import java.util.concurrent.TimeUnit -class LongSight(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene { +class LongSight(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene(delayTime, unit) { - override val angle: VisualAngleMode - get() = MODE_LONG_SIGHT - override val priority: Int - get() = 0 - override val displayThreshold: Long - get() = -1 + override fun getVisualAngleMode(): VisualAngleMode { + return MODE_LONG_SIGHT + } - override val delay: Long - get() = unit.toMillis(delayTime) - - override val isCanSwitch: Boolean - get() = true - - override val isCanTouch: Boolean - get() = true + override fun toString(): String { + return "LongSight(delayTime=${delayTime}, priority=${getPriority()}, displayThreshold: ${getDisplayThreshold()}, priority=${getPriority()})" + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt index 5244428bac..b2b97f9b79 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt @@ -1,33 +1,27 @@ package com.mogo.eagle.core.function.angle.scenes +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.map.angle.Scene import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.map.uicontroller.VisualAngleMode +import com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ERHAI_B2 import com.mogo.map.uicontroller.VisualAngleMode.MODE_MEDIUM_SIGHT import java.util.concurrent.TimeUnit /** * 道路事件 */ -class RoadEvent(private val delayTime: Long, private val unit: TimeUnit): Scene { +class RoadEvent(delayTime: Long, unit: TimeUnit): Scene(delayTime, unit) { - override val angle: VisualAngleMode = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT - - override val priority: Int = 0 - - override val displayThreshold: Long - get() = -1 - - override val delay: Long - get() = unit.toMillis(delayTime) - - override fun toString(): String { - return "RoadEvent(priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority}" + override fun getVisualAngleMode(): VisualAngleMode { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + return MAP_STYLE_VR_ERHAI_B2 + } + return CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT } - override val isCanSwitch: Boolean - get() = true - - override val isCanTouch: Boolean - get() = true + override fun toString(): String { + return "RoadEvent(mode: ${getVisualAngleMode()}, priority=${getPriority()}, displayThreshold: ${getDisplayThreshold()}," + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Roma.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Roma.kt index fa15d5108e..640d5bf2eb 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Roma.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Roma.kt @@ -8,18 +8,21 @@ import java.util.concurrent.TimeUnit /** * 漫游场景 */ -class Roma(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): Scene { +class Roma(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): Scene(delayTime, unit) { - override val angle: VisualAngleMode - get() = MAP_STYLE_VR_ROMA - override val priority: Int - get() = 1 - override val displayThreshold: Long - get() = -1 - override val delay: Long - get() = unit.toMillis(delayTime) - override val isCanSwitch: Boolean - get() = false - override val isCanTouch: Boolean - get() = false + override fun getVisualAngleMode(): VisualAngleMode { + return MAP_STYLE_VR_ROMA + } + + override fun isCanTouch(): Boolean { + return false + } + + override fun isCanSwitch(): Boolean { + return false + } + + override fun getPriority(): Int { + return 1 + } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt index 0e616f316f..0221013516 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt @@ -2,23 +2,62 @@ package com.mogo.eagle.core.function.api.map.angle import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.DEFAULT import com.mogo.map.uicontroller.* - -interface IAttach { - val angle: VisualAngleMode - val priority: Int - val displayThreshold: Long //最大展示时长 > 0; 表示最长展示多长时间, -1 表示,一直展示,直到触发默认视角, 0: 默认视角专用值, - val delay: Long // 延迟多长时间切换 - val isCanSwitch: Boolean // 是否可切换 - val isCanTouch: Boolean // 是否响应地图触摸事件 - - fun getScreenToOriginDis(): ScreenToOriginDis = DEFAULT -} +import java.util.concurrent.TimeUnit enum class ScreenToOriginDis { - DEFAULT, - UP, - DOWN + NONE, + DEFAULT, + UP, + DOWN } -interface Scene: IAttach +abstract class Scene(private val delay: Long, private val unit: TimeUnit = TimeUnit.SECONDS) { + + /** + * 获取当前视角场景的视角类型,此返回值要与地图支持的视角类型匹配 + */ + abstract fun getVisualAngleMode(): VisualAngleMode + + /** + * 当前视角场景的优先级,优先级越高,表示可以打断优先级低的视角场景 + */ + open fun getPriority(): Int = 0 + + /** + * 单位:(毫秒) + * 表示多长时间之后切换到当前视角场景 + */ + final fun getDelay(): Long = unit.toMillis(delay) + + /** + * 单位:(毫秒) + * 最大展示时长 > 0; 表示最长展示多长时间, -1 表示,一直展示,直到触发默认视角, 0: 默认视角专用值, + * @return + * 大于0: 此场景对应的视角展示指定时长后,自动切换到默认视角场景 + * 小于0: 一直展示此场景的视角,直到比此场景优先级:[getPriority]更高的场景触发时,才会终止 + */ + open fun getDisplayThreshold(): Long = 0 + + /** + * 用于业务层视角切换按钮的使能状态 + * @return true: 可以切换; false:不可以切换 + */ + open fun isCanSwitch(): Boolean = true + + /** + * 用于控制高精地图控件(MapAutoView)是否禁掉所有手势 + * @return true: 响应地图控件的触摸事件及手势;false:不响应地图控件的触摸事件及手势 + */ + open fun isCanTouch(): Boolean = true + + /** + * 返回自车相对于地图控件的位置 + * @return + * 1. [ScreenToOriginDis.NONE]: 不设置 + * 2. [ScreenToOriginDis.DEFAULT]: 默认的位置 + * 3. [ScreenToOriginDis.UP]: 偏上 + * 4. [ScreenToOriginDis.DOWN]: 偏下 + */ + open fun getScreenToOriginDis(): ScreenToOriginDis = DEFAULT +} diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt b/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt index 19a163687f..7dea29de89 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt @@ -1,6 +1,9 @@ package com.mogo.commons.utils import android.content.Context +import android.os.Handler +import android.os.Looper +import android.util.Log import androidx.annotation.Keep import androidx.collection.ArrayMap import com.elegant.analytics.Analytics @@ -15,7 +18,10 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.AppUtils import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.eagle.core.utilcode.util.Utils import org.json.JSONObject +import java.util.TimerTask /** * 埋点&数据统计 管理 @@ -23,6 +29,23 @@ import org.json.JSONObject */ object MogoAnalyticUtils { + var network_is_available = false + + private val handler = Handler(Looper.getMainLooper()) + private val runnable = object : Runnable { + override fun run() { + NetworkUtils.isAvailableByPingAsync("49.233.99.26", object : Utils.Consumer { + override fun accept(isAvailable: Boolean) { + network_is_available = isAvailable + } + }) + // 这里执行你的任务 + // 重新安排下一个任务 + handler.postDelayed(this, 5000) // 每隔5秒执行一次 + } + } + + @Keep fun init(context: Context?, isDebug: Boolean) { // 1 - debug 近实时上报,积累一条埋点上报,或者积累3秒上报一次。 @@ -44,6 +67,9 @@ object MogoAnalyticUtils { } } Analytics.getInstance().start(context) + + // 启动定时任务 + handler.post(runnable) } /** @@ -54,12 +80,24 @@ object MogoAnalyticUtils { */ fun track(event: String?, properties: MutableMap) { try { - properties["network_type"] = NetworkUtils.getNetworkType() + // 自动驾驶工控机相关信息 + properties["plate_number"] = AppConfigInfo.plateNumber + properties["docker_version"] = AppConfigInfo.dockerVersion + properties["ipc_mac_address"] = AppConfigInfo.iPCMacAddress + properties["protocol_version_number"] = AppConfigInfo.protocolVersionNumber + properties["ad_hd_map_version"] = AppConfigInfo.adHdMapVersion + properties["car_type"] = + AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode).name + + + // 网络状态监听 + properties["network_address"] = NetworkUtils.getIPAddress(true) + properties["network_type"] = NetworkUtils.getNetworkType().name properties["network_ssid"] = NetworkUtils.getSSID() properties["network_wifi_enabled "] = NetworkUtils.getWifiEnabled() - properties["network_is_available"] = NetworkUtils.isAvailable() - properties["network_is_available_by_ping"] = NetworkUtils.isAvailableByPing("49.233.99.26") + properties["network_is_available"] = network_is_available } catch (e: Exception) { + e.printStackTrace() properties["network_type"] = "获取设备网络状态错误" } Analytics.getInstance().track(event, properties) @@ -106,14 +144,6 @@ object MogoAnalyticUtils { AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode).name map["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) - // 自动驾驶工控机相关信息 - map["plate_number"] = AppConfigInfo.plateNumber - map["docker_version"] = AppConfigInfo.dockerVersion - map["ipc_mac_address"] = AppConfigInfo.iPCMacAddress - map["protocol_version_number"] = AppConfigInfo.protocolVersionNumber - map["ad_hd_map_version"] = AppConfigInfo.adHdMapVersion - map["car_type"] = AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode).name - return map } } \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt index bda1551898..5cb804f9ad 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt @@ -21,7 +21,7 @@ object HDMapUtils { // map["0335"] = 1303 //秦皇岛市 // map["0310"] = 1304 //邯郸市 // map["0319"] = 1305 //邢台市 -// map["0312"] = 1306 //保定市 + map["0312"] = 1306 //保定市 // map["0313"] = 1307 //张家口市 // map["0314"] = 1308 //承德市 // map["0317"] = 1309 //沧州市 @@ -124,7 +124,7 @@ object HDMapUtils { // map["0578"] = 3311 //丽水市 //安徽 -// map["0551"] = 3401 //合肥市 + map["0551"] = 3401 //合肥市 // map["0553"] = 3402 //芜湖市 // map["0552"] = 3403 //蚌埠市 // map["0554"] = 3404 //淮南市 @@ -166,7 +166,7 @@ object HDMapUtils { // map["0793"] = 3611 //上饶市 //山东 -// map["0531"] = 3701 //济南市 + map["0531"] = 3701 //济南市 // map["0532"] = 3702 //青岛市 // map["0533"] = 3703 //淄博市 // map["0632"] = 3704 //枣庄市 @@ -204,7 +204,7 @@ object HDMapUtils { //湖北 // map["0714"] = 4202 //黄石市 -// map["0719"] = 4203 //十堰市 + map["0719"] = 4203 //十堰市 // map["0717"] = 4205 //宜昌市 // map["0710"] = 4206 //襄阳市 map["0711"] = 4207 //鄂州市 @@ -217,7 +217,7 @@ object HDMapUtils { // map["0718"] = 4228 //恩施土家族苗族自治州 //湖南 -// map["0731"] = 4301 //长沙市 + map["0731"] = 4301 //长沙市 map["0733"] = 4302 //株洲市 // map["0732"] = 4303 //湘潭市 map["0734"] = 4304 //衡阳市 @@ -256,7 +256,7 @@ object HDMapUtils { //广西 map["0771"] = 4501 //南宁市 -// map["0772"] = 4502 //柳州市 + map["0772"] = 4502 //柳州市 // map["0773"] = 4503 //桂林市 // map["0774"] = 4504 //梧州市 // map["0779"] = 4505 //北海市 @@ -271,8 +271,8 @@ object HDMapUtils { // map["1771"] = 4514 //崇左市 //海南 -// map["0898"] = 4601 //海口市 -// map["0899"] = 4602 //三亚市 + map["0898"] = 4601 //海口市 + map["0899"] = 4602 //三亚市 // map["2898"] = 4603 //三沙市 // map["0805"] = 4604 //儋州市 @@ -356,6 +356,7 @@ object HDMapUtils { //青海 map["0971"] = 6301 //西宁市 + map["0974"] = 6325 //海南藏族自治州 // map["0972"] = 6302 //海东市 //宁夏