Merge branch 'dev_robobus-m1-p-app-module_1.0.0_230112_1.0.0' into dev_robobus-m1-p-app-module_1.1.0_230112_1.1.0

# Conflicts:
#	OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt
#	app/build.gradle
#	app/functions/och.gradle
#	app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt
This commit is contained in:
wangmingjun
2023-03-03 17:29:34 +08:00
14 changed files with 144 additions and 78 deletions

View File

@@ -291,19 +291,21 @@ class PM2DrivingModel private constructor() {
PM2ServiceManager.queryDriverSiteByCoordinate(it,
object : OchCommonServiceCallback<PM2RoutesResponse>{
override fun onSuccess(data: PM2RoutesResponse?) {
if (data?.result === routesResult) {
if (data == null || data.result == null){
if (routesResult != null) {
routesResult == null
updateLocalOrder()
d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate= result is null")
return
}
return
}
if (data.result != null && data.result.equals(routesResult)){
d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate= not update")
return
}
if (data?.result?.sites === null) {
d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate ===== 没有路线")
routesResult = null
mNextStationIndex = 0
isGoingToNextStation = false
startOrStopCalculateRouteInfo(false)
mDrivingInfoCallback?.showNoTaskView(true)
return
}
routesResult = data.result
updatePassengerRouteInfo(data.result)
}
@@ -323,6 +325,14 @@ class PM2DrivingModel private constructor() {
}
}
private fun updateLocalOrder(){
routesResult = null
mNextStationIndex = 0
isGoingToNextStation = false
startOrStopCalculateRouteInfo(false)
mDrivingInfoCallback?.showNoTaskView(true)
}
private fun updatePassengerRouteInfo(result: PM2RoutesResult) {
mDrivingInfoCallback?.updateLine(result.name, result.runningDur)
if (result.sites != null) {

View File

@@ -17,7 +17,8 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer {
init {
hideWidget()
GSYVideoType.setShowType(com.shuyu.gsyvideoplayer.utils.GSYVideoType.SCREEN_MATCH_FULL)
GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL)
GSYVideoType.setRenderType(GSYVideoType.GLSURFACE)
}
override fun hideAllWidget() {
@@ -50,19 +51,19 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer {
}
private fun hideWidget(){
setViewShowState(mBottomContainer, GONE)
setViewShowState(mProgressBar, GONE)
setViewShowState(mCurrentTimeTextView, GONE)
setViewShowState(mTotalTimeTextView, GONE)
setViewShowState(mBottomProgressBar, GONE)
setViewShowState(mBackButton, GONE)
setViewShowState(mStartButton, GONE)
setViewShowState(mBottomContainer, INVISIBLE)
setViewShowState(mProgressBar, INVISIBLE)
setViewShowState(mCurrentTimeTextView, INVISIBLE)
setViewShowState(mTotalTimeTextView, INVISIBLE)
setViewShowState(mBottomProgressBar, INVISIBLE)
setViewShowState(mBackButton, INVISIBLE)
setViewShowState(mStartButton, INVISIBLE)
setViewShowState(mTopContainer, GONE)
setViewShowState(mTopContainer, INVISIBLE)
setViewShowState(mLoadingProgressBar, GONE)
setViewShowState(mLoadingProgressBar, INVISIBLE)
setViewShowState(
mLockScreen, GONE
mLockScreen, INVISIBLE
)
setIsTouchWiget(false)
@@ -75,7 +76,7 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer {
}
fun setCacheImageViewGone() {
setViewShowState(mThumbImageViewLayout, GONE)
setViewShowState(mThumbImageView, GONE)
setViewShowState(mThumbImageViewLayout, INVISIBLE)
setViewShowState(mThumbImageView, INVISIBLE)
}
}

View File

@@ -5,7 +5,10 @@ import android.view.View
import android.view.ViewGroup
import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.CountDownTimer
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
/**
@@ -26,7 +29,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
private var current = 0
private val time = 5000
private var pause = false
private var thread: Thread? = null
private var countDownTimer: CountDownTimer? = null
fun setData(list: MutableList<RotationItem>) {
if (list.isEmpty()) return
@@ -174,34 +177,21 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
}
private fun startTimer() {
if (null != thread && !thread?.isInterrupted!!) {
Logger.d(ImageAndVideoRotation.TAG, "thread.interrupt()")
thread?.interrupt()
thread = null
if (countDownTimer != null){
countDownTimer?.cancel()
countDownTimer = null
}
thread = Thread {
while (null != thread && !thread?.isInterrupted!!) {
try {
Logger.d(ImageAndVideoRotation.TAG, "sleep")
Thread.sleep(1000)
if (viewList[mViewPager.currentItem] is AdvanceImageView) {
Logger.d(ImageAndVideoRotation.TAG, "增加1s")
current += 1000
}else{
break
}
if (current >= time) {
Logger.d(ImageAndVideoRotation.TAG, "5s到跳转")
goNextItemView()
current = 0
break
}
} catch (e: InterruptedException) {
e.printStackTrace()
}
countDownTimer = object : CountDownTimer(5000,1000){
override fun onTick(millisUntilFinished: Long) {
d(SceneConstant.M_BUS_P + "startTimer", "倒计时秒 = ${millisUntilFinished/1000}" )
}
}
thread?.start()
override fun onFinish() {
d(ImageAndVideoRotation.TAG+ "startTimer", "5s到跳转")
goNextItemView()
}
}.start()
}
/**

View File

@@ -14,6 +14,7 @@ import com.mogo.eagle.core.utilcode.breakpoint.utils.DownloadUtils
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.BitmapHelper
import com.mogo.eagle.core.utilcode.util.FileUtils
import com.mogo.eagle.core.utilcode.util.ThreadPoolService
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.bus.passenger.R
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
@@ -87,7 +88,7 @@ class AdvanceVideoView @JvmOverloads constructor(
// BitmapHelper.getVideoThumbnail(path) /*获取第一帧图*/
cacheImage?.setImageResource(R.drawable.m2_p_video_holder)
setCacheImageViewVisible()
Thread {
ThreadPoolService.execute {
var bitmap = BitmapHelper.getVideoThumbnail(fileNetPath)
Logger.d(ImageAndVideoRotation.TAG, "setVideoPath")
ThreadUtils.runOnUiThread {
@@ -103,19 +104,7 @@ class AdvanceVideoView @JvmOverloads constructor(
.into(it)
}
}
}.start()
// Logger.d(ImageAndVideoRotation.TAG, "bitmap加载")
// cacheImage?.let {
// Glide.with(context).load(cacheImageUrl)
// .apply(
// RequestOptions().placeholder(R.drawable.m2_p_video_holder)
// .error(R.drawable.m2_p_video_holder)
// .fallback(R.drawable.m2_p_video_holder)
// .centerCrop()
// )
// .into(it)
// }
// videoViewPlayer?.thumbImageView = cacheImage
}
}
fun clearLocalErrorVideo(){

View File

@@ -2,6 +2,7 @@ package com.mogo.och.common.module.wigets;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.ViewDebug;
import android.widget.TextView;
@@ -21,7 +22,7 @@ public class MarqueeTextView extends androidx.appcompat.widget.AppCompatTextView
/**
* 自定义 gap
*/
private float mCustomGap = 0.3f;
private float mCustomGap = 0.5f;
/**
* 是否使用自定义 gap
*/
@@ -50,6 +51,19 @@ public class MarqueeTextView extends androidx.appcompat.widget.AppCompatTextView
return true;
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if (focused)
super.onFocusChanged(true, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
if (hasWindowFocus){}
super.onWindowFocusChanged(true);
}
@Override
@ViewDebug.ExportedProperty
public boolean isSelected() {

View File

@@ -1,6 +1,7 @@
package com.mogo.launcher.lancet
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import androidx.annotation.*
import com.knightboost.lancet.api.Origin
@@ -29,4 +30,25 @@ class CrashFix {
null
}
}
/**
* https://console.volcengine.com/apmplus/app/crash/detail/java/bb387ccd9c1a3c6ad2ede4e6f501a5e7?aid=302368&date=%7B%22granularity%22%3A%221h%22%2C%22duration%22%3A%22recently%22%2C%22range%22%3A%221w%22%7D&filters=%7B%22type%22%3A%22and%22%2C%22sub_conditions%22%3A%5B%7B%22dimension%22%3A%22os%22%2C%22op%22%3A%22in%22%2C%22type%22%3A%22expression%22%2C%22values%22%3A%5B%22Android%22%5D%7D%5D%7D&org_id=2100068151&os=Android&page_number=6&status=%5B%22pending%22%2C%22processing%22%2C%22solved%22%2C%22reopen%22%5D
* java.lang.IllegalArgumentException: Invalid audio buffer size.
* at android.media.AudioTrack.audioBuffSizeCheck(AudioTrack.java:1857)
at android.media.AudioTrack.<init>(AudioTrack.java:812)
at android.media.AudioTrack.<init>(AudioTrack.java:754)
at android.media.AudioTrack.<init>(AudioTrack.java:708)
at android.media.AudioTrack.<init>(AudioTrack.java:649)
at com.aispeech.lite.tts.a.a(SourceFile:70)
*/
@Insert
@TargetClass("com.aispeech.lite.tts.a")
@TargetMethod(methodName = "a")
fun fixAiSpeechCrash(context: Context, arg1: Int, arg2: Int) {
try {
Origin.callVoid()
} catch (t: Throwable) {
t.printStackTrace()
}
}
}

View File

@@ -91,13 +91,20 @@ object ConfigStartUp {
HdMapBuildConfig.currentCarVrIconRes = R.raw.huanwei
} else if (AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)){
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache
} else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache
} else if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)){
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache
} else if (AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)){
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache
}
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) ||
AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)
|| AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) ||
AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
//是否显示 限速UI
HmiBuildConfig.isShowLimitingVelocityView = false
//白天模式

