[清扫车]部分UI走查修改

This commit is contained in:
bxb
2023-03-07 18:18:50 +08:00
parent e160184ac7
commit dc8a8459a2
53 changed files with 586 additions and 506 deletions

Binary file not shown.

View File

@@ -61,13 +61,12 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
private static final String TAG = "BaseSweeperTabFragment";
//地图放大缩小
private ImageView mSwitchMapModeImage;
private LinearLayout mSwitchMapModeLayout;
//设置信息面板
protected FrameLayout mSettingBtn;
protected ImageView mSettingBtn;
//安全员问题上报面板
protected FrameLayout mBadcaseBtn;
protected ImageView mCardBtn;
//道路状况上报面板
protected FrameLayout mAICollectBtn;
protected ImageView mAICollectBtn;
//任务列表面板
private FrameLayout flTaskListPanelContainer;
private MapBizView mapBizView;
@@ -114,11 +113,10 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
flTaskListPanelContainer = findViewById(R.id.module_mogo_och_task_list_container);
mTrafficDataView = findViewById(R.id.sweeper_arc);
panelView = LayoutInflater.from(getContext()).inflate(getTaskListPanelViewId(), flTaskListPanelContainer);
mSwitchMapModeLayout = findViewById(R.id.sweeper_switch_model_layout);
mSwitchMapModeImage = findViewById(R.id.sweeper_switch_model_icon);
mSettingBtn = findViewById(R.id.module_mogo_och_setting_layout);
mBadcaseBtn = findViewById(R.id.module_mogo_och_badcase_rl);
mAICollectBtn = findViewById(R.id.module_mogo_och_ai_collet_rl);
mSettingBtn = findViewById(R.id.sweeper_setting_model_icon);
mCardBtn = findViewById(R.id.sweeper_card_model_icon);
mAICollectBtn = findViewById(R.id.sweeper_collect_model_icon);
mCloseNavIcon = findViewById(R.id.sweeper_close_navi_icon);
mRefreshNavi = findViewById(R.id.sweeper_refresh_navi);
mMapWeltView = findViewById(R.id.sweeper_task_welt_small_map);
@@ -159,11 +157,11 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController();
if (controller != null) {
if (controller.getCurrentMapVisualAngle().isLongSight()) {
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_long);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_big_selector);
} else if (controller.getCurrentMapVisualAngle().isMediumSight()) {
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_medium);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_small_selector);
} else {
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_medium);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_small_selector);
}
}
}
@@ -303,11 +301,11 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
@Override
public void onMapVisualAngleChanged(VisualAngleMode visualAngleMode) {
if (visualAngleMode.isMediumSight()) {
mSwitchMapModeLayout.setVisibility(View.VISIBLE);
mSwitchMapModeImage.setVisibility(View.VISIBLE);
} else if (visualAngleMode.isLongSight()) {
mSwitchMapModeLayout.setVisibility(View.VISIBLE);
mSwitchMapModeImage.setVisibility(View.VISIBLE);
} else if (visualAngleMode.isCloseSight()) {
mSwitchMapModeLayout.setVisibility(View.GONE);
mSwitchMapModeImage.setVisibility(View.GONE);
}
}
@@ -331,7 +329,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
*/
private void setBottomBtnListener() {
updateSwitchMapIcon();
mSwitchMapModeLayout.setOnClickListener(new OnPreventFastClickListener() {
mSwitchMapModeImage.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController();
@@ -342,34 +340,29 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers();
controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_medium);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_small_selector);
} else if (controller.getCurrentMapVisualAngle().isMediumSight()) {
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp())
// .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS, BusConst.TYPE_MARKER_BUS_ORDER);
controller.changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_long);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_big_selector);
} else {
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers();
controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_long);
mSwitchMapModeImage.setImageResource(R.drawable.sweeper_switch_map_big_selector);
}
}
}
});
mSettingBtn = findViewById(R.id.module_mogo_och_setting_layout);
mSettingBtn.setOnClickListener(v -> {
// TODO: 2021/12/9
CallerHmiManager.INSTANCE.showToolsView();
});
// mBadcaseBtn的visible显示逻辑在showBadcaseEntrance内处理
mBadcaseBtn = findViewById(R.id.module_mogo_och_badcase_rl);
if (mBadcaseBtn != null) {
CallerDevaToolsManager.INSTANCE.initBadCase(mBadcaseBtn);
if (mCardBtn != null) {
CallerDevaToolsManager.INSTANCE.initBadCase(mCardBtn);
}
mAICollectBtn = findViewById(R.id.module_mogo_och_ai_collet_rl);
if (mAICollectBtn != null) {
CallerDevaToolsManager.INSTANCE.initAiCollect(mAICollectBtn);
}

View File

@@ -18,6 +18,7 @@ import com.mogo.och.sweeper.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean
import com.mogo.och.sweeper.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.constant.TaskStatusEnum
import com.mogo.och.sweeper.database.MyDataBase
import com.mogo.och.sweeper.database.bean.WeltDataBean
import com.mogo.och.sweeper.presenter.SweeperPresenter
import com.mogo.och.sweeper.ui.adapter.TaskListAdapter
@@ -28,7 +29,6 @@ import kotlinx.android.synthetic.main.fragment_och_sweeper.*
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.*
import kotlinx.android.synthetic.main.sweeper_no_data_common_view.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.math.BigDecimal
import java.math.RoundingMode
@@ -47,7 +47,6 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
private var mMainTask: SweeperMainTaskBean? = null
private var mLocation: MogoLocation? = null
private var mSubInfo: SubInfo? = null
private var isFinished:Boolean=true
//当前经纬度
override fun getTagName(): String {
@@ -255,11 +254,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
showAmapNaviToStationFragment(false)
mPresenter?.getMainTaskList()
clearAllMarkerAndPolyline()
//整个大任务结束,则删除它相关的贴边数据缓存
lifecycleScope.launch(Dispatchers.IO) {
MyDataBase.getInstance().weltDataDao.deleteAllWeltData()
}
return
}
when (typeEnum.code) {
TaskStatusEnum.END_SUBTASK.code -> {//子任务结束
isFinished=false
mCurrentSubPosition++
setSubTaskData()
d(SceneConstant.M_SWEEPER + TAG, "END_SUBTASK mCurrentSubPosition$mCurrentSubPosition")
@@ -322,6 +324,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
//清除任务全览图的marker和路线
clearAllMarkerAndPolyline()
showOrHideOverMapViewFragment(false)
showAmapNaviToStationFragment(false)
//整个大任务结束,则删除它相关的贴边数据缓存
lifecycleScope.launch(Dispatchers.IO) {
MyDataBase.getInstance().weltDataDao.deleteAllWeltData()
}
}
}
@@ -497,13 +504,6 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
//模拟结束子任务
override fun debugEndSubTask() {
lifecycleScope.launch(Dispatchers.IO){
while (isFinished){
mSubInfo?.let {
mPresenter?.onArriveTaskEnd(null)
}
delay(100)
}
}
mPresenter?.onArriveTaskEnd(null)
}
}

