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

This commit is contained in:
xinfengkun
2024-11-22 17:08:14 +08:00
10 changed files with 139 additions and 37 deletions

View File

@@ -151,11 +151,9 @@ object MediaDataSourceManager {
}
} else {
//请求成功获取到后台配置数据了,但是数据为空,此时为了有内容展示,还是使用本地数据更新播放
if (mLastMediaDataSourceList.isEmpty()) {
val localAdDataList = getMediaDataFromLocalConfig()
updateMediaDataSource(localAdDataList)
MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据,返回数据为空,使用本地配置数据播放")
}
val localAdDataList = getMediaDataFromLocalConfig()
updateMediaDataSource(localAdDataList)
MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据,返回数据为空,使用本地配置数据播放")
}
// 获取成功后延迟5分钟再查询

View File

@@ -26,20 +26,20 @@ project.dependencies {
} else if (isCurrentPassenger("B2")) {
implementation project.project(':OCH:shuttle:passenger_weaknet')
} else if (isCurrentDriver("T1T2")) {
implementation project.project(':OCH:taxi:driver')
// implementation project.project(':OCH:taxi:driver')
implementation project.project(':OCH:taxi:unmanned-driver')
} else if (isCurrentPassenger("T1T2")) {
implementation project.project(':OCH:taxi:unmanned-passenger')
implementation project.project(':OCH:taxi:passenger')
// implementation project.project(':OCH:taxi:passenger')
} else if (isCurrentDriver("ALL")) {
implementation project.project(':OCH:offline:driver')
implementation project.project(':OCH:taxi:unmanned-driver')
implementation project.project(':OCH:taxi:driver')
// implementation project.project(':OCH:taxi:driver')
implementation project.project(':OCH:charter:driver')
implementation project.project(':OCH:sweeper:driver')
} else if (isCurrentPassenger("ALL")) {
implementation project.project(':OCH:taxi:unmanned-passenger')
implementation project.project(':OCH:taxi:passenger')
// implementation project.project(':OCH:taxi:passenger')
implementation project.project(':OCH:charter:passenger')
implementation project.project(':OCH:shuttle:passenger_weaknet')
implementation project.project(':OCH:shuttle:driver_weaknet')
@@ -48,8 +48,8 @@ project.dependencies {
implementation project.project(':OCH:charter:driver')
implementation project.project(':OCH:charter:passenger')
implementation project.project(':OCH:sweeper:driver')
implementation project.project(':OCH:taxi:driver')
implementation project.project(':OCH:taxi:passenger')
// implementation project.project(':OCH:taxi:driver')
// implementation project.project(':OCH:taxi:passenger')
implementation project.project(':OCH:taxi:unmanned-driver')
implementation project.project(':OCH:taxi:unmanned-passenger')
implementation project.project(':OCH:shuttle:passenger_weaknet')

View File

@@ -122,13 +122,13 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
} else if (AppIdentityModeUtils.isCharterDriver(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.CHARTER_DRIVER)
} else if (AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode)) {
return if (ProjectUtils.isMogo()) {
getFragmentByServeName(OchCommonConst.TAXI_DRIVER)
} else if (ProjectUtils.isSaas()) {
getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_DRIVER)
} else {
getFragmentByServeName(OchCommonConst.TAXI_DRIVER)
}
// return if (ProjectUtils.isMogo()) {
// getFragmentByServeName(OchCommonConst.TAXI_DRIVER)
// } else if (ProjectUtils.isSaas()) {
return getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_DRIVER)
// } else {
// getFragmentByServeName(OchCommonConst.TAXI_DRIVER)
// }
} else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.SWEEPER_DRIVER)
} else if (AppIdentityModeUtils.isBusPassenger(FunctionBuildConfig.appIdentityMode)) {
@@ -138,13 +138,13 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
} else if (AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.CHARTER_PASSENGER)
} else if (AppIdentityModeUtils.isTaxiPassenger(FunctionBuildConfig.appIdentityMode)) {
return if (ProjectUtils.isMogo()) {
getFragmentByServeName(OchCommonConst.TAXI_PASSENGER)
} else if (ProjectUtils.isSaas()) {
getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_PASSENGER)
} else {
getFragmentByServeName(OchCommonConst.TAXI_PASSENGER)
}
// return if (ProjectUtils.isMogo()) {
// getFragmentByServeName(OchCommonConst.TAXI_PASSENGER)
// } else if (ProjectUtils.isSaas()) {
return getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_PASSENGER)
// } else {
// getFragmentByServeName(OchCommonConst.TAXI_PASSENGER)
// }
}
return LoginStatusManager.getFragment()
}

