「dev_opt_2.15.0」

1、功能范围:bus司机屏增加开关;bus乘客屏展示视频流;

  交互&逻辑:在司机屏运营面板增加开关,用于控制是否展示视频位:

  开关开启时,有视频流的车辆持续常驻展示视频流,无视频流的车辆不展示(无占位);
  开关关闭时,无论是否有视频流,均不展示(无占位);开关默认关闭
  开关开启后,有视频流的展示位置如图所示常驻展示:
This commit is contained in:
donghongyu
2023-04-18 17:20:36 +08:00
parent bbce847be0
commit 4f27ee71d3
3 changed files with 34 additions and 1 deletions

View File

@@ -16,6 +16,7 @@ import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.hmi.ui.widget.DriverMonitorView;
import com.mogo.eagle.core.function.view.MapBizView;
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
@@ -42,6 +43,7 @@ public abstract class BusPassengerBaseFragment<V extends IView, P extends Presen
private View mLiveBtn;
private View mLiveShadow;
private DriverMonitorView driverMonitorView;
/**
* 改变自动驾驶状态
*
@@ -70,8 +72,15 @@ public abstract class BusPassengerBaseFragment<V extends IView, P extends Presen
mProgressBar = findViewById(R.id.bus_progress_bar);
mLiveShadow = findViewById(R.id.liveShadow);
driverMonitorView = findViewById(R.id.driverMonitorView);
mLiveBtn = findViewById(R.id.liveBtn);
driverMonitorView.setLiveListener(
() -> {
mLiveShadow.setVisibility(View.GONE);
}
);
mLiveBtn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {

View File

@@ -173,6 +173,7 @@
android:background="@drawable/bus_p_panel_cur_station_panel">
<com.mogo.eagle.core.function.hmi.ui.widget.DriverMonitorView
android:id="@+id/driverMonitorView"
android:layout_width="@dimen/bus_p_live_station_panel_width"
android:layout_height="@dimen/bus_p_curent_station_panel_height" />
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -15,7 +15,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.widget.RoundConstraintLayout
import kotlinx.android.synthetic.main.view_driver_monitor.view.*
import kotlinx.android.synthetic.main.view_driver_monitor.view.ivNormal
import kotlinx.android.synthetic.main.view_driver_monitor.view.liveProgressBar
import kotlinx.android.synthetic.main.view_driver_monitor.view.textureViewDriverMonitor
import kotlinx.android.synthetic.main.view_driver_monitor.view.tvLoadingHit
/**
* 乘客端查看当前车辆驾驶舱的司机监控View
@@ -56,6 +59,8 @@ class DriverMonitorView :
)
}
var liveListener: LiveListener? = null
constructor(context: Context?) : super(context) {
initView(context)
}
@@ -124,6 +129,20 @@ class DriverMonitorView :
textureViewDriverMonitor,
carLiveCallBack
)
} ?: let {
//为空又怎么撸
if (CallerTelematicManager.getServerToken().isNotEmpty()) {
Logger.d(
"${SceneConstant.M_HMI}$TAG",
"检查司机直播……isLived=$isLived 当前车辆SN=${CallerTelematicManager.getServerToken()} 不支持直播"
)
CallerLogger.d(
"${SceneConstant.M_HMI}$TAG",
"检查司机直播……isLived=$isLived 当前车辆SN=${CallerTelematicManager.getServerToken()} 不支持直播"
)
// 乘客屏幕连接上了司机屏,但是司机屏不在直播范围内,进行隐藏操作。
liveListener?.onPlayError()
}
}
// TODO 测试用的
// MoGoAiCloudTrafficLive.viewDesignativeVehicleLive(
@@ -186,4 +205,8 @@ class DriverMonitorView :
}
}
interface LiveListener {
fun onPlayError()
}
}