View File

@@ -70,8 +70,6 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
private static final long WELT_DATA_INTERVAL_MILLIS = 2000L;
// 贴边数据当前时间戳
private long mWeltDataCurrentTimeMillis;
//当前自动驾驶状态
private int mCurrentAutopilotStatus;
public SweeperPresenter(SweeperFragment view) {
super(view);
@@ -119,6 +117,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
if (autopilotStatusInfo == null) return;
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onAutopilotStatusResponse state:" + autopilotStatusInfo.getState());
SweeperTaskModel.getInstance().setAutopilotState(autopilotStatusInfo.getState());
ThreadUtils.runOnUiThread(() -> mView.startAutoBtn(autopilotStatusInfo.getState()));
switch (autopilotStatusInfo.getState()) {
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE://不可自动驾驶
@@ -381,36 +380,6 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
if (subTaskStatus == 1) {
SweeperTaskModel.getInstance().subTaskStart(isFirst, isEnd, subTaskId, subTaskType);
}
// AutopilotControlParameters parameters = new AutopilotControlParameters();
// parameters.isSpeakVoice = true;
// parameters.routeID = 164;
// parameters.routeName = "bus5KM小董";
// parameters.startName = PinYinUtil.getPinYinHeadChar("鹰眼270-13号路口起");
// parameters.endName = PinYinUtil.getPinYinHeadChar("老干部演绎中心11223");
// parameters.startLatLon = new AutopilotControlParameters
// .AutoPilotLonLat( 40.199247410363796,116.73367125257714 );
// parameters.endLatLon = new AutopilotControlParameters
// .AutoPilotLonLat(40.20237, 116.74481 );
// parameters.vehicleType = 10;
// if (parameters.autoPilotLine == null) {
// parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
// 164,
// "/home/mogo/data/vehicle_monitor/MapEngine_data/track_record_data/JL/traj_164.csv",
// "",
// "/home/mogo/data/vehicle_monitor/MapEngine_data/track_record_data/JL/stop_164.txt",
// "",
// 1662021611000L,
// "金旅牌XML6606JEVY0",
// "",
// "",
// "",
// "",
// 0L);
// }
//// CallerLogger.INSTANCE.d( M_BUS + TAG, "开启自动驾驶====" + GsonUtil.jsonFromObject(parameters)
//// +" startLatLon="+currentStation.getName()+"endLatLon="+nextStation.getName());
// CallerLogger.INSTANCE.d( M_BUS + TAG, "开启自动驾驶====" + GsonUtil.jsonFromObject(parameters));
// CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters);
}
/**
@@ -458,4 +427,8 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
public void setSubTakDetail(@NonNull SweeperSubTaskDetailBean subTaskDetailBean, SubTaskTypeEnum subTaskTypeEnum) {
mView.setSubTakDetail(subTaskDetailBean, subTaskTypeEnum);
}
//mock贴边数据
private void weltData(MogoLocation location){
}
}

View File

@@ -0,0 +1,61 @@
package com.mogo.och.sweeper.util;
import android.content.Context;
import java.io.IOException;
import java.io.InputStream;
/**
* @author donghongyu
* @date 12/18/20 5:37 PM
*/
public class SweeperMapAssetStyleUtil {
public static byte[] getAssetsStyle(Context context,String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
is1.read(buffer1);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
public static byte[] getAssetsExtraStyle(Context context, String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style_extra.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
is1.read(buffer1);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
}

View File

@@ -6,6 +6,7 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SubInfo
import kotlinx.android.synthetic.main.sweeper_subtask_view.view.*
@@ -36,12 +37,13 @@ class SubTaskView : ConstraintLayout {
} else {
"${taskInfo.mileage / 1000F}千米"
}
// var timeSpent=if(DateTimeUtil.secondsToHourStr(taskInfo.timeSpent)!=""){
// "${DateTimeUtil.secondsToHourStr(taskInfo.timeSpent/1000)}小时${DateTimeUtil.secondsToMinuteStr(taskInfo.timeSpent/1000)}分钟"
// }else{
// "${DateTimeUtil.secondsToMinuteStr(taskInfo.timeSpent/1000)}分钟"
// }
tvSubTaskDesc.text = "全程约${mileage},预计耗时${taskInfo.timeSpent}分钟"
val time=taskInfo.timeSpent.toLong()
var timeSpent=if(DateTimeUtil.secondsToHourStr(time)!=""){
"${DateTimeUtil.secondsToHourStr(time)}小时${DateTimeUtil.secondsToMinuteStr(time)}分钟"
}else{
"${DateTimeUtil.secondsToMinuteStr(time)}分钟"
}
tvSubTaskDesc.text = "全程约${mileage},预计耗时$timeSpent"
tvSubTaskName.setTextColor(if (isSelect) Color.parseColor("#3BD2FF") else Color.parseColor("#FFFFFF"))
if (isSelect) {
ivSubTaskSelect.visibility = View.VISIBLE

View File

@@ -30,6 +30,8 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
private var listTask: List<SubInfo>? = null
private var mSubTaskType: SubTaskTypeEnum = SubTaskTypeEnum.AUTOPILOT_SUBTYPE
private var mSubTaskStatus: Int = 1
//当前自动驾驶状态
private val mCurrentAutopilotStatus = 0
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
@@ -52,7 +54,9 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
ToastUtils.showLong("人工子任务无轨迹,无法启动自驾")
return@setOnClickListener
}
presenter?.startAutopilot()
if (mCurrentAutopilotStatus!=IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING){
presenter?.startAutopilot()
}
}
}
}
@@ -118,24 +122,20 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
fun setStartAutoBtn(autopilotState: Int) {
when (autopilotState) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {
tvStartAuto.isSelected = false
tvStartAuto.isClickable = false
tvStartAuto.text="不可自动驾驶"
tvStartAuto.text="自动驾驶"
tvStartAuto.isSelected=false
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {
tvStartAuto.isSelected = true
tvStartAuto.isClickable = true
tvStartAuto.text="人工驾驶"
tvStartAuto.text="自动驾驶"
tvStartAuto.isSelected=false
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
tvStartAuto.isSelected = true
tvStartAuto.isClickable = true
tvStartAuto.text="自动驾驶"
tvStartAuto.isSelected=true
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
tvStartAuto.isSelected = false
tvStartAuto.isClickable = false
tvStartAuto.text="平行驾驶"
tvStartAuto.isSelected=true
}
}
}