View File

@@ -83,7 +83,8 @@ abstract class MyDataBase : RoomDatabase() {
private val MIGRATION_4_5 = object : Migration(4, 5) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("CREATE TABLE IF NOT EXISTS `${WriteOffDataBean.writeoffDataTable}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `msg_id` TEXT, `expiry_time` INTEGER, `booking_time` INTEGER, `type` INTEGER, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `driver_id` INTEGER, `remaining_times` INTEGER, `order_no` TEXT, `uid` TEXT, `seq` TEXT, `business_time` INTEGER, `tick_size` INTEGER, `tick_name` TEXT, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `update_time` INTEGER)")
database.execSQL("CREATE TABLE IF NOT EXISTS `${WriteOffDataBean.writeoffDataTable}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `msg_id` TEXT, `expiry_time` INTEGER, `booking_time` INTEGER, `type` INTEGER, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `driver_id` INTEGER, `available_times` INTEGER, `order_no` TEXT, `uid` TEXT, `seq` TEXT, `business_time` INTEGER, `tick_size` INTEGER, `tick_name` TEXT, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `update_time` INTEGER)")
database.execSQL("CREATE INDEX `index_writeoff_data_table_event_save_time` ON `writeoff_data_table` (`event_save_time`)")
}
}

View File

@@ -48,7 +48,15 @@ object WriteOffDb: IDbRepository {
fun queryWaitUpdateEventCountByTaskId(taskId: Long):Int {
val queryWriteOffByOrderNo = writeOffDataDao?.queryWaitWriteOffByTaskId(taskId)
return queryWriteOffByOrderNo?.size?:0
var count4Persion = 0
queryWriteOffByOrderNo?.forEach { wirteoffItem->
if (wirteoffItem.ticketSize == null || wirteoffItem.ticketSize!! < 1) {
wirteoffItem.ticketSize=1
}
count4Persion+=(wirteoffItem.ticketSize?:1)
}
return count4Persion
}
fun queryWriteOffByTaskAndSiteId(taskId: Long, siteId: Long): List<WriteOffDataBean>? {

View File

@@ -66,10 +66,20 @@ class WriteOffCacheRepository : IWriteOffRepository {
siteId: Long
): Observable<Int>? {
val queryWriteOffByTaskAndSiteId = WriteOffDb.queryWriteOffByTaskAndSiteId(taskId, siteId)
return Observable.just(queryWriteOffByTaskAndSiteId)
.flatMap {
return@flatMap Observable.just(it?.size ?:0)
queryWriteOffByTaskAndSiteId?.let {
var count4Persion = 0
it.forEach { wirteoffItem->
if (wirteoffItem.ticketSize == null || wirteoffItem.ticketSize!! < 1) {
wirteoffItem.ticketSize=1
}
count4Persion+=(wirteoffItem.ticketSize?:1)
}
return Observable.just(count4Persion)
.flatMap {
return@flatMap Observable.just(it)
}
}
return Observable.just(0)
}
override fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {

View File

@@ -636,6 +636,12 @@ class MoGoHmiProvider : IMoGoHmiProvider {
.onDismissed {
popOfSafetyStopCar.set(null)
}
.onShowed {
content.scope.launch {
delay(5000)
popOfSafetyStopCar.get()?.get()?.hide()
}
}
.build()
.also {
popOfSafetyStopCar.set(WeakReference(it))

View File

@@ -20,6 +20,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.util.FrameAnimatorContainerUtils
import com.mogo.eagle.core.utilcode.util.ResourceUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartConfig
@@ -50,7 +51,6 @@ class ColdStartProcessView @JvmOverloads constructor(
const val COLD_START_SUCCESS_TICK_TIME = 500L //冷启动成功视图呼吸时长
}
private var ipcConnectStatus = false //连接域控状态,默认是未连接
private var ssmConnectStatus = false //SSM连接状态默认是未连接
private var coldStartStatus = false //冷启动状态,默认是未冷启动成功
@@ -106,6 +106,8 @@ class ColdStartProcessView @JvmOverloads constructor(
CallerColdStartStateListenerManager.removeListener(TAG)
coldStartProcessNormalAnim?.release()
coldStartProcessAbnormalAnim?.release()
connectSSMTimer?.cancel()
connectColdStartTimer?.cancel()
}
override fun showColdStartProcessView() {
@@ -125,6 +127,8 @@ class ColdStartProcessView @JvmOverloads constructor(
if(status == AdasConstants.IpcConnectionStatus.CONNECTED){
//域控连接成功
coldStartNormalView()
//开启连接SSM倒计时
connectSSMProcess()
}else{
//域控连接失败
coldStartAbnormalView()
@@ -138,7 +142,7 @@ class ColdStartProcessView @JvmOverloads constructor(
*/
override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo){
//SSM连接成功
coldStartNormalView()
connectSSMSuccess()
//通过autoPilotReady判断冷启动是否成功
if(status.hasAutoPilotReady() && status.autoPilotReady && !coldStartStatus){
coldStartStatus = true
@@ -156,7 +160,7 @@ class ColdStartProcessView @JvmOverloads constructor(
*/
override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf){
//SSM连接成功
coldStartNormalView()
connectSSMSuccess()
//版本兼容
if(parseVersion(true, statusInf.masterVersion) > 40600){
//主动查询冷启动状态
@@ -246,6 +250,12 @@ class ColdStartProcessView @JvmOverloads constructor(
*/
private fun showColdStartSuccessView(){
ThreadUtils.runOnUiThread {
if(coldStartProcessNormalAnim?.isPlaying() == true){
coldStartProcessNormalAnim?.stop()
}
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
coldStartProcessAbnormalAnim?.stop()
}
var label = true
coldStartSuccessTimer = object: CountDownTimer(COLD_START_SUCCESS_SHOW_TIME,COLD_START_SUCCESS_TICK_TIME){
override fun onTick(millisUntilFinished: Long) {
@@ -263,6 +273,8 @@ class ColdStartProcessView @JvmOverloads constructor(
override fun onFinish() {
ThreadUtils.runOnUiThread {
this@ColdStartProcessView.visibility = View.GONE
coldStartProcessNormalAnim?.release()
coldStartProcessAbnormalAnim?.release()
}
}
@@ -276,10 +288,77 @@ class ColdStartProcessView @JvmOverloads constructor(
*/
private fun showColdStartFailView(){
ThreadUtils.runOnUiThread {
if(coldStartProcessNormalAnim?.isPlaying() == true){
coldStartProcessNormalAnim?.stop()
}
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
coldStartProcessAbnormalAnim?.stop()
}
ivColdStartProcess.setImageDrawable((ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail_02)))
}
}
/**
* 连接SSM过程
*/
private fun connectSSMProcess(){
ThreadUtils.runOnUiThread {
connectSSMTimer = object: CountDownTimer(LOAD_SSM_WAITING_TIME,LOAD_SSM_WAITING_TIME){
override fun onTick(millisUntilFinished: Long) {
}
override fun onFinish() {
//将SSM连接状态置为false
ssmConnectStatus = false
coldStartStatus = false
currentColdStartSuccess = false
//取消连接SSM超时等待倒计时
connectSSMTimer?.cancel()
//展示冷启动失败视图
showColdStartFailView()
}
}
connectSSMTimer?.start()
}
}
/**
* SSM连接成功
*/
private fun connectSSMSuccess(){
if(!ssmConnectStatus){
coldStartNormalView()
//取消连接SSM超时等待倒计时
connectSSMTimer?.cancel()
//开始启动冷启动等待倒计时
coldStartProcess()
}
ssmConnectStatus = true
}
/**
* 冷启动过程
*/
private fun coldStartProcess(){
ThreadUtils.runOnUiThread {
connectColdStartTimer = object: CountDownTimer(COLD_START_WAITING_TIME,COLD_START_WAITING_TIME){
override fun onTick(millisUntilFinished: Long) {
}
override fun onFinish() {
//将冷启动状态置为false
coldStartStatus = false
currentColdStartSuccess = false
//展示冷启动失败视图
showColdStartFailView()
}
}
connectColdStartTimer?.start()
}
}
private val pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+")
/**

View File

@@ -2,7 +2,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#00000000"
android:endColor="#68696B"
android:endColor="#282B2E"
android:angle="270"
/>
<corners

View File

@@ -62,8 +62,8 @@ include ':test:crashreport-apmbyte'
//include ':OCH:bus:driver'
//include ':OCH:bus:passenger'
include ':OCH:taxi:driver'
include ':OCH:taxi:passenger'
//include ':OCH:taxi:driver'
//include ':OCH:taxi:passenger'
include ':OCH:taxi:pcommon'
include ':OCH:taxi:unmanned-driver'