diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt
index 5509d06e44..d69b123522 100644
--- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt
+++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt
@@ -136,7 +136,7 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
"打开空调,模式$modeCmd--档位${windSpeedCmd}--温度:$temperatureCmd")
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd)
disposeSubscribe(airconditionDisposable)
- airconditionDisposable = createSubscribe(5000){
+ airconditionDisposable = createSubscribe(10000){
if (!OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen&&
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&&
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&&
@@ -149,7 +149,7 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭空调")
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,0,0,0)
disposeSubscribe(airconditionDisposable)
- airconditionDisposable = createSubscribe(5000){
+ airconditionDisposable = createSubscribe(10000){
if (OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen) {
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
}
@@ -162,7 +162,7 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风机、档位${windSpeedCmd}")
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd)
disposeSubscribe(heaterDisposable)
- heaterDisposable = createSubscribe(5000){
+ heaterDisposable = createSubscribe(10000){
if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen&&
OCHM1LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) {
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")
@@ -174,9 +174,9 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风机")
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0)
disposeSubscribe(heaterDisposable)
- heaterDisposable = createSubscribe(5000){
- if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen) {
- ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")
+ heaterDisposable = createSubscribe(10000){
+ if (OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen) {
+ ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的
}
}
}
diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt
index 081bf8dcfd..f38163ac3a 100644
--- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt
+++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt
@@ -10,6 +10,9 @@ import android.media.AudioManager
import android.os.Bundle
import android.view.Gravity
import android.view.View
+import android.view.animation.Animation
+import android.view.animation.AnimationUtils
+import android.view.animation.LinearInterpolator
import android.widget.RadioButton
import android.widget.SeekBar
import android.widget.SeekBar.OnSeekBarChangeListener
@@ -39,6 +42,7 @@ import kotlinx.android.synthetic.m1.bus_p_function_setting_soft_fragment.*
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.concurrent.TimeUnit
+
/**
* @author: yangyakun
* @date: 2023/1/28
@@ -55,30 +59,46 @@ class BusPassengerFunctionSoftFragment :
private var subscribeLightTop1: Disposable? = null
private var subscribeLightTop2: Disposable? = null
private var subscribeAtmosphere: Disposable? = null
+ private var subscribeAnimator: Disposable? = null
private var animator1: ObjectAnimator? = null
+ private val loadingAni = ObjectAnimator.ofFloat(iv_loading, "rotation", 0f, 90f ,180f, 270f, 360f).apply {
+ repeatCount = -1
+ interpolator = LinearInterpolator()
+ duration = 1000
+ }
override fun initViews() {
rg_select_function.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
R.id.tv_setting_aircondition -> {
- g_aircondition_setting.visibility = View.VISIBLE
g_light_setting.visibility = View.GONE
g_voice_setting.visibility = View.GONE
+ if(loadingAni.isRunning){
+ iv_loading.visibility = View.VISIBLE
+ g_aircondition_setting.visibility = View.GONE
+ }else{
+ g_aircondition_setting.visibility = View.VISIBLE
+ }
}
R.id.tv_setting_lighting -> {
g_light_setting.visibility = View.VISIBLE
g_voice_setting.visibility = View.GONE
g_aircondition_setting.visibility = View.GONE
+ iv_loading.visibility = View.GONE
}
R.id.tv_setting_voice -> {
g_voice_setting.visibility = View.VISIBLE
g_aircondition_setting.visibility = View.GONE
g_light_setting.visibility = View.GONE
+ iv_loading.visibility = View.GONE
}
else -> {}
}
+ if(rb_pattern_heating.isChecked){
+ iv_temperature_select.visibility = View.GONE
+ }
}
rg_select_function.check(R.id.tv_setting_aircondition)
setAirconditionListener()
@@ -100,30 +120,43 @@ class BusPassengerFunctionSoftFragment :
}
}
+ fun showAni(){
+ iv_loading.visibility = View.VISIBLE
+ loadingAni.target = iv_loading
+ loadingAni.start()
+ g_aircondition_setting.visibility = View.GONE
+ subscribeAnimator = Observable.timer(10000, TimeUnit.MILLISECONDS)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe {
+ loadingAni.cancel()
+ iv_loading.visibility = View.GONE
+ if(tv_setting_aircondition.isChecked){
+ g_aircondition_setting.visibility = View.VISIBLE
+ if(rb_pattern_heating.isChecked){
+ iv_temperature_select.visibility = View.GONE
+ }
+ }
+ }
+ }
private fun setAirconditionListener() {
// 开关空调或暖风机
tv_aircondition_switch.setOnCheckedChangeListener { buttonView, isChecked ->
if(!buttonView.isPressed){
return@setOnCheckedChangeListener
}
- if(isChecked){
- tv_aircondition_switch.setText("关闭空调")
- }else{
- tv_aircondition_switch.setText("打开空调")
- }
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
- if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) {
- if (isChecked) {// 打开暖风机
- openHeater()
- } else {// 关闭暖风机
- closeHeater()
- }
- } else {
- if (isChecked) {// 打开空调
- openAircondition()
- } else {//关闭空调
- closeAircondition()
+ if(isChecked){//打开
+ tv_aircondition_switch.setText("关闭空调")
+ if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) {
+ openHeater()// 打开暖风机
+ } else {
+ openAircondition()// 打开空调
}
+ showAni()
+ }else{// 关闭
+ tv_aircondition_switch.setText("打开空调")
+ closeHeater()// 关闭暖风机
+ closeAircondition()//关闭空调
}
}
// 模式调节
@@ -162,6 +195,9 @@ class BusPassengerFunctionSoftFragment :
openAircondition()
}
}
+ if(tv_aircondition_switch.isChecked) {
+ showAni()
+ }
}
// 风速调节
@@ -361,9 +397,6 @@ class BusPassengerFunctionSoftFragment :
private fun closeHeater() {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风")
heaterAirEnable(true)
- if (!tv_aircondition_switch.isChecked) {
- return
- }
mPresenter?.closeHeader()
}
@@ -603,6 +636,8 @@ class BusPassengerFunctionSoftFragment :
mPresenter?.disposeSubscribe(subscribeLightTop1)
mPresenter?.disposeSubscribe(subscribeLightTop2)
mPresenter?.disposeSubscribe(subscribeAtmosphere)
+ mPresenter?.disposeSubscribe(subscribeAnimator)
+
super.onDestroy()
}
diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt
index e71d7625cc..8808463784 100644
--- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt
+++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt
@@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView
+import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.R
import kotlinx.android.synthetic.m1.bus_p_m1_view_status_bar.view.*
import me.jessyan.autosize.utils.AutoSizeUtils
@@ -47,6 +48,7 @@ class StatusBarView @JvmOverloads constructor(
}
//添加view控制
CallerHmiViewControlListenerManager.addListener(TAG,this)
+ CallerHmiViewControlListenerManager.setListenerHz(TAG,5)
// 添加换肤监听
CallerSkinModeListenerManager.addListener(TAG, this)
@@ -82,9 +84,11 @@ class StatusBarView @JvmOverloads constructor(
}
override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) {
- val bmsSoc = states.bmsSoc
- progress.progress = bmsSoc.toInt()
- tv_power_cos.text = "${bmsSoc.roundToInt()}%"
+ UiThreadHandler.post {
+ val bmsSoc = states.bmsSoc
+ progress.progress = bmsSoc.toInt()
+ tv_power_cos.text = "${bmsSoc.roundToInt()}%"
+ }
}
}
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/anim/bus_p_loading_rotate.xml b/OCH/mogo-och-bus-passenger/src/m1/res/anim/bus_p_loading_rotate.xml
new file mode 100644
index 0000000000..a0d7903789
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/anim/bus_p_loading_rotate.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_loading.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_loading.png
new file mode 100644
index 0000000000..ca42ea6abb
Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_loading.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml
index 58b2aa14d7..47d7a64006 100644
--- a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml
@@ -287,6 +287,17 @@
android:textSize="@dimen/dp_24" />
+
+
list = new ArrayList<>();
+
+ try {
+ JSONObject jsonObject = new JSONObject(jsonStr);
+ JSONArray jsonElements = jsonObject.getJSONArray("models");
+ for (int i = 0; i < jsonElements.length(); i++) {
+ JSONObject s = jsonElements.getJSONObject(i);
+ MessagePad.Location.Builder builder = MessagePad.Location.newBuilder();
+ builder.setLatitude(s.getDouble("latitude_"));
+ builder.setLongitude(s.getDouble("longitude_"));
+ list.add(builder.build());
+ }
+ PM2DrivingModel.Companion.getINSTANCE().updateRoutePoints(list);
+
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt
index 0daac0e268..1da862dc25 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt
@@ -1,7 +1,12 @@
package com.mogo.och.bus.passenger.model
import android.content.Context
+import android.net.ConnectivityManager
import android.os.Handler
+import com.mogo.commons.module.intent.IMogoIntentListener
+import com.mogo.commons.module.intent.IntentManager
+import com.mogo.commons.voice.AIAssist
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.map.MogoLocation
@@ -17,7 +22,6 @@ import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManage
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.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
@@ -34,7 +38,6 @@ import com.mogo.och.bus.passenger.network.PM2ModelLoopManager
import com.mogo.och.common.module.bean.AppConnectMsg
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
-import com.mogo.och.common.module.voice.VoiceNotice.showNotice
import mogo.telematics.pad.MessagePad
import kotlin.math.abs
@@ -103,6 +106,9 @@ class PM2DrivingModel private constructor() {
//自动驾驶轨迹监听
CallerPlanningRottingListenerManager.addListener(TAG, moGoAutopilotPlanningListener)
+ //网络监听
+ IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
+
}
fun releaseListener(){
@@ -126,6 +132,14 @@ class PM2DrivingModel private constructor() {
mAutoStatusCallback = autoPilotStatusCallback
}
+ private val mNetWorkIntentListener = IMogoIntentListener { intentStr, _ ->
+ if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) {
+ if (NetworkUtils.isConnected(mContext)) {
+ queryDriverOperationStatus()
+ }
+ }
+ }
+
private val mReceivedMsgListener: IReceivedMsgListener =
object : IReceivedMsgListener{
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {//接收司机端发来的信息
@@ -133,12 +147,40 @@ class PM2DrivingModel private constructor() {
val msg = GsonUtils.fromJson(String(byteArray),AppConnectMsg::class.java) as AppConnectMsg
Logger.d(TAG,"onReceivedMsg = "+GsonUtils.toJson(msg))
if (msg.isPlay){ //播报
- showNotice(msg.msg)
+ speakTTS(msg.msg)
}
}
}
}
+ private fun speakTTS(msg: String) {
+
+// var mAudioManager = mContext?.getSystemService(Context.AUDIO_SERVICE) as AudioManager
+// var mAudioAttributes = AudioAttributes.Builder()
+// .setUsage(AudioAttributes.USAGE_MEDIA) //设置声音的用途
+// .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) //设置声音的类型
+// .build()
+// var mAudioFocusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK) //设置焦点类型
+// .setAudioAttributes(mAudioAttributes) //设置声音属性
+// .setAcceptsDelayedFocusGain(false) //设置接受延迟获取焦点,需要设置OnAudioFocusChangeListener来监听焦点的获取
+// .build()
+// mAudioManager.requestAudioFocus(mAudioFocusRequest) //抢占焦点
+
+ AIAssist.getInstance(mContext).speakTTSVoiceWithLevel(msg,AIAssist.LEVEL0,object : IMogoVoiceCmdCallBack{
+ override fun onSpeakEnd(speakText: String?) {
+// mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
+ }
+
+ override fun onSpeakError(speakText: String?, errorMsg: String?) {
+// mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
+ }
+
+ override fun onSpeakSelectTimeOut(speakText: String?) {
+// mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
+ }
+ })
+ }
+
private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener =
object : IMoGoChassisLocationGCJ02Listener{
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
@@ -293,6 +335,7 @@ class PM2DrivingModel private constructor() {
&& station.isLeaving && i + 1 < stations.size) {
mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i + 1, false)
if (mNextStationIndex != i + 1) {
+ d(TAG,"轨迹排查--开始行程")
mTwoStationsRouts.clear()
startRemainRouteInfo()
}
@@ -300,9 +343,6 @@ class PM2DrivingModel private constructor() {
mNextStationIndex = i + 1
return
} else if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) {
- if (i == 0) {
-// startOrStopRouteAndWipe(false)
- }
mPreRouteIndex = 0
isGoingToNextStation = false
startOrStopCalculateRouteInfo(false)
@@ -419,17 +459,6 @@ class PM2DrivingModel private constructor() {
}
}
}
- if (mTwoStationsRouts.size > 0) {
- val sumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(
- mTwoStationsRouts
- )
- mContext?.let {
- SharedPrefsMgr.getInstance(it).putInt(
- BusPassengerConst.BUS_SP_KEY_ORDER_SUM_DIS,
- sumLength.toInt()
- )
- }
- }
}
}
diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt
index 111a83ad40..1182752a5a 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt
@@ -48,25 +48,27 @@ class PM2DrivingInfoFragment :
context?.let { it -> ToggleDebugView.toggleDebugView.toggle(it) }
}
current_time_tv.onClick {
- //测试V2X消息
- CallerMsgBoxManager.saveMsgBox(
- MsgBoxBean(
- MsgBoxType.V2X,
- V2XMsg(
- "6666",
- "超速行驶",
- ""
- )
- )
- )
- val noticeTrafficStylePushData = NoticeTrafficStylePushData()
- noticeTrafficStylePushData.content= "测试公告布局"
- val noticeFromCloudMsg = NoticeFrCloudMsg(null, noticeTrafficStylePushData, 1)
- CallerMsgBoxManager.saveMsgBox(
- MsgBoxBean(
- MsgBoxType.NOTICE, noticeFromCloudMsg)
- )
+// //测试V2X消息
+// CallerMsgBoxManager.saveMsgBox(
+// MsgBoxBean(
+// MsgBoxType.V2X,
+// V2XMsg(
+// "6666",
+// "超速行驶",
+// ""
+// )
+// )
+// )
+//
+// val noticeTrafficStylePushData = NoticeTrafficStylePushData()
+// noticeTrafficStylePushData.content= "测试公告布局"
+// val noticeFromCloudMsg = NoticeFrCloudMsg(null, noticeTrafficStylePushData, 1)
+// CallerMsgBoxManager.saveMsgBox(
+// MsgBoxBean(
+// MsgBoxType.NOTICE, noticeFromCloudMsg)
+// )
+// BPRouteDataTestUtils.converToRouteData()
}
updateCurrentTime()
}
@@ -118,7 +120,9 @@ class PM2DrivingInfoFragment :
}
fun changeOperationStatus(status:Boolean){
- setLineInfoView(status)
+ if (!status){
+ updateNoOrderUI()
+ }
}
fun showNoTaskView(haveTask: Boolean){
@@ -131,15 +135,19 @@ class PM2DrivingInfoFragment :
line_during_tv.visibility = View.VISIBLE
no_line_tv.visibility = View.GONE
}else{
- line_name_tv.visibility = View.GONE
- line_during_tv.visibility = View.GONE
- no_line_tv.visibility = View.VISIBLE
- updateNoStationView()
- overMapView.clearSiteMarkers()
- overMapView.clearCustomPolyline()
+ updateNoOrderUI()
}
}
+ private fun updateNoOrderUI() {
+ line_name_tv.visibility = View.GONE
+ line_during_tv.visibility = View.GONE
+ no_line_tv.visibility = View.VISIBLE
+ updateNoStationView()
+ overMapView.clearSiteMarkers()
+ overMapView.clearCustomPolyline()
+ }
+
private fun updateNoStationView(){
station_name_tv.setTextColor(resources.getColor(R.color.m2_no_line_tv_color))
station_name_title_tv.text = resources.getString(R.string.m2_p_station_title_tv)
@@ -203,7 +211,7 @@ class PM2DrivingInfoFragment :
}
}
- val time = ceil(timeInSecond as Double / 60f).toInt()
+ val time = ceil(timeInSecond / 60f).toInt()
"$remainDis$disUnit | $time 分钟".also { remain_mt.text = it }
}
diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt
index d800e4c770..393619a920 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt
@@ -84,7 +84,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
private fun addView(item: RotationItem) {
if (item.type == 1) { // 表示视频
val videoView = AdvanceVideoView(mContext)
- videoView.setVideoPath(item.path)
+ videoView.setVideoPath(item.path,item.cacheImgPath)
viewList.add(videoView)
} else { // 表示图片
val imageView = AdvanceImageView(mContext)
diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt
index ceffd532b9..78d562a7c9 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt
@@ -35,6 +35,7 @@ class AdvanceVideoView @JvmOverloads constructor(
private var mOnCompletionListener: GSYSampleCallBack? = null
private var downloadVideoName = ""
private var fileNetPath: String? = ""
+ private var cacheImageUrl: String? = ""
init {
initView()
@@ -69,10 +70,11 @@ class AdvanceVideoView @JvmOverloads constructor(
videoRelativeLayout?.addView(videoViewPlayer, layoutParams)
}
- fun setVideoPath(path: String) {
+ fun setVideoPath(path: String,cacheImageUrl: String) {
// https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357834634/5.m4v
// https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360274126/10.mp4
this.fileNetPath = path
+ this.cacheImageUrl = cacheImageUrl
val pathList = path.split("/")
if (pathList.isNotEmpty()){
this.downloadVideoName = pathList[pathList.size - 1]
@@ -83,22 +85,37 @@ class AdvanceVideoView @JvmOverloads constructor(
private fun loadCacheImg() {
// BitmapHelper.getVideoThumbnail(path) /*获取第一帧图*/
+ cacheImage?.setImageResource(R.drawable.m2_p_video_holder)
setCacheImageViewVisible()
- Thread{
- var bitmap = BitmapHelper.getVideoThumbnail(fileNetPath)
+ Thread {
+ var bitmap = BitmapHelper.getVideoThumbnail(fileNetPath)
Logger.d(ImageAndVideoRotation.TAG, "setVideoPath")
ThreadUtils.runOnUiThread {
Logger.d(ImageAndVideoRotation.TAG, "bitmap加载")
cacheImage?.let {
Glide.with(context).load(bitmap)
.apply(
- RequestOptions().placeholder(R.drawable.m2_p_video_holder).centerCrop()
+ 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
}
}.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(){
@@ -110,11 +127,13 @@ class AdvanceVideoView @JvmOverloads constructor(
@SuppressLint("CheckResult")
fun setCacheImageViewVisible() {
+ videoViewPlayer?.thumbImageView = cacheImage
videoViewPlayer?.setCacheImageViewVisible()
}
fun setCacheImageViewGone() {
videoViewPlayer?.setCacheImageViewGone()
+ videoViewPlayer?.clearThumbImageView()
}
fun setVideo(onCompletionListener: GSYSampleCallBack) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml
index 0eb0cb4f85..16d9e8869c 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml
@@ -25,6 +25,8 @@
app:layout_constraintCircle="@id/cbMsgBoxM1"
app:layout_constraintCircleAngle="35"
app:layout_constraintCircleRadius="25dp"
- tools:ignore="MissingConstraints" />
+ tools:ignore="MissingConstraints"
+ android:visibility="gone"
+ />
\ No newline at end of file