View File

@@ -68,6 +68,8 @@ class TurnSignalView : LinearLayout {
else -> { //消失
leftSelectImage.clearAnimation()
rightSelectImage.clearAnimation()
leftSelectImage.visibility = View.GONE
rightSelectImage.visibility = View.GONE
}
}
}

View File

@@ -18,6 +18,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.database.bean.WeltDataBean
import com.mogo.och.sweeper.util.SweeperMapAssetStyleUtil
import kotlinx.android.synthetic.main.sweeper_welt_map_overview.view.*
/**
@@ -74,8 +75,24 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
uiSettings?.setAllGesturesEnabled(false) // 所有手势
uiSettings?.isMyLocationButtonEnabled = false // 显示默认的定位按钮
uiSettings?.setLogoBottomMargin(-150) //设置Logo下边界距离屏幕底部的边距,设置为负值即可
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
//mAMap?.moveCamera(CameraUpdateFactory.zoomTo(15f))
mAMap?.setOnMapLoadedListener(AMap.OnMapLoadedListener {
//mAMap?.moveCamera(CameraUpdateFactory.zoomTo(15f))
CallerLogger.d(SceneConstant.M_SWEEPER + TAG, "WeltView---onMapLoaded")
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
// 实时路况图层关闭必须添加在loaded结束之后,其他位置不生效
mAMap?.isTrafficEnabled = false
mAMap?.showBuildings(true)
@@ -148,10 +165,10 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
* 绘制起点和终点的marker
*/
fun drawStartAndEndMarker(startPoint: LatLng, endPoint: LatLng) {
val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.start_maker_icon)))
val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_start_maker_icon)))
startMarker?.position = startPoint
mLineMarkers.add(startMarker)
val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.end_maker_icon)))
val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_end_maker_icon)))
endMarker?.position = endPoint
mLineMarkers.add(endMarker)
}

View File