View File

@@ -5,21 +5,27 @@
"shuttle_url": "https://och-driver-qa.zhidaozhixing.com",
"passport_url": "",
"socket_base_url": "",
"socket_tech_url": ""
"socket_tech_url": "",
"eagle_mis_url": "",
"eagle_dns_url": ""
},
"online": {
"och_url": "https://tech.zhidaohulian.com",
"shuttle_url": "https://och-driver.zhidaozhixing.com",
"passport_url": "",
"socket_base_url": "",
"socket_tech_url": ""
"socket_tech_url": "",
"eagle_mis_url": "",
"eagle_dns_url": ""
},
"demo": {
"och_url": "http://tech-dev.zhidaohulian.com",
"shuttle_url": "https://och-driver-dev.zhidaozhixing.com",
"passport_url": "",
"socket_base_url": "",
"socket_tech_url": ""
"socket_tech_url": "",
"eagle_mis_url": "",
"eagle_dns_url": ""
}
},
"dali": {
@@ -28,21 +34,27 @@
"shuttle_url": "https://och-a.zhidaozhixing.com",
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/"
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
"eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/",
"eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/"
},
"online": {
"och_url": "https://och-a.zhidaozhixing.com",
"shuttle_url": "https://och-a.zhidaozhixing.com",
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/"
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
"eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/",
"eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/"
},
"demo": {
"och_url": "https://och-a.zhidaozhixing.com",
"shuttle_url": "https://och-a.zhidaozhixing.com",
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/"
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
"eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/",
"eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/"
}
}
}

