Merge branch 'dev_robotaxi-d_240912_6.7.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_240912_6.7.0

This commit is contained in:
xinfengkun
2024-09-18 16:30:46 +08:00
61 changed files with 260 additions and 909 deletions

View File

@@ -1,571 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "2a452358f8c0aca67794fd0de6b4af1c",
"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, `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": "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, '2a452358f8c0aca67794fd0de6b4af1c')"
]
}
}

View File

@@ -9,11 +9,11 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
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.weaknet.database.repository.EventRepository
import com.mogo.och.weaknet.database.repository.LineRepository
import com.mogo.och.weaknet.database.repository.TaskRepository
import com.mogo.och.weaknet.database.repository.TaskSiteRepository
import com.mogo.och.weaknet.fragment.ShuttleFragment
import com.mogo.och.weaknet.repository.db.repository.EventRepository
import com.mogo.och.weaknet.repository.db.repository.LineRepository
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
import com.mogo.och.weaknet.ui.fragment.ShuttleFragment
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.util.BusAnalyticsManager

View File

@@ -1,14 +1,7 @@
package com.mogo.och.weaknet.bean;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.common.module.utils.DateTimeUtil;
import com.mogo.och.weaknet.database.bean.LineDataBean;
import com.mogo.och.weaknet.database.bean.TaskDataBean;
import com.mogo.och.weaknet.database.repository.TaskRepository;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
/**

View File

@@ -1,12 +1,7 @@
package com.mogo.och.weaknet.bean;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.database.bean.LineDataBean;
import com.mogo.och.weaknet.database.repository.LineRepository;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
/**

View File

@@ -5,9 +5,9 @@ import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.database.repository.TaskSiteRepository
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
import java.lang.Boolean
import kotlin.String

View File

@@ -1,14 +1,14 @@
package com.mogo.och.weaknet.bean
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.weaknet.database.bean.ContrailDataBean
import com.mogo.och.weaknet.database.bean.LineDataBean
import com.mogo.och.weaknet.database.bean.SiteDataBean
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.repository.ContraiRepository
import com.mogo.och.weaknet.database.repository.LineRepository
import com.mogo.och.weaknet.database.repository.SiteRepository
import com.mogo.och.weaknet.database.repository.TaskRepository
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.repository.ContraiRepository
import com.mogo.och.weaknet.repository.db.repository.LineRepository
import com.mogo.och.weaknet.repository.db.repository.SiteRepository
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
/**
*

View File

@@ -2,8 +2,7 @@ package com.mogo.och.weaknet.bean
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.network.utils.digest.DigestUtils
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.weaknet.database.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
/**
* @author congtaowang

View File

@@ -1,12 +1,7 @@
package com.mogo.och.weaknet.callback;
import com.mogo.och.data.bean.BusStationBean;
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse;
import com.mogo.och.weaknet.bean.BusQueryLinesResponse;
import com.mogo.och.weaknet.database.bean.TaskDataBean;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;

View File

@@ -6,27 +6,18 @@ import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager
import com.mogo.eagle.core.network.utils.digest.DigestUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
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.ResourcesUtils
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.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
@@ -34,18 +25,17 @@ import com.mogo.och.weaknet.bean.BusRoutesResponse
import com.mogo.och.weaknet.bean.CarExecutableTaskResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.constant.BusConst
import com.mogo.och.weaknet.database.bean.ContrailDataBean
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.database.repository.ContraiRepository
import com.mogo.och.weaknet.database.repository.EventRepository
import com.mogo.och.weaknet.database.repository.LineRepository
import com.mogo.och.weaknet.database.repository.TaskRepository
import com.mogo.och.weaknet.database.repository.TaskSiteRepository
import com.mogo.och.weaknet.database.transform.FRetryWithTime11
import com.mogo.och.weaknet.database.transform.TransformTask
import com.mogo.och.weaknet.database.transform.transform4DataBase
import com.mogo.och.weaknet.net.OrderServiceManager
import com.mogo.och.weaknet.repository.net.OrderServiceManager
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.repository.ContraiRepository
import com.mogo.och.weaknet.repository.db.repository.LineRepository
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
import com.mogo.och.weaknet.repository.db.transform.FRetryWithTime11
import com.mogo.och.weaknet.repository.db.transform.TransformTask
import com.mogo.och.weaknet.repository.db.transform.transform4DataBase
import io.reactivex.Observer
import io.reactivex.disposables.Disposable
import java.util.concurrent.ConcurrentHashMap
@@ -62,26 +52,21 @@ object BusLineModel {
private val mBusLinesCallbackMap: MutableMap<String, IBusLinesCallback> = ConcurrentHashMap()
private const val TAG = "BusLineModel"
private const val LoopCarInfo = "LoopCarInfo"
// 判断接口是否变化
private const val executableChangeMd5 = "EXECUTABLECHANGEMD5"
private const val EXECUTABLECHANGEMD5 = "EXECUTABLECHANGEMD5"
// 展示上一次刷新时间
const val executableChangeTime = "executablechangetime"
const val EXECUTABLECHANGETIME = "executablechangetime"
var currentTask: TaskDataBean?=null
// 当前任务的站点列表
var stationList:MutableList<BusStationBean>? = mutableListOf<BusStationBean>()
var stationList:MutableList<BusStationBean>? = mutableListOf()
private val isRequesting = AtomicBoolean(false)
private val loopQueryInfo = object :Runnable{
override fun run() {
queryCarExecutableTaskList(true)
}
}
private val loopQueryInfo = Runnable { queryCarExecutableTaskList(true) }
// 当前站点
@JvmStatic
@@ -104,7 +89,7 @@ object BusLineModel {
}
@JvmStatic
fun setBusLinesCallback(tag:String,callback: IBusLinesCallback?) {
fun setBusLinesCallback(tag:String?,callback: IBusLinesCallback?) {
if (tag == null || "" == tag) return
if (callback == null) {
mBusLinesCallbackMap.remove(tag)
@@ -136,24 +121,24 @@ object BusLineModel {
// 第一次过滤 请求返回值的md5
val currentRequest = DigestUtils.md5Hex(data.data.toString())
val lastChangeMd5 =
SharedPrefsMgr.getInstance().getString(executableChangeMd5)
val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(executableChangeTime, 0)
SharedPrefsMgr.getInstance().getString(EXECUTABLECHANGEMD5)
val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(EXECUTABLECHANGETIME, 0)
val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp()
SharedPrefsMgr.getInstance().putLong(executableChangeTime, currentTimeStamp)
SharedPrefsMgr.getInstance().putLong(EXECUTABLECHANGETIME, currentTimeStamp)
val sameDay = DateTimeUtil.isSameDay(currentTimeStamp, lastUpdateTime)
mBusLinesCallbackMap.forEach {
it.value.onRefreshSuccess(currentTimeStamp)
mBusLinesCallbackMap.forEach {callback->
callback.value.onRefreshSuccess(currentTimeStamp)
}
if(isBackground){
if (currentRequest == lastChangeMd5 && sameDay) {
return
}
}
SharedPrefsMgr.getInstance().putString(executableChangeMd5, currentRequest)
SharedPrefsMgr.getInstance().putString(EXECUTABLECHANGEMD5, currentRequest)
OchChainLogManager.writeChainLog(
"数据发生变化",
"接口信息发生变化 ${lastChangeMd5} new md5${currentRequest}"
"接口信息发生变化 $lastChangeMd5 new md5${currentRequest}"
)
CarExecutableTaskResponse.save2Db(data)
}
@@ -163,9 +148,9 @@ object BusLineModel {
BizLoopManager.postDelayed(loopQueryInfo,60_000)
if(!isBackground){
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip));
ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip))
} else {
ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip));
ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip))
}
}
}
@@ -175,9 +160,9 @@ object BusLineModel {
BizLoopManager.postDelayed(loopQueryInfo,60_000)
if(!isBackground){
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
ToastUtils.showShort("网络异常,请稍后重试")
}else {
ToastUtils.showShort(failMsg);
ToastUtils.showShort(failMsg)
}
}
@@ -196,15 +181,15 @@ object BusLineModel {
?.transform4DataBase(FRetryWithTime11())
?.subscribe(object : Observer<List<BusQueryLinesResponse.Result>> {
override fun onSubscribe(d: Disposable) {
CallerLogger.d(TAG, "onSubscribe")
d(TAG, "onSubscribe")
}
override fun onError(e: Throwable) {
CallerLogger.d(TAG, "onError${e.printStackTrace()}")
d(TAG, "onError${e.printStackTrace()}")
}
override fun onComplete() {
CallerLogger.d(TAG, "onComplete")
d(TAG, "onComplete")
}
override fun onNext(data: List<BusQueryLinesResponse.Result>) {
@@ -219,7 +204,6 @@ object BusLineModel {
/**
* 通过线路id 查询线路排班表
* @param lineId 线路ID
* @param position 位置
*/
@JvmStatic
fun queryBusLineTasksById(lineId: Long) {
@@ -227,15 +211,15 @@ object BusLineModel {
?.transform4DataBase(TransformTask())
?.subscribe(object : Observer<List<BusQueryLineTaskResponse.Result>> {
override fun onSubscribe(d: Disposable) {
CallerLogger.d(TAG, "onSubscribe")
d(TAG, "onSubscribe")
}
override fun onError(e: Throwable) {
CallerLogger.d(TAG, "onError${e.printStackTrace()}")
d(TAG, "onError${e.printStackTrace()}")
}
override fun onComplete() {
CallerLogger.d(TAG, "onComplete")
d(TAG, "onComplete")
}
override fun onNext(data: List<BusQueryLineTaskResponse.Result>) {
@@ -258,7 +242,7 @@ object BusLineModel {
line.name,
object : TaskRepository.TaskStatusCallback {
override fun startSuccess() {
EventRepository.saveEventTaskStart(task.id,line.lineId,task.taskStartTime,line.name)
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskStart(task.id,line.lineId,task.taskStartTime,line.name)
OrderModel.queryBusRoutes()
mBusLinesCallbackMap.forEach {
it.value.onChangeLineIdSuccess()
@@ -283,7 +267,7 @@ object BusLineModel {
if (runningTaskInfo.isNullOrEmpty()) {
// 本地没有进行中的任务
CallerLogger.d(TAG,"没有查询到正在运行的任务")
d(TAG,"没有查询到正在运行的任务")
loadServerRuningTask()
} else if (runningTaskInfo.size > 1) {
// 本地有多条正在进行的任务 需要check event
@@ -330,7 +314,7 @@ object BusLineModel {
}
val tempList = sorted.toMutableList()
val possible = tempList.removeFirst()
val queryLastData = EventRepository.queryLastData()
val queryLastData = com.mogo.och.weaknet.repository.db.repository.EventRepository.queryLastData()
if(queryLastData!=null){
if(possible.taskId==queryLastData.taskId){
// 最后一个事件和最新的task一直 恢复数据
@@ -401,17 +385,17 @@ object BusLineModel {
override fun onError() {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip));
ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip))
} else {
ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip));
ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip))
}
}
override fun onFail(code: Int, msg: String?) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
ToastUtils.showShort("网络异常,请稍后重试")
}else {
ToastUtils.showShort(msg);
ToastUtils.showShort(msg)
}
}
})
@@ -434,7 +418,7 @@ object BusLineModel {
OchChainLogManager.writeChainLogDb("滑动出发", "task:${currentTask}__taskId:${currentTask?.taskId}")
// 设置滑动出发任务
LineManager.lineInfos?.lineName?.let { lineName->
EventRepository.saveEventTaskLeaveSite(
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskLeaveSite(
task.taskId!!,
task.lineId!!,
it.siteId.toLong(),
@@ -471,7 +455,7 @@ object BusLineModel {
TaskSiteRepository.updateDrivingStatusAndLeave(task.taskId!!,start.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false)
// 设置到站任务
LineManager.lineInfos?.let {lineInfo ->
EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName)
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName)
}
}
}
@@ -494,8 +478,8 @@ object BusLineModel {
stationList?.let {
startStationIndex+=1
mBusLinesCallbackMap.forEach {
it.value.onArriveStationSuccess()
mBusLinesCallbackMap.forEach {callback->
callback.value.onArriveStationSuccess()
}
val startStation = LineManager.endStation
if(startStationIndex+1< it.size){
@@ -506,10 +490,10 @@ object BusLineModel {
}
fun isLastStation():Boolean?{
if (stationList.isNullOrEmpty()) {
return null
return if (stationList.isNullOrEmpty()) {
null
}else{
return startStationIndex == stationList!!.size - 1
startStationIndex == stationList!!.size - 1
}
}
@@ -526,7 +510,7 @@ object BusLineModel {
if (task.taskId!=null&&task.lineId!=null) {
TaskRepository.endTask(task.taskId!!)
LineManager.lineInfos?.lineName?.let {lineName->
EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineName)
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineName)
}
}
}

View File

@@ -3,16 +3,15 @@ package com.mogo.och.weaknet.model
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.ShuttleEventRequest
import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.WaitUploadTask
import com.mogo.och.weaknet.database.bean.EventDataBean
import com.mogo.och.weaknet.database.repository.EventRepository
import com.mogo.och.weaknet.net.OrderServiceManager
import com.mogo.och.weaknet.repository.net.OrderServiceManager
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.repository.EventRepository
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
@@ -35,11 +34,7 @@ object EventModel : EventRepository.EventCallback {
EventRepository.eventCallback = null
}
private val loopUpdateInfo = object :Runnable{
override fun run() {
updateEvent()
}
}
private val loopUpdateInfo = Runnable { updateEvent() }
override fun notifySyn() {
BizLoopManager.removeCallback(loopUpdateInfo)
@@ -115,7 +110,7 @@ object EventModel : EventRepository.EventCallback {
val haveSave = result.filter {
it.lineId==tempLine.lineId
}
if(haveSave.isNullOrEmpty()){
if(haveSave.isEmpty()){
result.add(tempLine)
}else{
haveSave.first().task.add(tempTask)

View File

@@ -5,9 +5,6 @@ import android.content.Context
import android.text.TextUtils
import com.elegant.network.utils.GsonUtil
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLonLat
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
@@ -53,7 +50,6 @@ import com.mogo.och.common.module.voice.VoiceNotice.showNotice
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.callback.IBusADASStatusCallback
import com.mogo.och.weaknet.constant.BusConst
import com.mogo.och.weaknet.util.BusAnalyticsManager
import com.mogo.och.weaknet.util.BusTrajectoryManager
import com.mogo.och.weaknet.util.ShuttleVoiceManager
@@ -211,7 +207,7 @@ object OrderModel {
BusLineModel.loadStartedTaskAndDefaultInfo()
if(BusLineModel.stationList.isNullOrEmpty()){
d(M_BUS + TAG, "获取到小巴路线数据:空 ")
LineManager.setLineInfo(null);
LineManager.setLineInfo(null)
updateBusStatus()
closeBeautificationMode()
clearStartAutopilotTag()
@@ -239,7 +235,7 @@ object OrderModel {
if (station.drivingStatus == BusConst.STATION_STATUS_STOPPED
&& !station.isLeaving
) { //到达第一站
arrivingOrArrivedStationIndex = i
arrivingOrArrivedStationIndex = 0
break
}
} else {
@@ -319,7 +315,7 @@ object OrderModel {
* 存在Session
*/
if (!OchAutoPilotManager.canStartAutopilotBySessionId()) {
return;
return
}
OchAutopilotAnalytics.triggerClickStartAutopilotTime(System.currentTimeMillis())
@@ -371,7 +367,7 @@ object OrderModel {
val parameters = LineManager.initAutopilotControlParameters()
if (null == parameters) {
e(SceneConstant.M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.")
e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.")
return
}
@@ -379,7 +375,7 @@ object OrderModel {
triggerUpdateStartAutoPilotSessionId(sessionId)
d(
SceneConstant.M_BUS + TAG,
M_BUS + TAG,
"行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters)
+ " startLatLon=" + parameters.startName + "endLatLon=" + parameters.endName +
"isRestart = " + isRestart
@@ -405,7 +401,7 @@ object OrderModel {
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false //是否强制绘制引导线
CallerAutoPilotControlManager.setIgnoreConditionDraw(false) // 同步给乘客屏
CallerAutoPilotControlManager.setIPCDemoMode(false) //是否自动启动自驾
d(SceneConstant.M_BUS + TAG, "美化模式-ignore置为false")
d(M_BUS + TAG, "美化模式-ignore置为false")
}
}
@@ -437,8 +433,6 @@ object OrderModel {
* 渲染站点信息
* 服务端返回的OchBusRoutesResult逻辑 离开站为当前站, 到达下一站后才会将下一站置为当前站,
* 车机端展示 三站: 中间为即将到到达或者刚到达的站
*
* @param result
*/
private fun updateBusStatus() {
BusLineModel.stationList?.let {
@@ -459,11 +453,7 @@ object OrderModel {
BusLineModel.setDemoMode()
LineManager.getStartStation {
if (it.isLeaving) {
isGoingToNextStation = true
}else{
isGoingToNextStation = false
}
isGoingToNextStation = it.isLeaving
}
ThirdDeviceData.sendTaskDetailsToClients()
@@ -523,7 +513,7 @@ object OrderModel {
fun removeTipRunnables() {
private fun removeTipRunnables() {
UiThreadHandler.removeCallbacks(tip3Runnable)
UiThreadHandler.removeCallbacks(tip1Runnable)
}
@@ -614,11 +604,11 @@ object OrderModel {
}
}
fun triggerUpdateStartAutoPilotSessionId(sessionId: Long) {
private fun triggerUpdateStartAutoPilotSessionId(sessionId: Long) {
OchAutopilotAnalytics.triggerUpdateStartAutoPilotSessionId(sessionId)
}
fun triggerUnableStartAPReasonEvent() {
private fun triggerUnableStartAPReasonEvent() {
LineManager.getStationsWithLine { start, end, line ->
OchAutopilotAnalytics.triggerUnableStartAPReasonEvent(
start.name, end.name,line.lineId.toString() , "",
@@ -627,14 +617,8 @@ object OrderModel {
}
}
private fun clearAutopilotControlParameters() {
d(M_BUS + TAG, "AutopilotControlParameters is clear.")
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null)
}
fun setTrajectoryStation(isClean:Boolean) {
private fun setTrajectoryStation(isClean:Boolean) {
if(isClean){
TrajectoryAndDistanceManager.setStationPoint(null, null, null)
return

View File

@@ -24,7 +24,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.WriteOffCountResponse
import com.mogo.och.weaknet.bean.WriteOffPassenger
import com.mogo.och.weaknet.net.OrderServiceManager
import com.mogo.och.weaknet.repository.net.OrderServiceManager
import com.mogo.och.weaknet.util.ShuttleVoiceManager
import io.reactivex.Observable
import io.reactivex.ObservableEmitter

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database
package com.mogo.och.weaknet.repository.db
import android.os.Environment
import androidx.room.Database
@@ -8,18 +8,18 @@ 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
import com.mogo.och.weaknet.database.bean.EventDataBean
import com.mogo.och.weaknet.database.bean.LineDataBean
import com.mogo.och.weaknet.database.bean.SiteDataBean
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.database.dao.ContrailDataDao
import com.mogo.och.weaknet.database.dao.EventDataDao
import com.mogo.och.weaknet.database.dao.LineDataDao
import com.mogo.och.weaknet.database.dao.SiteDataDao
import com.mogo.och.weaknet.database.dao.TaskDataDao
import com.mogo.och.weaknet.database.dao.TaskSiteDataDao
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao
import com.mogo.och.weaknet.repository.db.dao.EventDataDao
import com.mogo.och.weaknet.repository.db.dao.LineDataDao
import com.mogo.och.weaknet.repository.db.dao.SiteDataDao
import com.mogo.och.weaknet.repository.db.dao.TaskDataDao
import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao
import java.io.File
//注解Database告诉系统这是Room数据库对象

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.bean
package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.bean
package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.bean
package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.bean
package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.bean
package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.bean
package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,10 +1,10 @@
package com.mogo.och.weaknet.database.dao
package com.mogo.och.weaknet.repository.db.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.weaknet.database.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
@Dao
interface ContrailDataDao {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.dao
package com.mogo.och.weaknet.repository.db.dao
import androidx.room.Dao
import androidx.room.Delete
@@ -6,7 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
import io.reactivex.Observable
@Dao

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.dao
package com.mogo.och.weaknet.repository.db.dao
import androidx.room.Dao
import androidx.room.Delete
@@ -6,7 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import io.reactivex.Observable
@Dao

View File

@@ -1,10 +1,10 @@
package com.mogo.och.weaknet.database.dao
package com.mogo.och.weaknet.repository.db.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.weaknet.database.bean.SiteDataBean
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
@Dao
interface SiteDataDao {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.dao
package com.mogo.och.weaknet.repository.db.dao
import androidx.room.Dao
import androidx.room.Delete
@@ -6,8 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import io.reactivex.Observable
@Dao

View File

@@ -1,11 +1,11 @@
package com.mogo.och.weaknet.database.dao
package com.mogo.och.weaknet.repository.db.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
@Dao
interface TaskSiteDataDao {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.exception
package com.mogo.och.weaknet.repository.db.exception
class DataException: RuntimeException {
constructor() : super()

View File

@@ -1,10 +1,9 @@
package com.mogo.och.weaknet.database.repository
package com.mogo.och.weaknet.repository.db.repository
import com.mogo.eagle.core.network.utils.digest.DigestUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.ContrailDataBean
import com.mogo.och.weaknet.database.dao.ContrailDataDao
import com.mogo.och.weaknet.repository.db.MyDataBase
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao
object ContraiRepository {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.repository
package com.mogo.och.weaknet.repository.db.repository
import com.mogo.eagle.core.utilcode.util.ThreadUtils

View File

@@ -1,11 +1,11 @@
package com.mogo.och.weaknet.database.repository
package com.mogo.och.weaknet.repository.db.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
import com.mogo.och.weaknet.database.bean.EventDataBean
import com.mogo.och.weaknet.database.dao.EventDataDao
import com.mogo.och.weaknet.repository.db.MyDataBase
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.dao.EventDataDao
import io.reactivex.Observable

View File

@@ -1,9 +1,9 @@
package com.mogo.och.weaknet.database.repository
package com.mogo.och.weaknet.repository.db.repository
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.LineDataBean
import com.mogo.och.weaknet.database.dao.LineDataDao
import com.mogo.och.weaknet.repository.db.MyDataBase
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.dao.LineDataDao
import io.reactivex.Observable
object LineRepository {

View File

@@ -1,10 +1,9 @@
package com.mogo.och.weaknet.database.repository
package com.mogo.och.weaknet.repository.db.repository
import com.mogo.eagle.core.network.utils.digest.DigestUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.SiteDataBean
import com.mogo.och.weaknet.database.dao.SiteDataDao
import com.mogo.och.weaknet.repository.db.MyDataBase
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
import com.mogo.och.weaknet.repository.db.dao.SiteDataDao
object SiteRepository {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.database.repository
package com.mogo.och.weaknet.repository.db.repository
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
@@ -6,10 +6,10 @@ import com.mogo.eagle.core.utilcode.util.TAG
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.dao.TaskDataDao
import com.mogo.och.weaknet.database.exception.DataException
import com.mogo.och.weaknet.repository.db.MyDataBase
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.dao.TaskDataDao
import com.mogo.och.weaknet.repository.db.exception.DataException
import io.reactivex.Observable
object TaskRepository {

View File

@@ -1,12 +1,12 @@
package com.mogo.och.weaknet.database.repository
package com.mogo.och.weaknet.repository.db.repository
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.TAG
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.database.dao.TaskSiteDataDao
import com.mogo.och.weaknet.database.exception.DataException
import com.mogo.och.weaknet.repository.db.MyDataBase
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao
import com.mogo.och.weaknet.repository.db.exception.DataException
object TaskSiteRepository {

View File

@@ -1,18 +1,9 @@
package com.mogo.och.weaknet.database.transform
package com.mogo.och.weaknet.repository.db.transform
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.och.common.module.biz.login.LoginStatusEnum
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.network.interceptor.FRetryWithTime
import com.mogo.och.common.module.network.interceptor.OchCommonRetryException
import com.mogo.och.common.module.network.interceptor.RetryWithTime
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.database.bean.LineDataBean
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import io.reactivex.Observable
import io.reactivex.ObservableSource
import io.reactivex.android.schedulers.AndroidSchedulers

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.net;
package com.mogo.och.weaknet.repository.net;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.BusQueryLineStationsRequest;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.net
package com.mogo.och.weaknet.repository.net
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -9,7 +9,6 @@ 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.weaknet.bean.BusQueryLineStationsRequest
import com.mogo.och.weaknet.bean.BusRoutesResponse
import com.mogo.och.weaknet.bean.CarExecutableTaskResponse

View File

@@ -3,10 +3,8 @@ package com.mogo.och.weaknet.ui.bizswitch
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.model.BusLineModel
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.presenter
package com.mogo.och.weaknet.ui.fragment
import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.AbsMogoApplication
@@ -21,7 +21,6 @@ import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatu
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.weaknet.callback.IBusADASStatusCallback
import com.mogo.och.weaknet.fragment.ShuttleFragment
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.OrderModel
import com.mogo.och.weaknet.util.BusTrajectoryManager

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.fragment
package com.mogo.och.weaknet.ui.fragment
import android.animation.ObjectAnimator
import android.graphics.BitmapFactory
@@ -41,7 +41,6 @@ import com.mogo.och.common.module.utils.createQRCodeWithPicture
import com.mogo.och.common.module.wigets.BindQRCodeDialog
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.constant.BusConst
import com.mogo.och.weaknet.presenter.BusPresenter
import com.mogo.och.weaknet.ui.taskrunned.RunningTaskManager
import com.mogo.och.weaknet.view.BizMapView
import me.jessyan.autosize.utils.AutoSizeUtils

View File

@@ -2,14 +2,11 @@ package com.mogo.och.weaknet.ui.switchline
import androidx.lifecycle.ViewModel
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.BusLineModel.executableChangeTime
import com.mogo.och.weaknet.model.OrderModel
import com.mogo.och.weaknet.model.BusLineModel.EXECUTABLECHANGETIME
/**
* @author XuXinChao
@@ -37,7 +34,7 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
}
fun setRefreshTime() {
val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(executableChangeTime, -1)
val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(EXECUTABLECHANGETIME, -1)
if(lastUpdateTime>0){
this.onRefreshSuccess(lastUpdateTime)
}

View File

@@ -1,14 +1,9 @@
package com.mogo.och.weaknet.ui.taskrunning
import androidx.lifecycle.ViewModel
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.BusLineModel.executableChangeTime
import com.mogo.och.weaknet.model.OrderModel
/**

View File

@@ -4,6 +4,8 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
@@ -18,9 +20,9 @@ class BoneTabLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr) {
) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxEventListener {
companion object{
companion object {
private const val TAG = "BoneTabLayout"
}
@@ -42,13 +44,23 @@ class BoneTabLayout @JvmOverloads constructor(
}
}
private var logOut:(() -> Unit)? = null
private var logOut: (() -> Unit)? = null
init {
LayoutInflater.from(context).inflate(R.layout.view_bone_tab, this, true)
initView()
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerMsgBoxEventListenerManager.addListener(TAG, this)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CallerMsgBoxEventListenerManager.removeListener(TAG)
}
private fun initView() {
tabSwitchCarInfo.setOnClickListener {
updateTabType(TabType.CAR_INFO)
@@ -69,15 +81,15 @@ class BoneTabLayout @JvmOverloads constructor(
}
fun setCarNo(carNo: String){
fun setCarNo(carNo: String) {
carInfoTabView.setCarNo(carNo)
}
fun setLoginInfo(loginNo: String){
fun setLoginInfo(loginNo: String) {
carInfoTabView.setLoginInfo(loginNo)
}
fun loginOut(logOut:(() -> Unit)){
fun loginOut(logOut: (() -> Unit)) {
this.logOut = logOut
}
@@ -100,7 +112,7 @@ class BoneTabLayout @JvmOverloads constructor(
TabType.MSG_INFO -> {
tabSwitchMsgBox.switchTab(check)
if (check) {
tabSwitchMsgBox.updateNotice(false)
} else {
}
@@ -128,4 +140,8 @@ class BoneTabLayout @JvmOverloads constructor(
}
}
override fun onUpdateTipEvent(isShow: Boolean) {
super.onUpdateTipEvent(isShow)
tabSwitchMsgBox.updateNotice(isShow)
}
}

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.function.hmi.R
import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClick
import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClickBg
import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabDefault
import kotlinx.android.synthetic.main.view_tab_switch.view.vTabNotice
class TabSwitchView @JvmOverloads constructor(
context: Context,
@@ -55,4 +56,8 @@ class TabSwitchView @JvmOverloads constructor(
}
}
fun updateNotice(check: Boolean) {
vTabNotice.visibility = if (check) View.VISIBLE else View.GONE
}
}

View File

@@ -60,7 +60,7 @@ class FSMStatusDetailView @JvmOverloads constructor(
val c = Color.parseColor("#FF4E41")
tvTitle?.setTextColor(c)
}
addFsmMsgItemView(msgArray)
addFsmMsgItemView(msgArray, true)
//监听最新 FSM 状态
StatusManager.addListener(TAG, this)
@@ -69,16 +69,16 @@ class FSMStatusDetailView @JvmOverloads constructor(
private fun setFsmNormalStatus() {
tvTitle?.text = "FSM正常"
runCatching {
val c = Color.parseColor("#2EACFF")
val c = Color.parseColor("#26C14F")
tvTitle?.setTextColor(c)
}
removeFsmMsgItemView()
addFsmMsgItemView(ArrayList<String>().also { it += "FSM异常状态已恢复" }, false)
}
private fun setFsmUnknownStatus() {
tvTitle?.text = "FSM状态未知"
runCatching {
val c = Color.parseColor("#FFFFFF")
val c = Color.parseColor("#FFCD3D")
tvTitle?.setTextColor(c)
}
removeFsmMsgItemView()
@@ -93,7 +93,7 @@ class FSMStatusDetailView @JvmOverloads constructor(
removeFsmMsgItemView()
}
private fun addFsmMsgItemView(msgArray: ArrayList<String>) {
private fun addFsmMsgItemView(msgArray: ArrayList<String>, isError: Boolean) {
if (llFsmMsgContainerLayout == null) {
Logger.e(TAG, "addFsmMsmItemView llFsmMsgContainerLayout is null")
return
@@ -104,6 +104,7 @@ class FSMStatusDetailView @JvmOverloads constructor(
val itemView: View = LayoutInflater.from(context)
.inflate(R.layout.view_status_fsm_item_layout, llFsmMsgContainerLayout, false)
val leftImageView: ImageView = itemView.findViewById(R.id.leftImageView)
leftImageView.setImageResource(if (isError) R.drawable.icon_fsm_error_red_arrow else R.drawable.icon_fsm_error_green_arrow)
val rightTextView: TextView = itemView.findViewById(R.id.rightTextView)
rightTextView.text = it
llFsmMsgContainerLayout?.addView(itemView)

View File

@@ -26,13 +26,10 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
private const val TAG = "OfflineMapDialog"
}
private var roundRootLayout: ConstraintLayout? = null
private var offlineTitleView: TextView? = null
private var leftView: TextView? = null
private var rightView: TextView? = null
private var okView: TextView? = null
private var vertLineView: View? = null
private var horizontalLineView: View? = null
private var cacheTipView: TextView? = null
private var progressBar: ProgressBar? = null
@@ -48,22 +45,18 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
init {
setContentView(R.layout.dialog_offline_map)
setCanceledOnTouchOutside(true)
initView()
}
private fun initView() {
roundRootLayout = findViewById(R.id.roundRootLayout)
offlineTitleView = findViewById(R.id.tv_cache_title)
progressBar = findViewById(R.id.progressBar)
downloadPercentView = findViewById(R.id.tvDownloadProgress)
leftView = findViewById(R.id.tv_cache_confirm)
rightView = findViewById(R.id.tv_cache_cancel)
okView = findViewById(R.id.tv_cache_ok)
vertLineView = findViewById(R.id.view_vertical_line)
horizontalLineView = findViewById(R.id.view_horizontal_line)
cacheTipView = findViewById(R.id.tv_cache_tips)
downloadResultImg = findViewById(R.id.iv_download_Status)
downloadResultImg = findViewById(R.id.ivDownLoadStatus)
leftView?.setOnClickListener {
when {
@@ -142,20 +135,13 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
}
private fun change2NewStyle() {
roundRootLayout?.layoutParams?.width = AutoSizeUtils.dp2px(context, 1110f)
roundRootLayout?.layoutParams?.height = AutoSizeUtils.dp2px(context, 668f)
val titleParams = offlineTitleView?.layoutParams as ConstraintLayout.LayoutParams
titleParams.topMargin = AutoSizeUtils.dp2px(context, 51f)
val horizontalLineParams = horizontalLineView?.layoutParams as ConstraintLayout.LayoutParams
horizontalLineParams.topMargin = AutoSizeUtils.dp2px(context, 374f)
titleParams.topMargin = AutoSizeUtils.dp2px(context, 52f)
progressBar?.visibility = View.VISIBLE
downloadPercentView?.visibility = View.VISIBLE
okView?.visibility = View.VISIBLE
vertLineView?.visibility = View.GONE
leftView?.visibility = View.GONE
rightView?.visibility = View.GONE
cacheTipView?.visibility = View.INVISIBLE
@@ -169,10 +155,8 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
isLoading -> {
okView?.text = context.resources.getString(R.string.cancel)
offlineTitleView?.text = context.resources.getString(R.string.offline_downloading)
downloadResultImg?.visibility = View.GONE
}
else -> {
downloadResultImg?.visibility = View.VISIBLE
when {
isSuccess -> {
okView?.visibility = View.VISIBLE
@@ -182,7 +166,7 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
progressBar?.visibility = View.GONE
downloadPercentView?.visibility = View.GONE
downloadResultImg?.background =
ContextCompat.getDrawable(context, R.drawable.download_success_icon)
ContextCompat.getDrawable(context, R.drawable.icon_map_cache_success)
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to true))
}
else -> {
@@ -196,10 +180,9 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
leftView?.visibility = View.VISIBLE
leftView?.text = context.resources.getString(R.string.ok_tip)
rightView?.visibility = View.VISIBLE
vertLineView?.visibility = View.VISIBLE
rightView?.text = context.resources.getString(R.string.retry)
downloadResultImg?.background =
ContextCompat.getDrawable(context, R.drawable.download_fail_icon)
ContextCompat.getDrawable(context, R.drawable.icon_map_cache_failed)
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to false))
}
}

View File

@@ -81,7 +81,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
// BIZ
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_FUNC_BIZ, "IMoGoNoticeProvider"));
// 后置 车聊聊IM
MogoModulePaths.addModuleFunctionServer(new MogoModule(ChatConsts.CHAT_PROVIDER_PATH, ChatConsts.CHAT_MODULE_NAME));
// MogoModulePaths.addModuleFunctionServer(new MogoModule(ChatConsts.CHAT_PROVIDER_PATH, ChatConsts.CHAT_MODULE_NAME));
// 司机身份专属
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
// 后置 地图数据收集模块

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 265 B

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#000000" />
<solid android:color="#B3000000" />
<corners android:radius="@dimen/dp_30" />
</shape>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/color_B3_000000"/>
<corners android:radius="@dimen/dp_30"/>
</shape>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="@color/color_3B3D44" android:endColor="@color/color_2E323A" android:angle="270"/>
<stroke android:color="@color/color_99_6C6C6C" android:width="@dimen/dp_2"/>
<corners android:radius="@dimen/dp_50"/>
</shape>

View File

@@ -3,18 +3,18 @@
android:shape="rectangle">
<gradient
android:angle="90"
android:angle="180"
android:endColor="#2E323A"
android:startColor="#3B3D44" />
<stroke
android:width="1dp"
android:width="2px"
android:color="#FFFFFF">
<shape>
<gradient
android:angle="90"
android:endColor="#6C6C6C"
android:startColor="#FFFFFF" />
android:endColor="#996C6C6C"
android:startColor="#40FFFFFF" />
</shape>
</stroke>

View File

@@ -2,121 +2,99 @@
<com.mogo.eagle.core.widget.RoundConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/roundRootLayout"
android:layout_width="840dp"
android:layout_height="488dp"
android:background="@color/dialog_bg_color_90_percent"
android:layout_width="@dimen/dp_900"
android:layout_height="@dimen/dp_620"
android:background="@drawable/bg_map_offline_cache"
app:roundLayoutRadius="32dp">
<ImageView
android:id="@+id/ivDownLoadStatus"
android:layout_width="@dimen/dp_140"
android:layout_height="@dimen/dp_140"
android:layout_marginTop="@dimen/dp_87"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:src="@drawable/icon_map_update"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_cache_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="66dp"
android:layout_marginTop="@dimen/dp_30"
android:text="@string/offline_map_cache_tip"
android:textColor="#FFFFFF"
android:textSize="56dp"
android:textColor="@color/white"
android:textSize="@dimen/dp_45"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/ivDownLoadStatus" />
<TextView
android:id="@+id/tv_cache_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="52dp"
android:layout_marginTop="@dimen/dp_10"
android:text="@string/cache_offline_map_content"
android:textColor="#FFFFFFFF"
android:textSize="43dp"
android:visibility="visible"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="800dp"
android:layout_height="42dp"
style="?android:attr/progressBarStyleHorizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title"
android:layout_marginTop="113dp"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/progressbar_corner_bg"
android:visibility="gone"
/>
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title" />
<TextView
android:id="@+id/tvDownloadProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/progressBar"
android:layout_marginTop="50dp"
android:text="0%"
android:textColor="#06D1ED"
android:textSize="43dp"
android:visibility="gone"
/>
<ImageView
android:id="@+id/iv_download_Status"
android:layout_width="174dp"
android:layout_height="174dp"
android:layout_marginTop="96dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title"
android:visibility="gone"
/>
<View
android:id="@+id/view_horizontal_line"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="205dp"
android:background="#66B8BFE8"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title" />
<View
android:id="@+id/view_vertical_line"
android:layout_width="2dp"
android:layout_height="0dp"
android:background="#66B8BFE8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/progressBar" />
<TextView
android:id="@+id/tv_cache_confirm"
android:layout_width="419dp"
android:layout_height="137dp"
android:layout_width="@dimen/dp_356"
android:layout_height="@dimen/dp_120"
android:gravity="center"
android:text="@string/confirm"
android:textColor="#FFFFFFFF"
android:textSize="46dp"
android:background="@drawable/bg_map_offline_btn"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_40"
android:layout_marginStart="@dimen/dp_65"
android:layout_marginBottom="@dimen/dp_62"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/view_vertical_line"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
app:layout_constraintLeft_toLeftOf="parent" />
<TextView
android:id="@+id/tv_cache_cancel"
android:layout_width="419dp"
android:layout_height="137dp"
android:layout_width="@dimen/dp_356"
android:layout_height="@dimen/dp_120"
android:gravity="center"
android:text="@string/cancel"
android:textColor="#FFFFFFFF"
android:textSize="46dp"
android:textColor="@color/white"
android:textSize="@dimen/dp_40"
android:background="@drawable/bg_map_offline_btn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/view_vertical_line"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
android:layout_marginEnd="@dimen/dp_65"
android:layout_marginBottom="@dimen/dp_62"
app:layout_constraintRight_toRightOf="parent"/>
<TextView
android:id="@+id/tv_cache_ok"

View File

@@ -26,7 +26,6 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_960"
android:layout_height="@dimen/dp_216"
android:layout_marginBottom="@dimen/dp_8"
android:background="@drawable/bg_tab_switch"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="@dimen/dp_20"

View File

@@ -4,13 +4,14 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:orientation="horizontal">
<ImageView
android:id="@+id/leftImageView"
android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_18"
android:layout_gravity="top"
android:layout_gravity="top|center_horizontal"
android:layout_marginTop="@dimen/dp_10"
android:src="@drawable/icon_fsm_error_red_arrow" />

View File

@@ -42,9 +42,12 @@
<View
android:id="@+id/vTabNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/dp_25"
android:layout_height="@dimen/dp_25"
android:background="@drawable/icon_red_notice"
app:layout_constraintLeft_toLeftOf="parent"
android:visibility="gone"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginStart="@dimen/dp_124"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -30,6 +30,9 @@
<color name="color_131415">#131415</color>
<color name="color_B2BED9">#B2BED9</color>
<color name="color_FF1943">#FF1943</color>
<color name="color_3B3D44">#3B3D44</color>
<color name="color_2E323A">#2E323A</color>
<color name="color_99_6C6C6C">#996C6C6C</color>
<color name="color_27FFFFFF">#27FFFFFF</color>
<color name="color_1E111111">#1E111111</color>
<color name="color_FF213757">#FF213757</color>