@@ -3,7 +3,6 @@ package com.mogo.och.sweeper.view
import android.content.Context
import android.graphics.Color
import android.os.Bundle
import android.os.Looper
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
@@ -17,10 +16,10 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Liste
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.database.bean.WeltDataBean
import com.mogo.och.sweeper.util.SweeperMapAssetStyleUtil
import kotlinx.android.synthetic.main.sweeper_welt_small_map_view.view.*
/**
@@ -34,7 +33,6 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
private var mPolyline: Polyline? = null
private var colorList: MutableList<Int> = mutableListOf()
private val mLineMarkers: MutableList<Marker?> = mutableListOf()
private var mFirst: Boolean = false
//清扫车任务地图
private val TAG = "WeltMapView"
@@ -107,8 +105,22 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
uiSettings?.setAllGesturesEnabled(false) // 所有手势
uiSettings?.isMyLocationButtonEnabled = false // 显示默认的定位按钮
uiSettings?.setLogoBottomMargin(-150) //设置Logo下边界距离屏幕底部的边距,设置为负值即可
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
mAMap?.setOnMapLoadedListener(AMap.OnMapLoadedListener {
d(SceneConstant.M_SWEEPER + TAG, "WeltView---onMapLoaded")
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
mAMap?.setPointToCenter(sweeperSmallTextureMapView.width / 2, sweeperSmallTextureMapView.height / 2)
})
}
@@ -163,13 +175,14 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
mLineMarkers[i]?.remove()
}
mLineMarkers.clear()
val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.start_maker_icon)))
val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_small_start_marker_icon)))
startMarker?.position = startPoint
mLineMarkers.add(startMarker)
val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.end_maker_icon)))
val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_small_end_marker_icon)))
endMarker?.position = endPoint
mLineMarkers.add(endMarker)
}
/**
* 清除所有标记和路线
*/
@@ -197,25 +210,27 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
/**
* 设置贴边数据
*/
fun setWeltData(weltData: MutableList<WeltDataBean>,isWeltData: Boolean,distance:String) {
fun setWeltData(weltData: MutableList<WeltDataBean>, isWeltData: Boolean, distance: String) {
this.mWeltData = weltData
for (i in mWeltData.indices) {
mCoordinatesLatLng.add(CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(context, mWeltData[i].locLon, mWeltData[i].locLat))
}
taskWeltDistanceTv.text="贴边:${distance}cm"
taskWeltDistanceTv.text = "贴边:${distance}cm"
//if (!mFirst&&isWeltData) {
// showOrHiddenWelt(true)
// mFirst = true
//}
}
/**
* 设置任务进度
*/
fun setTaskProgress(progress:String?){
taskWeltDistanceTv.visibility=View.VISIBLE
taskProgressTv.visibility=View.VISIBLE
taskProgressTv.text=progress
fun setTaskProgress(progress: String?) {
taskWeltDistanceTv.visibility = View.VISIBLE
taskProgressTv.visibility = View.VISIBLE
taskProgressTv.text = progress
}
fun onCreateView(savedInstanceState: Bundle?) {
sweeperSmallTextureMapView?.onCreate(savedInstanceState)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#2A537F" android:endColor="#263A5B" android:angle="0"/>
<corners android:radius="@dimen/dp_28" />
</shape>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#103360"/>
<stroke android:color="#000000" android:width="@dimen/dp_1"/>
<corners android:radius="@dimen/dp_30" />
</shape>

View File

@@ -3,18 +3,16 @@
<item>
<shape android:shape="oval">
<solid android:color="#E63F4C7D" />
<size
android:width="50dp"
android:height="50dp" />
android:width="52dp"
android:height="52dp" />
</shape>
</item>
<item>
<shape
android:innerRadius="23dp"
android:shape="ring"
android:thickness="2dp"
android:thickness="3dp"
android:useLevel="false">
<solid android:color="#F03232" />
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sweeper_collect_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/sweeper_collect_pressed" android:state_pressed="true"/>
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sweeper_setting_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/sweeper_setting_pressed" android:state_pressed="true"/>
</selector>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:drawable="@drawable/sweeper_start_auto_not_selected"/>
<item android:state_selected="true" android:drawable="@drawable/sweeper_start_auto_selected"/>
<item android:state_selected="true" android:drawable="@drawable/sweeper_start_auto_running"/>
<item android:state_selected="false" android:drawable="@drawable/sweeper_start_auto_not_running"/>
</selector>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#254e7d" />
<corners
android:bottomLeftRadius="30dp" />
</shape>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:bottomLeftRadius="30dp"/>
<gradient android:angle="180" android:endColor="#004DFF" android:startColor="#20AAFF" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sweeper_card_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/sweeper_card_pressed" android:state_pressed="true"/>
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sweeper_switch_map_big_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/sweeper_switch_map_big_pressed" android:state_pressed="true"/>
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sweeper_switch_map_small_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/sweeper_switch_map_small_pressed" android:state_pressed="true"/>
</selector>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:drawable="@drawable/sweeper_task_not_selected"/>
<item android:state_selected="true" android:drawable="@drawable/sweeper_task_selected"/>
<item android:state_pressed="true" android:drawable="@drawable/sweeper_task_working"/>
<item android:state_pressed="false" android:drawable="@drawable/sweeper_task_not_working"/>
</selector>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#254e7d" />
<corners
android:bottomRightRadius="30dp" />
</shape>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:bottomRightRadius="30dp"/>
<gradient android:angle="180" android:endColor="#004DFF" android:startColor="#20AAFF" />
</shape>
</item>
</selector>

View File

@@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/dp_560"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
app:layout_constraintTop_toTopOf="parent"
@@ -13,32 +13,39 @@
android:id="@+id/sweeper_cl_work_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_shape_work_mode"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sweeper_arc"
android:visibility="gone"/>
android:visibility="gone" />
<!--清扫任务当前面板-->
<com.mogo.och.sweeper.view.SweeperCurrentTaskInfoView
android:id="@+id/sweeper_current_task_view"
app:layout_constraintTop_toBottomOf="@+id/sweeper_cl_work_mode"
android:layout_width="@dimen/dp_560"
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toTopOf="@+id/sweeper_switch_model_layout"
android:layout_marginTop="@dimen/dp_36"
android:visibility="gone"
android:layout_weight="1"
android:layout_marginTop="-20dp"
/>
<FrameLayout
<com.mogo.och.common.module.wigets.OCHBorderShadowLayout
android:id="@+id/sweeper_current_task_list_view"
android:layout_width="match_parent"
android:layout_width="@dimen/dp_616"
android:layout_height="match_parent"
android:background="@drawable/bg_shape_work_mode">
android:visibility="visible"
app:bgColor="#00000000"
app:blurRadius="@dimen/dp_28"
app:shadowColor="#80121526"
app:shadowRadius="@dimen/dp_30"
app:shadow_position="outer"
app:xOffset="0dp"
app:yOffset="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sweeperListCl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
android:visibility="gone"
android:background="@drawable/bg_shape_task_panel">
<View
android:id="@+id/sweeperListLine"
android:layout_width="@dimen/dp_10"
@@ -115,5 +122,5 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<include layout="@layout/sweeper_no_data_common_view"
android:visibility="visible"/>
</FrameLayout>
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>
</LinearLayout>

View File

@@ -84,106 +84,65 @@
android:id="@+id/module_mogo_och_task_list_container"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_41"
android:layout_marginBottom="@dimen/dp_30"
app:layout_constraintBottom_toTopOf="@+id/sweeper_switch_model_layout"
android:layout_marginLeft="@dimen/dp_13"
app:layout_constraintBottom_toTopOf="@+id/sweeper_switch_model_icon"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/sweeper_arc"
app:layout_goneMarginTop="@dimen/module_mogo_och_station_panel_container_margin_top_no_call" />
app:layout_goneMarginTop="@dimen/module_mogo_och_station_panel_container_margin_top_no_call"
android:layout_marginTop="-20dp"/>
<com.mogo.och.common.module.wigets.OCHRoundConstraintLayout
android:layout_width="@dimen/dp_711"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_27"
android:layout_marginEnd="@dimen/dp_36"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:roundLayoutRadius="@dimen/dp_20">
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_27">
<com.mogo.och.sweeper.view.WeltSmallMapView
android:id="@+id/sweeper_task_welt_small_map"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</com.mogo.och.common.module.wigets.OCHRoundConstraintLayout>
<!--切换地图远近事件-->
<LinearLayout
android:id="@+id/sweeper_switch_model_layout"
android:layout_width="@dimen/module_mogo_och_operation_status_bg_width"
android:layout_height="@dimen/module_mogo_och_operation_status_bg_height"
android:layout_marginLeft="@dimen/module_mogo_och_margin_left"
android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"
android:background="@drawable/sweeper_switch_map_bg"
android:elevation="@dimen/sweeper_dp_10"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/sweeper_dp_20"
<ImageView
android:id="@+id/sweeper_switch_model_icon"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_150"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_30"
android:layout_marginBottom="@dimen/dp_10"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/sweeper_switch_model_icon"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:layout_centerInParent="true"
android:layout_gravity="center" />
</LinearLayout>
<FrameLayout
android:id="@+id/module_mogo_och_badcase_rl"
android:layout_width="@dimen/module_mogo_och_operation_status_bg_width"
android:layout_height="@dimen/module_mogo_och_operation_status_bg_height"
android:layout_marginLeft="@dimen/module_mogo_och_margin_left"
android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"
android:background="@drawable/sweeper_operation_status_bg_selector"
android:elevation="@dimen/dp_10"
<ImageView
android:id="@+id/sweeper_setting_model_icon"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_150"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/dp_10"
android:src="@drawable/sweeper_switch_card_selector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/module_mogo_och_setting_layout">
app:layout_constraintStart_toEndOf="@+id/sweeper_switch_model_icon" />
<ImageView
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:layout_gravity="center"
android:src="@drawable/sweeper_bad_case_selector" />
</FrameLayout>
<FrameLayout
android:id="@+id/module_mogo_och_setting_layout"
android:layout_width="@dimen/module_mogo_och_operation_status_bg_width"
android:layout_height="@dimen/module_mogo_och_operation_status_bg_height"
android:layout_marginLeft="@dimen/module_mogo_och_margin_left"
android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"
android:background="@drawable/sweeper_operation_status_bg"
android:elevation="@dimen/dp_10"
<ImageView
android:id="@+id/sweeper_collect_model_icon"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_150"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/dp_10"
android:src="@drawable/sweeper_collect_selector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/sweeper_switch_model_layout">
app:layout_constraintStart_toEndOf="@+id/sweeper_setting_model_icon" />
<ImageView
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:layout_gravity="center"
android:background="@drawable/sweeper_setting_btn_bg" />
</FrameLayout>
<FrameLayout
android:id="@+id/module_mogo_och_ai_collet_rl"
android:layout_width="@dimen/module_mogo_och_operation_status_bg_width"
android:layout_height="@dimen/module_mogo_och_operation_status_bg_height"
android:layout_marginLeft="@dimen/module_mogo_och_margin_left"
android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"
android:background="@drawable/sweeper_operation_status_bg_selector"
android:elevation="@dimen/dp_10"
<ImageView
android:id="@+id/sweeper_card_model_icon"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_150"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/dp_10"
android:src="@drawable/sweeper_setting_selector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/module_mogo_och_badcase_rl">
<ImageView
android:layout_width="@dimen/dp_90"
android:layout_height="@dimen/dp_90"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:src="@drawable/sweeper_ai_collect_selector" />
</FrameLayout>
app:layout_constraintStart_toEndOf="@+id/sweeper_collect_model_icon" />
<!--消息盒子选择入口-->
<com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView
android:id="@+id/viewDriverMsgBoxButton"
@@ -288,6 +247,7 @@
android:textSize="30sp"
app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable"
app:layout_constraintTop_toBottomOf="@id/btnAutopilotEnable" />
<Button
android:id="@+id/btnEndTask"
android:layout_width="wrap_content"

View File

@@ -1,146 +1,161 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_560"
android:layout_height="match_parent"
<com.mogo.och.common.module.wigets.OCHBorderShadowLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/bg_shape_work_mode">
<TextView
android:id="@+id/tvTaskName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:textSize="@dimen/dp_38"
android:textColor="@color/white"
android:layout_marginTop="@dimen/dp_21"
tools:text="惠新西街南口地铁站公交站"
android:layout_marginStart="@dimen/dp_28"
/>
<TextView
android:id="@+id/tvTaskTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/tvTaskName"
app:layout_constraintStart_toStartOf="parent"
android:textSize="@dimen/dp_28"
android:textColor="@color/white"
android:layout_marginTop="@dimen/dp_21"
tools:text="9:00"
android:layout_marginStart="@dimen/dp_28"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_12"
android:paddingEnd="@dimen/dp_12"
android:paddingTop="@dimen/dp_1"
android:paddingBottom="@dimen/dp_1"
/>
<TextView
android:id="@+id/tvTaskState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/tvTaskName"
app:layout_constraintStart_toEndOf="@+id/tvTaskTime"
android:textSize="@dimen/dp_28"
android:textColor="@color/white"
android:layout_marginTop="@dimen/dp_21"
android:text="暂未准备"
android:layout_marginStart="@dimen/dp_18"
android:background="@drawable/bg_shape_task_state_not_ready"
android:paddingStart="@dimen/dp_15"
android:paddingEnd="@dimen/dp_15"
android:paddingTop="@dimen/dp_1"
android:paddingBottom="@dimen/dp_1"
/>
<ImageView
android:id="@+id/ivMore"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/icon_more"
app:layout_constraintTop_toTopOf="@+id/tvTaskName"
app:layout_constraintBottom_toBottomOf="@+id/tvTaskTime"
android:layout_marginEnd="@dimen/dp_38"
/>
<View
android:id="@+id/viewTaskInfoLine"
android:layout_width="@dimen/dp_616"
android:layout_height="match_parent"
app:bgColor="#00000000"
app:blurRadius="@dimen/dp_28"
app:shadowColor="#80121526"
app:shadowRadius="@dimen/dp_30"
app:shadow_position="outer"
app:xOffset="0dp"
app:yOffset="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@drawable/sweeper_task_dividing_line1_selector"
app:layout_constraintTop_toBottomOf="@+id/tvTaskTime"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_26"/>
<View
android:id="@+id/viewTaskInfoLine1"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@drawable/sweeper_task_dividing_line2_selector"
app:layout_constraintTop_toBottomOf="@+id/viewTaskInfoLine"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.mogo.och.sweeper.view.SubTaskView
android:id="@+id/preSubTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/viewTaskInfoLine"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_30"
/>
<com.mogo.och.sweeper.view.SubTaskView
android:id="@+id/currentSubTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/preSubTask"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_16"
/>
<com.mogo.och.sweeper.view.SubTaskView
android:id="@+id/lastSubTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/currentSubTask"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_16"
/>
<TextView
android:id="@+id/tvStartAuto"
android:layout_width="0dp"
android:layout_height="@dimen/sweeper_switch_line_btn_height_1"
android:background="@drawable/sweeper_start_auto_btn"
android:gravity="center"
android:text="启动自驾"
android:textColor="@android:color/white"
android:textSize="@dimen/module_mogo_och_sweeper_station_notice_text_size"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintWidth_percent="0.5"
/>
<View
android:id="@+id/line1"
android:layout_width="2dp"
android:layout_height="@dimen/sweeper_switch_line_btn_height_1"
app:layout_constraintStart_toEndOf="@+id/tvStartAuto"
android:background="@color/white"
app:layout_constraintBottom_toBottomOf="parent"/>
<TextView
android:id="@+id/readyTaskBtn"
android:layout_width="0dp"
android:layout_height="@dimen/sweeper_switch_line_btn_height_1"
android:background="@drawable/sweeper_task_btn"
android:gravity="center"
android:text="开始任务"
android:textColor="@android:color/white"
android:textSize="@dimen/module_mogo_och_sweeper_station_notice_text_size"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/line1"
android:layout_marginTop="@dimen/dp_20"
android:clickable="false"
app:layout_constraintWidth_percent="0.5"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
android:layout_height="match_parent"
android:background="@drawable/bg_shape_task_panel">
<TextView
android:id="@+id/tvTaskName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_28"
android:layout_marginTop="@dimen/dp_21"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="惠新西街南口地铁站公交站" />
<TextView
android:id="@+id/tvTaskTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_28"
android:layout_marginTop="@dimen/dp_21"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_12"
android:paddingTop="@dimen/dp_1"
android:paddingEnd="@dimen/dp_12"
android:paddingBottom="@dimen/dp_1"
android:textColor="@color/white"
android:textSize="@dimen/dp_28"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTaskName"
tools:text="9:00" />
<TextView
android:id="@+id/tvTaskState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_18"
android:layout_marginTop="@dimen/dp_21"
android:background="@drawable/bg_shape_task_state_not_ready"
android:paddingStart="@dimen/dp_15"
android:paddingTop="@dimen/dp_1"
android:paddingEnd="@dimen/dp_15"
android:paddingBottom="@dimen/dp_1"
android:text="暂未准备"
android:textColor="@color/white"
android:textSize="@dimen/dp_28"
app:layout_constraintStart_toEndOf="@+id/tvTaskTime"
app:layout_constraintTop_toBottomOf="@+id/tvTaskName" />
<ImageView
android:id="@+id/ivMore"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:layout_marginEnd="@dimen/dp_38"
android:src="@drawable/icon_more"
app:layout_constraintBottom_toBottomOf="@+id/tvTaskTime"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvTaskName" />
<View
android:id="@+id/viewTaskInfoLine"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="@dimen/dp_26"
android:background="@drawable/sweeper_task_dividing_line1_selector"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTaskTime" />
<View
android:id="@+id/viewTaskInfoLine1"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@drawable/sweeper_task_dividing_line2_selector"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/viewTaskInfoLine" />
<com.mogo.och.sweeper.view.SubTaskView
android:id="@+id/preSubTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_30"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/viewTaskInfoLine" />
<com.mogo.och.sweeper.view.SubTaskView
android:id="@+id/currentSubTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/preSubTask" />
<com.mogo.och.sweeper.view.SubTaskView
android:id="@+id/lastSubTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/currentSubTask" />
<TextView
android:id="@+id/tvStartAuto"
android:layout_width="0dp"
android:layout_height="@dimen/dp_116"
android:background="@drawable/sweeper_start_auto_not_running"
android:gravity="center"
android:text="启动自驾"
android:textColor="@android:color/white"
android:textSize="@dimen/module_mogo_och_sweeper_station_notice_text_size"
android:visibility="visible"
android:layout_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.55"
app:layout_constraintBottom_toBottomOf="parent"/>
<TextView
android:id="@+id/readyTaskBtn"
android:layout_width="0dp"
android:layout_height="@dimen/dp_116"
android:layout_weight="1"
android:background="@drawable/sweeper_task_not_working"
android:gravity="center"
android:text="开始任务"
android:textColor="@android:color/white"
android:textSize="@dimen/module_mogo_och_sweeper_station_notice_text_size"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintWidth_percent="0.55" />
<View
android:id="@+id/line1"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_116"
android:background="@drawable/sweeper_line"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>

View File

@@ -5,8 +5,8 @@
android:orientation="vertical">
<TextView
android:id="@+id/tvLimitingVelocity"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_50"
android:layout_width="@dimen/dp_52"
android:layout_height="@dimen/dp_52"
android:background="@drawable/sweeper_bg_waring_limiting_velocity"
android:gravity="center"
android:text="60"

View File

@@ -4,7 +4,8 @@
android:id="@+id/noTaskDataView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible">
android:visibility="visible"
android:background="@drawable/bg_shape_task_panel">
<ImageView
android:id="@+id/ivNoTaskData"

View File

@@ -38,7 +38,6 @@
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="@dimen/dp_23"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="@+id/sweeperSpeedImage"
app:layout_constraintRight_toRightOf="@+id/sweeperSpeedImage"
app:layout_constraintTop_toBottomOf="@+id/sweeperSpeedText"/>
@@ -46,7 +45,6 @@
android:id="@+id/sweeperTrafficPosition"
android:layout_width="@dimen/dp_200"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
app:defaultColor="@color/acc_default_txt_color"
app:layout_constraintLeft_toRightOf="@+id/sweeperSpeedImage"
app:layout_constraintTop_toTopOf="parent"
@@ -59,16 +57,16 @@
app:layout_constraintStart_toEndOf="@+id/sweeperTrafficPosition"
app:layout_constraintTop_toTopOf="@+id/sweeperTrafficPosition"
app:layout_constraintBottom_toBottomOf="@+id/sweeperTrafficPosition"
android:layout_marginStart="@dimen/dp_3"
android:layout_marginStart="@dimen/dp_12"
android:background="#414869"/>
<com.mogo.och.sweeper.view.SweeperLimitingVelocityView
android:id="@+id/sweeperLimitingVelocity"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_50"
android:layout_width="@dimen/dp_52"
android:layout_height="@dimen/dp_52"
app:layout_constraintStart_toEndOf="@+id/line1"
app:layout_constraintTop_toTopOf="@+id/sweeperTrafficPosition"
app:layout_constraintBottom_toBottomOf="@+id/sweeperTrafficPosition"
android:layout_marginStart="@dimen/dp_28"
android:layout_marginStart="@dimen/dp_34"
/>
<com.mogo.och.sweeper.view.TurnSignalView
android:id="@+id/sweeperTurnSignal"
@@ -76,7 +74,6 @@
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/sweeperTrafficPosition"
app:layout_constraintLeft_toRightOf="@+id/sweeperSpeedImage"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_10"/>
<View
android:id="@+id/line2"
@@ -85,7 +82,7 @@
app:layout_constraintStart_toEndOf="@+id/sweeperTurnSignal"
app:layout_constraintTop_toTopOf="@+id/sweeperTurnSignal"
app:layout_constraintBottom_toBottomOf="@+id/sweeperTurnSignal"
android:layout_marginStart="@dimen/dp_3"
android:layout_marginStart="@dimen/dp_12"
android:background="#414869"/>
<com.mogo.och.sweeper.view.SweeperTrafficLightView
android:id="@+id/sweeperTrafficLight"
@@ -94,58 +91,78 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_76"
android:layout_marginEnd="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_18"
/>
<ImageView
android:id="@+id/sweeperIvBattery"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
<LinearLayout
android:id="@+id/flBattery"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/line3"
android:gravity="center"
android:layout_marginBottom="@dimen/dp_54"
android:layout_marginStart="@dimen/dp_110"
android:src="@drawable/icon_battery"/>
<TextView
android:id="@+id/tvBattery"
android:layout_width="wrap_content"
app:layout_constraintWidth_percent="0.5"
android:layout_marginEnd="@dimen/dp_10"
>
<ImageView
android:id="@+id/sweeperIvBattery"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:src="@drawable/icon_battery"
android:layout_gravity="center"/>
<TextView
android:id="@+id/tvBattery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/sweeperIvBattery"
app:layout_constraintTop_toTopOf="@+id/sweeperIvBattery"
app:layout_constraintBottom_toBottomOf="@+id/sweeperIvBattery"
android:textColor="@color/white"
android:layout_gravity="center"
android:gravity="center"
tools:text="65%"
android:layout_marginStart="6dp"
android:textSize="@dimen/dp_24"/>
</LinearLayout>
<FrameLayout
android:id="@+id/flRight"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/sweeperIvBattery"
app:layout_constraintTop_toTopOf="@+id/sweeperIvBattery"
app:layout_constraintBottom_toBottomOf="@+id/sweeperIvBattery"
android:textColor="@color/white"
tools:text="65%"
android:layout_marginStart="6dp"
android:textSize="@dimen/dp_24"/>
app:layout_constraintWidth_percent="0.5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginBottom="@dimen/dp_36"
android:layout_gravity="center"
android:gravity="center"
android:layout_marginEnd="@dimen/dp_20"
>
<ImageView
android:id="@+id/sweeperIvBgWaterWarning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_water_level_warning"
tools:visibility="visible"
android:visibility="visible"
android:layout_gravity="center"
/>
<ImageView
android:id="@+id/sweeperIvWater"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:src="@drawable/sweeper_water_selector"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/dp_4"
/>
</FrameLayout>
<View
android:id="@+id/line3"
android:layout_width="@dimen/dp_1"
android:layout_height="@dimen/dp_34"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/sweeperIvBattery"
app:layout_constraintBottom_toBottomOf="@+id/sweeperIvBattery"
android:layout_marginStart="@dimen/dp_20"
android:background="#6D87B0"/>
<ImageView
android:id="@+id/sweeperIvBgWaterWarning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_47"
android:background="#6D87B0"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/icon_water_level_warning"
android:layout_marginBottom="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_110"
tools:visibility="visible"
android:visibility="gone"
/>
<ImageView
android:id="@+id/sweeperIvWater"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginBottom="@dimen/dp_54"
android:layout_marginEnd="@dimen/dp_150"
android:src="@drawable/sweeper_water_selector"
/>
android:layout_marginBottom="@dimen/dp_54"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -19,7 +19,7 @@
android:layout_marginTop="@dimen/dp_50"/>
<com.mogo.och.common.module.wigets.OCHRoundConstraintLayout
android:id="@+id/groupLegend"
android:layout_width="@dimen/dp_366"
android:layout_width="@dimen/dp_380"
android:layout_height="@dimen/dp_573"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -1,91 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_560"
android:layout_height="@dimen/dp_170"
<com.mogo.och.common.module.wigets.OCHBorderShadowLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/bg_shape_work_mode"
android:id="@+id/clWorkMode">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="当前作业模式:"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginStart="@dimen/dp_36"/>
<LinearLayout
android:id="@+id/groupWorkModelPanel"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
app:layout_constraintStart_toStartOf="@+id/tvTitle">
android:id="@+id/clWorkMode"
android:layout_width="@dimen/dp_616"
android:layout_height="@dimen/dp_207"
app:bgColor="#00000000"
app:blurRadius="@dimen/dp_28"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shadowColor="#80121526"
app:shadowRadius="@dimen/dp_30"
app:shadow_position="outer"
app:xOffset="0dp"
app:yOffset="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_shape_task_panel">
<TextView
android:id="@+id/tvCleaningMode"
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="纯扫模式"
android:textSize="@dimen/dp_34"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_30"
android:text="当前作业模式:"
android:textColor="@color/white"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10"
android:paddingTop="@dimen/dp_2"
android:paddingBottom="@dimen/dp_2"/>
android:textSize="@dimen/dp_32"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/groupWorkModelPanel"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/tvTitle"
app:layout_constraintTop_toBottomOf="@+id/tvTitle">
<TextView
android:id="@+id/tvCleaningMode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_10"
android:paddingTop="@dimen/dp_2"
android:paddingEnd="@dimen/dp_10"
android:paddingBottom="@dimen/dp_2"
android:textColor="@color/white"
android:textSize="@dimen/dp_34"
tools:text="纯扫模式" />
<TextView
android:id="@+id/tvCleaningDirection"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_10"
android:paddingTop="@dimen/dp_2"
android:paddingEnd="@dimen/dp_10"
android:paddingBottom="@dimen/dp_2"
android:textColor="@color/white"
android:textSize="@dimen/dp_34"
tools:text="左侧" />
<TextView
android:id="@+id/tvCleaningIntensity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_10"
android:paddingTop="@dimen/dp_2"
android:paddingEnd="@dimen/dp_10"
android:paddingBottom="@dimen/dp_2"
android:textColor="@color/white"
android:textSize="@dimen/dp_34"
tools:text="标准" />
</LinearLayout>
<ImageView
android:id="@+id/ivOpenOperatePanel"
android:layout_width="@dimen/dp_54"
android:layout_height="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_30"
android:src="@drawable/sweeper_clean_mode_icon"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvCleaningDirection"
android:id="@+id/tvNoDataDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="左侧"
android:textSize="@dimen/dp_34"
android:textColor="@color/white"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10"
android:paddingTop="@dimen/dp_2"
android:paddingBottom="@dimen/dp_2"
android:layout_marginStart="@dimen/dp_20"/>
<TextView
android:id="@+id/tvCleaningIntensity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="标准"
android:textSize="@dimen/dp_34"
android:textColor="@color/white"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_shape_clean_mode"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10"
android:paddingTop="@dimen/dp_2"
android:paddingBottom="@dimen/dp_2"
android:layout_marginStart="@dimen/dp_20"
/>
</LinearLayout>
<ImageView
android:id="@+id/ivOpenOperatePanel"
android:layout_width="@dimen/dp_54"
android:layout_height="@dimen/dp_40"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_30"
android:src="@drawable/sweeper_clean_mode_icon"
android:visibility="gone"/>
<TextView
android:id="@+id/tvNoDataDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_16"
tools:text="暂无"
android:textSize="@dimen/dp_34"
android:visibility="gone"
android:textColor="@color/white"
android:layout_marginStart="@dimen/dp_36"/>
</androidx.constraintlayout.widget.ConstraintLayout>
android:textSize="@dimen/dp_34"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="暂无" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>