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:
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
//白天模式
|
||||
|
||||
@@ -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/"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7
|
||||
applicationId=com.mogo.launcer
|
||||
applicationName=IntelligentPilot
|
||||
# RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端: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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user