View File

@@ -7,7 +7,6 @@ import android.view.View
import android.view.WindowManager
import android.view.animation.OvershootInterpolator
import com.mogo.eagle.core.data.enums.SidePattern
import com.mogo.eagle.core.data.deva.report.ReportEntity
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.hmi.notification.WarningFloat

View File

@@ -12,5 +12,9 @@ data class UrlConfig(
@SerializedName("socket_base_url")
val socketBaseUrl: String,
@SerializedName("socket_tech_url")
val socketTechUrl: String
val socketTechUrl: String,
@SerializedName("eagle_mis_url")
val eagleMisUrl: String,
@SerializedName("eagle_dns_url")
val eagleDnsUrl: String
)

View File

@@ -0,0 +1,12 @@
package com.mogo.eagle.core.data.telematic
/**
* @author: wangmingjun
* @date: 2023/3/3
* 供网约车司乘屏通信使用
*/
class TelematicConstant {
companion object {
const val BUSINESS_STRING = 100
}
}

View File

@@ -39,7 +39,7 @@ object MultiDisplayUtils {
// 获取除了内置屏幕(主屏幕)的其它屏幕
val displays = mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION)
// 初始化新的集合进行接收排序后的屏幕信息,防止数组越界初始化列表相同的集合集合中会有null需要在使用判断null即没有连接屏幕
var displaysList = arrayOfNulls<Display>(lcd_sub_port_six_lcd_mode.size)
var displaysList = arrayOf<Display?>()
Log.d(TAG, "displays:$displays")
// 判断副屏个数
@@ -67,10 +67,10 @@ object MultiDisplayUtils {
// 处理EB5副屏幕
else {
if (mDisplayManager.displays.isNotEmpty()) {
displaysList = arrayOfNulls(1)
// EB5目前副屏幕ID为固定4096
for (i in mDisplayManager.displays.indices) {
if (mDisplayManager.displays[i].displayId == 4096) {
displaysList = arrayOfNulls(1)
displaysList[0] = mDisplayManager.displays[i]
}
}

View File

@@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7
applicationId=com.mogo.launcer
applicationName=IntelligentPilot
# RoboBus司机端2.5.1RoboTaxi司机端2.5.1RoboTaxi乘客端1.0.0
versionCode=1002000
versionName=1.0.2
versionCode=1001000
versionName=1.0.1
################# 新架构模块Maven版本管理 #################
MOGO_CORE_FUNCTION_HMI_VERSION=0.0.58.10

View File

@@ -120,6 +120,9 @@ public class AMapWrapper implements IMogoMap {
if (!checkAMap()) {
return;
}
if(optionsArrayList == null || optionsArrayList.size() == 0){
return;
}
ArrayList<MarkerSimpleData> markerOptionsArrayList = new ArrayList<>();
optionsArrayList.forEach((s, trackedObject) -> {
MarkerSimpleData markerOptions = ObjectUtils.fromTrafficData(trackedObject);
@@ -127,6 +130,9 @@ public class AMapWrapper implements IMogoMap {
markerOptionsArrayList.add(markerOptions);
}
});
if(markerOptionsArrayList.size() == 0){
return;
}
long time = markerOptionsArrayList.get(0).getTime();
MarkerHelper.INSTANCE.updateBatchMarkerPositon(markerOptionsArrayList, false, FunctionBuildConfig.isBeautyMode ? 8.0f : 0f, 1, time, 1);
}