[sweeper运营&云控合并]refactor: 合并Sweeper&SweeperCloud模块,使用不同包名区分,删除SweeperCloud模块,编译通过;

This commit is contained in:
aibingbing
2023-10-12 19:38:44 +08:00
parent 5d326d40e3
commit b0b4c72ed4
143 changed files with 468 additions and 3070 deletions

View File

@@ -1,86 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "0897ef4b7b6a43fccf8bcf4b2144dafa",
"entities": [
{
"tableName": "welt_data_table",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `subTaskId` INTEGER NOT NULL, `locLon` REAL NOT NULL, `locLat` REAL NOT NULL, `weltDistance` REAL NOT NULL, `cleanMode` INTEGER NOT NULL, `cleanDirection` INTEGER NOT NULL, `cleanIntensity` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "subTaskId",
"columnName": "subTaskId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "locLon",
"columnName": "locLon",
"affinity": "REAL",
"notNull": true
},
{
"fieldPath": "locLat",
"columnName": "locLat",
"affinity": "REAL",
"notNull": true
},
{
"fieldPath": "weltDistance",
"columnName": "weltDistance",
"affinity": "REAL",
"notNull": true
},
{
"fieldPath": "cleanMode",
"columnName": "cleanMode",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "cleanDirection",
"columnName": "cleanDirection",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "cleanIntensity",
"columnName": "cleanIntensity",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_welt_data_table_id",
"unique": true,
"columnNames": [
"id"
],
"orders": [],
"createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_welt_data_table_id` ON `${TABLE_NAME}` (`id`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '0897ef4b7b6a43fccf8bcf4b2144dafa')"
]
}
}

View File

@@ -1,24 +0,0 @@
package com.mogo.och.sweepercloud;
import androidx.annotation.IdRes;
import androidx.fragment.app.FragmentActivity;
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
public
/**
* @author congtaowang
* @since 2021/1/15
*
* 网约车抽象接口
*/
interface IMogoOCH extends IMoGoFunctionProvider {
/**
* 初始化网约车容器
*
* @param activity
* @param containerId 容器ID
*/
void createCoverage(FragmentActivity activity, @IdRes int containerId);
}

View File

@@ -1,87 +0,0 @@
package com.mogo.och.sweepercloud;
import android.content.Context;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.sweepercloud.constant.SweeperConst;
import com.mogo.och.sweepercloud.fragment.SweeperFragment;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* 清扫车业务实现入口
*
* @author tongchenfei
*/
@Route(path = SweeperConst.PATH)
public class SweeperProvider implements IMogoOCH {
private static final String TAG = "SweeperProvider";
private SweeperFragment sweeperFragment;
private int containerId;
private FragmentActivity activity;
@Override
public void init(Context context) {
}
private void showFragment() {
FragmentManager supportFragmentManager = activity.getSupportFragmentManager();
if (sweeperFragment == null) {
CallerLogger.d(TAG, "准备add fragment======");
Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(sweeperFragment.TAG);
if (fragmentByTag instanceof SweeperFragment) {
sweeperFragment = (SweeperFragment) fragmentByTag;
} else {
sweeperFragment = new SweeperFragment();
}
if(!sweeperFragment.isAdded()) {
supportFragmentManager.beginTransaction().add(containerId, sweeperFragment, sweeperFragment.TAG).commitAllowingStateLoss();
}
return;
}
CallerLogger.d(TAG, "准备show fragment");
supportFragmentManager.beginTransaction().show(sweeperFragment).commitAllowingStateLoss();
}
private void hideFragment() {
if (sweeperFragment != null) {
CallerLogger.d(TAG, "准备hide fragment");
activity.getSupportFragmentManager().beginTransaction().hide(sweeperFragment).commitAllowingStateLoss();
}
}
@Override
public void createCoverage(FragmentActivity activity, int containerId) {
}
@NotNull
@Override
public String getFunctionName() {
return null;
}
@Nullable
@Override
public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) {
this.containerId = integer;
this.activity = fragmentActivity;
showFragment();
return null;
}
@Override
public void onDestroy() {
//若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
if (activity == null) return;
activity.finish();
}
}

View File

@@ -1,32 +0,0 @@
package com.mogo.och.sweepercloud.bean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* Created by pangfan on 2021/8/19
*
* 订单状态更新请求数据结构
*/
public class SweeperRoutePlanningUpdateReqBean implements Serializable {
public String sn;
public int lineId;
public int startSiteId;
public int endSiteId;
public ArrayList<Result> points;
public static class Result implements Serializable{
public Double latitude;
public Double longitude;
}
public SweeperRoutePlanningUpdateReqBean(String sn, int lineId, int startSiteId
, int endSiteId, ArrayList<Result> points) {
this.sn = sn;
this.lineId = lineId;
this.startSiteId = startSiteId;
this.endSiteId = endSiteId;
this.points = points;
}
}

View File

@@ -1,8 +0,0 @@
package com.mogo.och.sweepercloud.callback
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import java.util.ArrayList
interface ISweeperTaskRouteCallback {
fun setRouteList(routeList:ArrayList<SweeperRoutePlanningUpdateReqBean.Result>)
}

View File

@@ -1,31 +0,0 @@
package com.mogo.och.sweepercloud.database;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.database.dao.WeltDataDao;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.database.dao.WeltDataDao;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
//注解Database告诉系统这是Room数据库对象
//entities指定该数据库有哪些表多张表就逗号分隔
//version指定数据库版本号升级时需要用到
//数据库继承自RoomDatabase
@Database(entities = {WeltDataBean.class}, version = 1)
public abstract class MyDataBase extends RoomDatabase {
private static final String DATABASE_NAME = "weltData_db";
//结合单例模式完成数据库实例创建
public static MyDataBase getInstance() {
return SingleTon.instance;
}
private static class SingleTon {
private static final MyDataBase instance =
Room.databaseBuilder(AbsMogoApplication.getApp().getApplicationContext(), MyDataBase.class, DATABASE_NAME).build();
}
public abstract WeltDataDao getWeltDataDao();
}

View File

@@ -1,42 +0,0 @@
package com.mogo.och.sweepercloud.receiver;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.sweepercloud.constant.SweeperConst;
/**
* 测试小巴车的场景
*
* @author donghongyu
* @date 4/26/21 12:08 PM
*/
public class TestSweeperBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "TestBusBroadcastReceiver";
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
try {
this.mContext = context;
int sceneType = intent.getIntExtra(SweeperConst.BROADCAST_TEST_SWEEPER_CONTROL_TYPE_EXTRA_KEY, 0);
CallerLogger.d(M_BUS + TAG, "sceneType:" + sceneType);
// 分发场景
dispatchSceneTest(sceneType);
} catch (Exception e) {
e.printStackTrace();
}
}
private void dispatchSceneTest(int sceneType) {
}
}

View File

@@ -1,32 +0,0 @@
package com.mogo.och.sweepercloud.view
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.LinearLayout
import com.mogo.och.sweepercloud.R
import kotlinx.android.synthetic.main.sweeper_item_legend.view.*
/**
* 任务路线全览图图例
*/
class LegendItemView:LinearLayout {
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
initView(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_item_legend, this)
}
/**
* 设置数据
*/
fun setData(resId:Int,text:String){
sweeperLegendIcon.setImageResource(resId)
sweeperLegendText.text = text
}
}

View File

@@ -1,59 +0,0 @@
package com.mogo.och.sweepercloud.view
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.LinearLayout
import com.mogo.eagle.core.data.enums.DataSourceType
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.LimitingVelocityView_TAG
import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweepercloud.R
import kotlinx.android.synthetic.main.sweeper_limiting_speed.view.*
class SweeperLimitingVelocityView(
context: Context,
attrs: AttributeSet? = null,
) : LinearLayout(context, attrs), ILimitingVelocityListener, IViewControlListener {
companion object {
private const val TAG = "SweeperLimitingVelocityView"
}
init {
LayoutInflater.from(context).inflate(R.layout.sweeper_limiting_speed, this, true)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerLimitingVelocityListenerManager.addListener(TAG, this)
CallerHmiViewControlListenerManager.addListener(LimitingVelocityView_TAG, this)
}
override fun onLimitingVelocityChange(limitingVelocity: Int, sourceType: DataSourceType) {
ThreadUtils.runOnUiThread {
if (limitingVelocity > 0) {
this.visibility = View.VISIBLE
tvLimitingVelocity.text = "$limitingVelocity"
} else {
this.visibility = View.GONE
}
}
}
override fun visible(v: Int) {
super.visible(v)
this.visibility = v
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CallerLimitingVelocityListenerManager.removeListener(TAG)
CallerHmiViewControlListenerManager.removeListener(LimitingVelocityView_TAG)
}
}

View File

@@ -1,90 +0,0 @@
package com.mogo.och.sweepercloud.view
import android.animation.AnimatorSet
import android.animation.ObjectAnimator
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import chassis.Chassis
import com.mogo.och.sweepercloud.R
import kotlinx.android.synthetic.main.sweeper_turn_signal.view.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
class TurnSignalView : LinearLayout {
constructor(context: Context?) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
initView(context)
}
private var init: Boolean = false
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
) {
}
constructor(
context: Context?,
attrs: AttributeSet?,
defStyleAttr: Int,
defStyleRes: Int
) : super(context, attrs, defStyleAttr, defStyleRes) {
}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_turn_signal, this)
init = true
}
/**
* 转向灯动画
*/
fun setTurnLight(directionLight: Chassis.LightSwitch?) {
GlobalScope.launch(Dispatchers.Main) {
if (!init) {
return@launch
}
//根据左右进行显示和隐藏,实际要判断每个来的时间和频度
when (directionLight) {
Chassis.LightSwitch.LIGHT_LEFT -> { //左转向
leftSelectImage.visibility = View.VISIBLE
rightSelectImage.visibility = View.GONE
rightSelectImage.clearAnimation()
setAnimation(leftSelectImage)
}
Chassis.LightSwitch.LIGHT_RIGHT -> { //右转向
leftSelectImage.visibility = View.GONE
rightSelectImage.visibility = View.VISIBLE
leftSelectImage.clearAnimation()
setAnimation(rightSelectImage)
}
else -> { //消失
leftSelectImage.clearAnimation()
rightSelectImage.clearAnimation()
leftSelectImage.visibility = View.GONE
rightSelectImage.visibility = View.GONE
}
}
}
}
//实现图片闪烁效果
private fun setAnimation(imageView: ImageView) {
val animationSet = AnimatorSet()
val valueAnimator = ObjectAnimator.ofFloat(imageView, "alpha", 0f, 1.0f)
val valueAnimatorDisappare = ObjectAnimator.ofFloat(imageView, "alpha", 1.0f, 0f)
valueAnimator.duration = 1000
valueAnimatorDisappare.duration = 800
valueAnimator.repeatCount = -1
valueAnimatorDisappare.repeatCount = -1
animationSet.playTogether(valueAnimatorDisappare, valueAnimator)
animationSet.start()
}
}

View File

@@ -1,342 +0,0 @@
package com.mogo.och.sweepercloud.view
import android.content.Context
import android.graphics.Color
import android.os.Bundle
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.ImageView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import com.amap.api.maps.AMap
import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.model.*
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.constant.SweeperConst
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweepercloud.util.SweeperMapAssetStyleUtil
import kotlinx.android.synthetic.main.sweeper_welt_map_overview.view.*
/**
* 作业任务全览图
*/
class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
private var mTaskCoordinatesLatLng: MutableList<LatLng> = mutableListOf() //当前大任务的所有起终点集合
private var mCarMarker: Marker? = null
private var mAMap: AMap? = null
private var mWeltPolylines: Polyline? = null
private var mRoutePolylines: Polyline?=null
// private val mLineMarkers: MutableList<Marker?> = mutableListOf()
private var mEndStationMarker: Marker? = null
private var mFirst: Boolean = false
//清扫车任务地图
private val TAG = "WeltMapOverView"
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
initView(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_welt_map_overview, this)
initAMapView()
// 注册定位监听
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this)
CallerChassisLocationGCJ02ListenerManager.setListenerHz(TAG,5)
}
private fun initAMapView() {
mAMap = sweeperTextureMapView.map
// 地图文字标注
mAMap?.showMapText(true)
//显示3D建筑物
mAMap?.showBuildings(true)
// 设置导航地图模式aMap是地图控制器对象。
mAMap?.mapType = AMap.MAP_TYPE_NIGHT
// 关闭显示实时路况图层aMap是地图控制器对象。
mAMap?.isTrafficEnabled = false
// 设置 锚点 图标
mCarMarker = mAMap?.addMarker(
MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_car_big))
.anchor(0.5f, 0.5f)
)
// 设置地图的样式
val uiSettings = mAMap?.uiSettings
uiSettings?.isZoomControlsEnabled = false // 地图缩放级别的交换按钮
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)
})
}
/**
* 添加画线颜色值
*/
private fun getRouteColorList(weltData: MutableList<WeltDataBean>):MutableList<Int> {
val colorList= mutableListOf<Int>()
var nextWeltDataBean:WeltDataBean?=null
for (i in weltData.indices) {
val weltDataBean = weltData[i]
if(i+1<weltData.size){
nextWeltDataBean = weltData[i+1]
val calculateLineDistance = CoordinateUtils.calculateLineDistance(
nextWeltDataBean.locLon, nextWeltDataBean.locLat,
weltDataBean.locLon, weltDataBean.locLat
)
// 大于10m
if(calculateLineDistance>10){
colorList.add(Color.TRANSPARENT)
continue
}
}
if (weltDataBean.weltDistance == SweeperConst.NONWELT) {//非贴边
colorList.add(ContextCompat.getColor(context,R.color.sweeper_236299))
} else if (weltDataBean.weltDistance < 0) {
colorList.add(ContextCompat.getColor(context,R.color.sweeper_c22101))
} else if (weltDataBean.weltDistance >= 0 && weltDataBean.weltDistance < 0.1) {
colorList.add(ContextCompat.getColor(context,R.color.sweeper_4dffa4))
} else if (weltDataBean.weltDistance >= 0.1 && weltDataBean.weltDistance < 0.2) {
colorList.add(ContextCompat.getColor(context,R.color.sweeper_ffdd4d))
} else if (weltDataBean.weltDistance >= 0.2) {
colorList.add(ContextCompat.getColor(context,R.color.sweeper_ff912b))
}
}
return colorList
}
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
ThreadUtils.getSinglePool().run {
mogoLocation?.let { gnssInfo ->
val currentLatLng = LatLng(gnssInfo.latitude, gnssInfo.longitude)
//更新车辆位置
mCarMarker?.rotateAngle = (360 - gnssInfo.heading).toFloat()
mCarMarker?.position = currentLatLng
mCarMarker?.setToTop()
//圈定地图显示范围
val boundsBuilder = LatLngBounds.Builder()
if (mTaskCoordinatesLatLng.size > 0) {
//存放经纬度
for (i in mTaskCoordinatesLatLng.indices) {
val latLng = mTaskCoordinatesLatLng[i]
boundsBuilder.include(latLng)
}
}
mRoutePolylines?.points?.forEach {latLng->
boundsBuilder.include(latLng)
}
boundsBuilder.include(currentLatLng)
mAMap?.moveCamera(CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(), 100, 100, 100, 100))
}
}
}
/**
* 根据贴边数据绘制任务路线
*/
fun drawablePolyline(weltDatas: MutableList<WeltDataBean>?) {
weltDatas?.let {
val colorList=getRouteColorList(it)
val coordinatesLatLngs= mutableListOf<LatLng>()
for (i in it.indices) {
coordinatesLatLngs.add(LatLng(it[i].locLat,it[i].locLon))
}
if (coordinatesLatLngs.size > 2) {
//设置线段纹理
mWeltPolylines?.remove()
val polylineOptions = PolylineOptions()
polylineOptions.addAll(coordinatesLatLngs)
polylineOptions.width(14f) //线段宽度
polylineOptions.isUseTexture = false
polylineOptions.lineCapType(PolylineOptions.LineCapType.LineCapSquare)
polylineOptions.colorValues(colorList)
polylineOptions.visible(true)
// 绘制线
mWeltPolylines = mAMap?.addPolyline(polylineOptions)
}
}
}
/**
* 绘制起点和终点的marker
*/
private fun drawStartAndEndMarker(startPoint: LatLng, endPoint: LatLng) {
// 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.sweeper_big_end_maker_icon)))
// endMarker?.position = endPoint
// mLineMarkers.add(endMarker)
}
private fun drawEndMarker(endPoint: LatLng){
mEndStationMarker?.remove()
mEndStationMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_end_maker_icon)))
mEndStationMarker?.position = endPoint
}
/**
* 清除所有标记和路线
*/
fun clearAllMarkerAndPolyline() {
// for (i in mLineMarkers.indices) {
// mLineMarkers[i]?.isVisible = false
// mLineMarkers[i]?.remove()
// }
mEndStationMarker?.remove()
mWeltPolylines?.remove()
mRoutePolylines?.remove()
// mLineMarkers.clear()
//mFirst = false
//showOrHiddenLegendData(false)
}
/**
* 设置贴边数据
*/
fun setWeltData(weltDatas: MutableList<WeltDataBean>?, isWeltData: Boolean, distance: String?) {
drawablePolyline(weltDatas)
ThreadUtils.runOnUiThread {
distance?.let {
setDistance(it)
}
}
//if (!mFirst && isWeltData) {
// mFirst = true
// showOrHiddenLegendData(true)
//}
}
/**
* 任务轨迹数据
*/
fun setRouteList(routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>) {
val routeCoordinatesLatLngs= mutableListOf<LatLng>()
for (i in routeList.indices) {
routeCoordinatesLatLngs.add(LatLng(routeList[i].latitude,routeList[i].longitude))
}
ThreadUtils.runOnUiThread {
drawRouteListPolyline(routeCoordinatesLatLngs)
}
}
private fun drawRouteListPolyline(routeList: MutableList<LatLng>) {
mRoutePolylines?.remove()
val polylineOptions = PolylineOptions()
polylineOptions.width(14f) //线段宽度
polylineOptions.isUseTexture = false
polylineOptions.lineCapType(PolylineOptions.LineCapType.LineCapSquare)
polylineOptions.color(ContextCompat.getColor(context,R.color.sweeper_3ba1cc))
polylineOptions.addAll(routeList)
polylineOptions.visible(true)
mRoutePolylines=mAMap?.addPolyline(polylineOptions)
}
/**
* 设置当前大任务的所有子任务起终点集合
*/
fun setTaskListCoordinatesLatLng(coordinatesLatLng: MutableList<LatLng>) {
ThreadUtils.runOnUiThread {
this.mTaskCoordinatesLatLng = coordinatesLatLng
if (mTaskCoordinatesLatLng.size > 0) {
drawStartAndEndMarker(mTaskCoordinatesLatLng[0], mTaskCoordinatesLatLng[mTaskCoordinatesLatLng.size - 1])
}
}
}
/**
* 设置当前任务终点
*/
fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng) {
ThreadUtils.runOnUiThread {
drawEndMarker(coordinatesLatLng)
}
}
/**
* 设置图例数据
*/
private fun showOrHiddenLegendData(isShow: Boolean) {
groupLegend.visibility = if (isShow) View.VISIBLE else View.GONE
sweeperLegend1.setData(R.drawable.sweeper_legend1, "a<0")
sweeperLegend2.setData(R.drawable.sweeper_legend2, "0≤a<10")
sweeperLegend3.setData(R.drawable.sweeper_legend3, "10≤a<20")
sweeperLegend4.setData(R.drawable.sweeper_legend4, "a≥20")
sweeperLegend5.setData(R.drawable.sweeper_legend5, "非贴边")
sweeperLegend6.setData(R.drawable.sweeper_legend6, "未经过")
}
private fun setDistance(distance: String) {
taskWeltDistanceTv.text="贴边:${distance}"
}
fun setProgress(progress: String?) {
progress?.let {
if ("0" == progress) {
taskProgressTv.visibility = View.GONE
taskWeltDistanceTv.visibility = View.GONE
showOrHiddenLegendData(false)
} else {
taskProgressTv.visibility = View.VISIBLE
taskWeltDistanceTv.visibility = View.VISIBLE
taskProgressTv.text = it
showOrHiddenLegendData(true)
}
}
}
fun onCreateView(savedInstanceState: Bundle?) {
sweeperTextureMapView.onCreate(savedInstanceState)
}
fun onResume() {
sweeperTextureMapView.onResume()
}
fun onPause() {
sweeperTextureMapView.onPause()
}
fun onDestroy() {
sweeperTextureMapView.onDestroy()
}
fun getSweeperSwitchToSmall(): ImageView {
return sweeperSwitchToSmall
}
}

View File

@@ -1,298 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<com.mogo.och.sweepercloud.view.NoTouchConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="@dimen/dp_957"
android:layout_height="@dimen/dp_758"
android:background="@drawable/bg_sweeper_operate_panel"
android:id="@+id/work_mode_panel_root_view">
<TextView
android:id="@+id/hint_clean_open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_48"
android:gravity="top|center_horizontal"
android:text="车辆准备"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<CheckedTextView
android:id="@+id/btn_clean_work_open_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="打开"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/hint_clean_open" />
<TextView
android:id="@+id/hint_clean_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_48"
android:gravity="top|center_horizontal"
android:paddingStart="@dimen/dp_90"
android:text="作业模式"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_clean_work_open_close" />
<CheckedTextView
android:id="@+id/btn_clean_mode_pure_sweep"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="纯扫"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/hint_clean_mode" />
<CheckedTextView
android:id="@+id/btn_clean_mode_pure_wash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_46"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="纯洗"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toEndOf="@+id/btn_clean_mode_pure_sweep"
app:layout_constraintTop_toBottomOf="@id/hint_clean_mode" />
<CheckedTextView
android:id="@+id/btn_clean_mode_sweep_wash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_46"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="洗扫"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toEndOf="@+id/btn_clean_mode_pure_wash"
app:layout_constraintTop_toBottomOf="@id/hint_clean_mode" />
<CheckedTextView
android:id="@+id/btn_clean_mode_pure_absorption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_46"
android:layout_marginTop="@dimen/dp_17"
android:layout_marginEnd="@dimen/dp_20"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="纯吸"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toEndOf="@+id/btn_clean_mode_sweep_wash"
app:layout_constraintTop_toBottomOf="@id/hint_clean_mode" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/clean_mode_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="hint_clean_mode, btn_clean_mode_pure_sweep, btn_clean_mode_pure_wash, btn_clean_mode_sweep_wash, btn_clean_mode_pure_absorption" />
<TextView
android:id="@+id/hint_clean_direction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_48"
android:gravity="top|center_horizontal"
android:text="清扫方向"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/clean_mode_barrier" />
<CheckedTextView
android:id="@+id/btn_clean_direction_left_side"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="左侧"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/hint_clean_direction" />
<CheckedTextView
android:id="@+id/btn_clean_direction_right_side"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_28"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="右侧"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toEndOf="@+id/btn_clean_direction_left_side"
app:layout_constraintTop_toBottomOf="@+id/hint_clean_direction" />
<CheckedTextView
android:id="@+id/btn_clean_direction_both_side"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_28"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="两侧"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toEndOf="@+id/btn_clean_direction_right_side"
app:layout_constraintTop_toBottomOf="@id/hint_clean_direction" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/clean_direction_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="hint_clean_direction, btn_clean_direction_left_side, btn_clean_direction_right_side, btn_clean_direction_both_side" />
<TextView
android:id="@+id/hint_clean_intensity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_48"
android:gravity="top|center_horizontal"
android:text="作业强度"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/clean_direction_barrier" />
<CheckedTextView
android:id="@+id/btn_clean_intensity_standard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="标准"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/hint_clean_intensity" />
<CheckedTextView
android:id="@+id/btn_clean_intensity_strong"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_28"
android:layout_marginTop="@dimen/dp_17"
android:background="@drawable/sweeper_operate_panel_btn2_bg_selector"
android:enabled="false"
android:gravity="center"
android:paddingStart="@dimen/dp_48"
android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_48"
android:paddingBottom="@dimen/dp_12"
android:text="强力"
android:textColor="@color/white"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size"
app:layout_constraintLeft_toRightOf="@id/btn_clean_intensity_standard"
app:layout_constraintTop_toBottomOf="@id/hint_clean_intensity" />
<FrameLayout
android:id="@+id/loading_hint_container"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/bg_sweeper_operate_panel"
app:tint="#88000000"
android:scaleType="fitXY"/>
<TextView
android:id="@+id/loading_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:text="30s"
android:textColor="#ffffff"
android:textSize="@dimen/sweeper_operate_panel_btn_text_size" />
<ImageView
android:id="@+id/loading_view"
android:layout_width="@dimen/dp_140"
android:layout_height="@dimen/dp_140"
android:layout_gravity="center"
android:src="@drawable/sweeper_loading_nor" />
</FrameLayout>
</com.mogo.och.sweepercloud.view.NoTouchConstraintLayout>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<com.mogo.och.sweepercloud.ui.SweeperOperatePanelView
android:id="@+id/SweeperOperatePanelView"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</com.mogo.och.sweepercloud.ui.SweeperOperatePanelView>

View File

@@ -1,114 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<com.amap.api.maps.TextureMapView
android:id="@+id/sweeperTextureMapView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageView
android:id="@+id/sweeperSwitchToSmall"
android:layout_width="@dimen/dp_127"
android:layout_height="@dimen/dp_127"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/sweeper_full_screen_icon"
android:layout_marginEnd="@dimen/dp_23"
android:layout_marginTop="@dimen/dp_23"
android:padding="@dimen/dp_27"/>
<com.mogo.och.common.module.wigets.OCHRoundConstraintLayout
android:id="@+id/groupLegend"
android:layout_width="@dimen/dp_380"
android:layout_height="@dimen/dp_573"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginBottom="@dimen/dp_80"
android:layout_marginEnd="@dimen/dp_80"
app:roundLayoutRadius="@dimen/dp_16"
android:background="#0E1D38"
android:visibility="gone">
<TextView
android:id="@+id/taskProgressTv"
android:layout_width="0dp"
android:layout_height="@dimen/dp_60"
tools:text="进度:60%"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:background="#3f69d9"
android:textColor="@android:color/white"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:textSize="@dimen/dp_34"
app:layout_constraintWidth_percent="0.3"
android:gravity="center"
android:visibility="gone"
/>
<TextView
android:id="@+id/taskWeltDistanceTv"
android:layout_width="0dp"
android:layout_height="@dimen/dp_60"
tools:text="贴边:--cm"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="#3d98c7"
android:textColor="@android:color/white"
app:layout_constraintStart_toEndOf="@+id/taskProgressTv"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:textSize="@dimen/dp_34"
android:gravity="center"
app:layout_constraintWidth_percent="0.7"
android:visibility="gone"/>
<com.mogo.och.sweepercloud.view.LegendItemView
android:id="@+id/sweeperLegend1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintTop_toBottomOf="@+id/taskProgressTv"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
<com.mogo.och.sweepercloud.view.LegendItemView
android:id="@+id/sweeperLegend2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/sweeperLegend1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.mogo.och.sweepercloud.view.LegendItemView
android:id="@+id/sweeperLegend3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/sweeperLegend2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.mogo.och.sweepercloud.view.LegendItemView
android:id="@+id/sweeperLegend4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/sweeperLegend3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.mogo.och.sweepercloud.view.LegendItemView
android:id="@+id/sweeperLegend5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/sweeperLegend4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.mogo.och.sweepercloud.view.LegendItemView
android:id="@+id/sweeperLegend6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/sweeperLegend5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</com.mogo.och.common.module.wigets.OCHRoundConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,111 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<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: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/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_20"
android:text="当前上装模式:"
android:textColor="@color/white"
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/tvNoDataDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_36"
android:layout_marginTop="@dimen/dp_16"
android:textColor="@color/white"
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>

View File

@@ -4,7 +4,7 @@
<application>
<!--这里是为了测试增加的广播-->
<receiver android:name=".receiver.TestSweeperBroadcastReceiver">
<receiver android:name=".common.receiver.TestSweeperBroadcastReceiver">
<intent-filter>
<action android:name="com.bus.test_control" />

View File

@@ -9,8 +9,8 @@ import androidx.fragment.app.FragmentManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.fragment.SweeperFragment;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.operate.fragment.SweeperFragment;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

View File

@@ -1,12 +0,0 @@
package com.mogo.och.sweeper.callback;
import com.mogo.och.sweeper.constant.OperateStateEnum;
import chassis.ChassisStatesOuterClass;
/**
* 上装状态回调
*/
public interface ICleaningModeStateCallback {
void cleaningModeState(OperateStateEnum cleaningModeState, ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState,boolean isSelectPureSweepMode);
}

View File

@@ -1,11 +0,0 @@
package com.mogo.och.sweeper.callback;
/**
* Created on 2021/9/8
*
* Model->Presenter回调ADAS相关自动驾驶状态回调到达终点等等
*/
public interface ISweeperADASStatusCallback {
//自驾返回失败
void onStartAdasFailure();
}

View File

@@ -1,15 +0,0 @@
package com.mogo.och.sweeper.callback
import com.amap.api.maps.model.LatLng
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.database.bean.WeltDataBean
import java.util.ArrayList
interface ISweeperTaskDataToFragmentCallback {
fun setRouteList(routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>)
fun setWeltData(weltDatas: ArrayList<WeltDataBean>?, distance: String)
fun clearAllMarkerAndPolyline()
fun setProgress(progress:String)
fun setTaskListCoordinatesLatLng(coordinatesLatLng: ArrayList<LatLng>)
fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng)
}

View File

@@ -1,5 +0,0 @@
package com.mogo.och.sweeper.callback
interface IWeltMapSwitchToSmallCallback {
fun onWeltMapSwitchToSmall()
}

View File

@@ -1,17 +1,13 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.cloud.callback
import chassis.ChassisStatesOuterClass
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootableResp
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.Code
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.ActionType
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionPush
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskType
/**
@@ -62,7 +58,7 @@ interface ISweeperCloudTaskCallback {
/**
* 设置轨迹坐标点集合
*/
fun setRouteList(routeList: java.util.ArrayList<SweeperRoutePlanningUpdateReqBean.Result>)
fun setRouteList(routeList: java.util.ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>)
/**
* 贴边数据回传
*/

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback;
package com.mogo.och.sweeper.cloud.callback;
import com.mogo.eagle.core.data.map.MogoLocation;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.cloud.callback
interface SweeperCloudDialogClickListener {
fun onConfirm()

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.fragment;
package com.mogo.och.sweeper.cloud.fragment;
import static com.mogo.map.MogoMap.DEFAULT;
@@ -41,15 +41,15 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.sweepercloud.R;
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweepercloud.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweepercloud.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.util.AutopilotModeConfigManager;
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils;
import com.mogo.och.sweepercloud.view.SweeperTrafficDataView;
import com.mogo.och.sweepercloud.view.WeltSmallMapView;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweeper.operate.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.cloud.util.AutopilotModeConfigManager;
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils;
import com.mogo.och.sweeper.cloud.view.SweeperTrafficDataView;
import com.mogo.och.sweeper.common.view.WeltSmallMapView;
import com.zhjt.mogo.adas.data.AiCloudTask;
import java.math.BigDecimal;
@@ -101,7 +101,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
@Override
protected int getLayoutId() {
return R.layout.sweeper_base_fragment;
return R.layout.sweeper_cloud_base_fragment;
}
@Override

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.fragment;
package com.mogo.och.sweeper.cloud.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment;
package com.mogo.och.sweeper.cloud.fragment;
import android.os.Bundle;
import android.view.View;
@@ -43,21 +43,21 @@ public class SweeperAmapNaviFragment extends BaseSweeperUIFragment implements AM
protected void initViews(Bundle savedInstanceState) {
super.initViews(savedInstanceState);
if (mAMapNaviView != null)
mAMapNaviView.onCreate(savedInstanceState);
mAMapNaviView.onCreate(savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
if (mAMapNaviView != null)
mAMapNaviView.onResume();
mAMapNaviView.onResume();
}
@Override
public void onPause() {
super.onPause();
if (mAMapNaviView != null)
mAMapNaviView.onPause();
mAMapNaviView.onPause();
}
@Override

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.fragment
package com.mogo.och.sweeper.cloud.fragment
import android.os.Bundle
import android.view.View
@@ -16,24 +16,22 @@ import com.mogo.map.overlay.core.Level
import com.mogo.map.overlay.point.Point
import com.mogo.och.common.module.utils.OCHThreadPoolManager
import com.mogo.och.common.module.voice.VoiceNotice.showNotice
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener
import com.mogo.och.sweepercloud.constant.SweeperConst.Companion.TYPE_MARKER_SWEEPER_SUBTASK_START_END
import com.mogo.och.sweepercloud.database.MyDataBase
import com.mogo.och.sweepercloud.presenter.SweeperPresenter
import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog
import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudLoadingDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createConfirmStartSubTaskDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createReceivedBigTaskInfoDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskEndDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskExceptionEndDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskNormalEndDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskResumeDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskSuspendDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.printMessage
import com.mogo.och.sweepercloud.view.SweeperCurrentTaskInfoView
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.constant.SweeperConst.Companion.TYPE_MARKER_SWEEPER_SUBTASK_START_END
import com.mogo.och.sweeper.common.database.MyDataBase
import com.mogo.och.sweeper.cloud.presenter.SweeperPresenter
import com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog
import com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudLoadingDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createConfirmStartSubTaskDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createReceivedBigTaskInfoDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskEndDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskExceptionEndDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskNormalEndDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskResumeDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskSuspendDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.printMessage
import com.mogo.och.sweeper.cloud.view.SweeperCurrentTaskInfoView
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
@@ -44,8 +42,8 @@ import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import kotlinx.android.synthetic.main.fragment_och_sweeper.*
import kotlinx.android.synthetic.main.sweeper_no_data_common_view.*
import kotlinx.android.synthetic.main.fragment_och_sweeper_cloud.*
import kotlinx.android.synthetic.main.sweeper_cloud_no_data_common_view.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -92,7 +90,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
override fun getTaskListPanelViewId(): Int {
return R.layout.fragment_och_sweeper
return R.layout.fragment_och_sweeper_cloud
}
/**
@@ -378,7 +376,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
ToastUtils.showLong("任务已结束")
} else {
// 产品确认有弹框时不需要同步弹toast, 只需有TTS
mDialog = createSweeperTaskEndDialog(context, object : SweeperCloudDialogClickListener {
mDialog = createSweeperTaskEndDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_CONFIRM)
// mLoadingDialog.showLoading()
@@ -420,7 +418,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
* 大任务结束弹窗
*/
private fun sweeperCloudTaskNormalEndDialog(): SweeperCloudDialog? {
return createSweeperTaskNormalEndDialog(context, object : SweeperCloudDialogClickListener {
return createSweeperTaskNormalEndDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// ToastUtils.showLong("任务已结束")
// resetTaskInfoPanel()
@@ -447,7 +445,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
private fun sweeperCloudTaskExceptionEndDialog(isCancel: Boolean): SweeperCloudDialog? {
return createSweeperTaskExceptionEndDialog(
context,
object : SweeperCloudDialogClickListener {
object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// ToastUtils.showLong("任务已结束")
// resetTaskInfoPanel()
@@ -691,7 +689,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 设置路线轨迹
*/
override fun setTaskRouteList(routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>) {
override fun setTaskRouteList(routeList: ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>) {
super.setTaskRouteList(routeList)
}
@@ -733,7 +731,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
return
}
mDialog =
createConfirmStartSubTaskDialog(context, object : SweeperCloudDialogClickListener {
createConfirmStartSubTaskDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// //ToastUtils.showLong("确认")
// mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_CONFIRM)
@@ -791,7 +789,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
return
}
mDialog =
createReceivedBigTaskInfoDialog(context, object : SweeperCloudDialogClickListener {
createReceivedBigTaskInfoDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// ToastUtils.showLong("确认")
// mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.MANUAL_CONFIRM)
@@ -839,7 +837,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
* 大任务暂停弹框
*/
private fun sweeperCloudTaskSuspendDialog(taskId: String): SweeperCloudDialog? {
return createSweeperTaskSuspendDialog(context, object : SweeperCloudDialogClickListener {
return createSweeperTaskSuspendDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
@@ -873,7 +871,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
contentStr: String,
taskId: String
): SweeperCloudDialog? {
return createSweeperTaskResumeDialog(context, object : SweeperCloudDialogClickListener {
return createSweeperTaskResumeDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(

View File

@@ -1,13 +1,12 @@
package com.mogo.och.sweepercloud.fragment
package com.mogo.och.sweeper.cloud.fragment
import android.os.Bundle
import com.amap.api.maps.model.LatLng
import com.mogo.commons.mvp.BaseFragment
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.callback.ISweeperTaskDataToFragmentCallback
import com.mogo.och.sweepercloud.callback.IWeltMapSwitchToSmallCallback
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import com.mogo.och.sweeper.operate.callback.IWeltMapSwitchToSmallCallback
import kotlinx.android.synthetic.main.fragment_welt_map_overview.*
import kotlinx.android.synthetic.main.sweeper_welt_map_overview.*
@@ -43,7 +42,7 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
val latLngs = bundle.getSerializable("subTaskCoordinates") as? ArrayList<LatLng>
val latLng = bundle.getParcelable<LatLng>("subTaskEndCoordinates")
val weltDataList = bundle.getSerializable("weltDataList") as? ArrayList<WeltDataBean>
val routeList = bundle.getSerializable("routeList") as? ArrayList<SweeperRoutePlanningUpdateReqBean.Result>
val routeList = bundle.getSerializable("routeList") as? ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>
val progress = bundle.getString("progress")
routeList?.let {
weltMapOverView?.setRouteList(it)
@@ -67,13 +66,13 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
companion object {
@JvmStatic
fun newInstance(
mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback,
mCurrentTaskEndStation:LatLng?,
weltDataList: ArrayList<WeltDataBean>?,
latLngs: ArrayList<LatLng>?,
routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>?,
progress:String?,
sweeperFragment: SweeperFragment
mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback,
mCurrentTaskEndStation:LatLng?,
weltDataList: ArrayList<WeltDataBean>?,
latLngs: ArrayList<LatLng>?,
routeList: ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>?,
progress:String?,
sweeperFragment: SweeperFragment
): WeltMapOverViewFragment {
val args = Bundle()
args.putSerializable("weltDataList", weltDataList)
@@ -119,7 +118,7 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
weltMapOverView?.setProgress(progress)
}
override fun setRouteList(routeList: java.util.ArrayList<SweeperRoutePlanningUpdateReqBean.Result>) {
override fun setRouteList(routeList: java.util.ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>) {
weltMapOverView?.setRouteList(routeList)
}

View File

@@ -1,7 +1,7 @@
package com.mogo.och.sweepercloud.model;
package com.mogo.och.sweeper.cloud.model;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
import static com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.printMessage;
import static com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.printMessage;
import android.content.Context;
@@ -32,13 +32,13 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweepercloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweepercloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweepercloud.constant.SweeperConst;
import com.mogo.och.sweepercloud.database.MyDataBase;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.cloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweeper.cloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.common.database.MyDataBase;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils;
import com.zhjt.mogo.adas.data.AiCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
@@ -197,7 +197,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
@Override
public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) {
if (null != routeList && routeList.getWayPointsList() != null && routeList.getWayPointsList().size() > 0) {
CallerLogger.d(M_SWEEPER + TAG, "onAutopilotRotting: " + printMessage(routeList));
CallerLogger.d(M_SWEEPER + TAG, "onAutopilotRotting: " + SweeperCloudTaskUtils.printMessage(routeList));
// MAP返回路线信息在1秒内返回了2次这里加上数据过滤
long current = System.currentTimeMillis();
@@ -336,7 +336,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTask.TaskInfo taskInfo) {
CallerLogger.d(M_SWEEPER + TAG,
"messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " onSweeperFutianCloudTask" + (taskInfo == null ? "null" : printMessage(taskInfo)) + " mSweeperTaskCallback" + mSweeperTaskCallback);
"messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " onSweeperFutianCloudTask" + (taskInfo == null ? "null" : SweeperCloudTaskUtils.printMessage(taskInfo)) + " mSweeperTaskCallback" + mSweeperTaskCallback);
if (mSweeperTaskCallback != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTask(messageType, taskInfo);
@@ -348,7 +348,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTaskConfirm.TaskConfirm taskConfirm) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskConfirm" + printMessage(taskConfirm));
"onSweeperFutianCloudTaskConfirm" + SweeperCloudTaskUtils.printMessage(taskConfirm));
if (mSweeperTaskCallback != null && taskConfirm != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskConfirm(taskConfirm.getTaskId(), taskConfirm.getSubTaskId(), taskConfirm.getIsPop());
@@ -359,7 +359,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskStatus(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperTaskStatus.TaskStatusPush taskStatusPush) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskStatus" + printMessage(taskStatusPush));
"onSweeperFutianCloudTaskStatus" + SweeperCloudTaskUtils.printMessage(taskStatusPush));
if (mSweeperTaskCallback != null && taskStatusPush != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskStatus(taskStatusPush.getTaskId(), taskStatusPush.getSubTaskId(), taskStatusPush.getTaskStatus());
@@ -370,7 +370,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskStop(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperTaskStop.StopTaskReq stopTaskReq) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskStop" + printMessage(stopTaskReq));
"onSweeperFutianCloudTaskStop" + SweeperCloudTaskUtils.printMessage(stopTaskReq));
if (mSweeperTaskCallback != null && stopTaskReq != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskStop(stopTaskReq.getTaskId(), stopTaskReq.getType(), stopTaskReq.getIsPop());
@@ -381,7 +381,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskSuspendResume(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskSuspendResume" + printMessage(suspendResumeTaskResp));
"onSweeperFutianCloudTaskSuspendResume" + SweeperCloudTaskUtils.printMessage(suspendResumeTaskResp));
if (mSweeperTaskCallback != null && suspendResumeTaskResp != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskSuspendResume(messageType, suspendResumeTaskResp.getTaskId(),
@@ -393,7 +393,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudBootable(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperBootable.IsBootableResp isBootableResp) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudBootable" + printMessage(isBootableResp));
"onSweeperFutianCloudBootable" + SweeperCloudTaskUtils.printMessage(isBootableResp));
if (mSweeperTaskCallback != null && isBootableResp != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudBootable(isBootableResp.getTaskId(), isBootableResp.getSubTaskId(), isBootableResp);
@@ -404,7 +404,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudBigTaskStatus(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudBigTaskStatus" + printMessage(bigTaskStatusPush));
"onSweeperFutianCloudBigTaskStatus" + SweeperCloudTaskUtils.printMessage(bigTaskStatusPush));
if (mSweeperTaskCallback != null && bigTaskStatusPush != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudBigTaskStatus(bigTaskStatusPush.getTaskId(), bigTaskStatusPush.getTaskStatus(), bigTaskStatusPush.getIsPop());
@@ -415,7 +415,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime,
@Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskCloudSuspendResume" + printMessage(bigTaskActionPush));
"onSweeperFutianCloudTaskCloudSuspendResume" + SweeperCloudTaskUtils.printMessage(bigTaskActionPush));
if (mSweeperTaskCallback != null && bigTaskActionPush != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudBigTaskSuspendResume(bigTaskActionPush.getTaskId(), bigTaskActionPush.getAction(), bigTaskActionPush.getIsPop());
@@ -521,7 +521,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTask.GetTaskReq getTaskReq = builder.build();
CallerLogger.d(M_SWEEPER + TAG,
"getCurrentTask:" + printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendGetTaskReq.getNumber());
"getCurrentTask:" + SweeperCloudTaskUtils.printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendGetTaskReq.getNumber());
getAutoPilotControlManager().sendSweeperGetTaskReq(reqNo, getTaskReq);
}
@@ -538,7 +538,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
getAutoPilotControlManager().sendSweeperStartTaskResp(reqNo, startTaskResp);
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperStartTaskResp:" + printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTask.getNumber());
"sendSweeperStartTaskResp:" + SweeperCloudTaskUtils.printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTask.getNumber());
}
/**
@@ -553,7 +553,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTaskConfirm.TaskConfirmResp taskConfirmResp = builder.build();
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperTaskConfirmResp" + printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
"sendSweeperTaskConfirmResp" + SweeperCloudTaskUtils.printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
getAutoPilotControlManager().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp);
}
@@ -572,7 +572,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperStopTaskResp" + printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
"sendSweeperStopTaskResp" + SweeperCloudTaskUtils.printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
getAutoPilotControlManager().sendSweeperStopTaskResp(reqNo, stopTaskResp);
}
@@ -593,7 +593,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
String reqNo = SweeperCloudTaskUtils.getRequestId();
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperAutopilotBootable" + printMessage(isBootable) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendBootable.getNumber());
"sendSweeperAutopilotBootable" + SweeperCloudTaskUtils.printMessage(isBootable) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendBootable.getNumber());
getAutoPilotControlManager().sendSweeperAutopilotBootable(reqNo, isBootable);
//SweeperCloudTaskUtils.mockSendCloudBootable();
}
@@ -612,7 +612,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskSuspendResume.getNumber());
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperSuspendResumeTaskResp" + printMessage(resp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskSuspendResume);
"sendSweeperSuspendResumeTaskResp" + SweeperCloudTaskUtils.printMessage(resp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskSuspendResume);
getAutoPilotControlManager().sendSweeperCloudSuspendResumeTaskResp(reqNo, resp);
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.presenter;
package com.mogo.och.sweeper.cloud.presenter;
import androidx.annotation.NonNull;
@@ -10,13 +10,13 @@ import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSystemListenerManager;
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweepercloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweepercloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweepercloud.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.fragment.SweeperFragment;
import com.mogo.och.sweepercloud.model.SweeperTaskModel;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.cloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweeper.cloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.common.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.cloud.fragment.SweeperFragment;
import com.mogo.och.sweeper.cloud.model.SweeperTaskModel;
import com.zhjt.mogo.adas.data.AiCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon;

View File

@@ -1,14 +1,4 @@
package com.mogo.och.sweepercloud.ui;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_BOTH_SIDE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_LEFT_SIDE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_RIGHT_SIDE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRAND;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRONG;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_DRAW;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_SWEEP;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_WASH;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_WASH_SWEEP;
package com.mogo.och.sweeper.cloud.ui;
import android.animation.ObjectAnimator;
import android.content.Context;
@@ -31,14 +21,11 @@ import androidx.annotation.Nullable;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.och.sweepercloud.R;
import com.mogo.och.sweepercloud.callback.ICleaningModeStateCallback;
import com.mogo.och.sweepercloud.constant.OperateStateEnum;
import com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil;
import com.mogo.och.sweepercloud.view.NoTouchConstraintLayout;
import com.mogo.och.sweepercloud.callback.ICleaningModeStateCallback;
import com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil;
import com.mogo.och.sweepercloud.view.NoTouchConstraintLayout;
import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.common.constant.OperateStateEnum;
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.common.view.NoTouchConstraintLayout;
import java.util.Arrays;
import java.util.HashMap;
@@ -47,11 +34,6 @@ import java.util.List;
import chassis.ChassisStatesOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_CLOSE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_CLOSE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_WORK_CLOSE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_WORK_OPEN;
/**
* 清扫车操作面板View
*/

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.ui.dialog
package com.mogo.och.sweeper.cloud.ui.dialog
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
@@ -10,9 +10,8 @@ import android.widget.TextView
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener
import com.mogo.och.sweepercloud.view.CountDownView
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.cloud.view.CountDownView
/**
* 清扫车云控任务dialog基类
@@ -115,7 +114,7 @@ import com.mogo.och.sweepercloud.view.CountDownView
var middleStr: String = ""
var rightStr: String = ""
var countDownTime: Int = 0
var listener: SweeperCloudDialogClickListener? = null
var listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener? = null
fun build(context: Context): SweeperCloudDialog {
return SweeperCloudDialog(this, context)
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.ui.dialog
package com.mogo.och.sweeper.cloud.ui.dialog
import android.animation.ObjectAnimator
import android.content.Context
@@ -7,7 +7,7 @@ import androidx.lifecycle.LifecycleObserver
import com.elegant.utils.UiThreadHandler
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import kotlinx.android.synthetic.main.dialog_sweeper_cloud_loading.*
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.dialog
package com.mogo.och.sweeper.cloud.ui.dialog
import android.content.Context
import android.widget.TextView
@@ -16,7 +16,7 @@ class SweeperManualDrivingDialog: BaseFloatDialog, LifecycleObserver {
private var clickListener: ClickListener? = null
constructor(builder: Builder,context: Context) : super(context) {
constructor(builder: Builder, context: Context) : super(context) {
commonTips?.text = builder.tipsStr
commonConfirm?.text = builder.confirmStr
}
@@ -53,12 +53,12 @@ class SweeperManualDrivingDialog: BaseFloatDialog, LifecycleObserver {
class Builder{
var tipsStr:String = ""
var confirmStr:String = ""
fun tips(tips: String) : Builder{
fun tips(tips: String) : Builder {
this.tipsStr = tips
return this
}
fun confirmStr(commit: String) : Builder{
fun confirmStr(commit: String) : Builder {
this.confirmStr = commit
return this
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.dialog
package com.mogo.och.sweeper.cloud.ui.dialog
import android.content.Context
import android.widget.TextView
@@ -17,7 +17,7 @@ class SweeperNoTitleCommonDialog: BaseFloatDialog, LifecycleObserver {
private var clickListener: ClickListener? = null
constructor(builder: Builder,context: Context) : super(context) {
constructor(builder: Builder, context: Context) : super(context) {
commonTips?.text = builder.tipsStr
commonCancel?.text = builder.cancelStr
commonConfirm?.text = builder.confirmStr
@@ -62,17 +62,17 @@ class SweeperNoTitleCommonDialog: BaseFloatDialog, LifecycleObserver {
var tipsStr:String = ""
var confirmStr:String = ""
var cancelStr:String = ""
fun tips(tips: String) : Builder{
fun tips(tips: String) : Builder {
this.tipsStr = tips
return this
}
fun confirmStr(commit: String) : Builder{
fun confirmStr(commit: String) : Builder {
this.confirmStr = commit
return this
}
fun cancelStr(cancel: String) : Builder{
fun cancelStr(cancel: String) : Builder {
this.cancelStr = cancel
return this
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.ui.popwindow
package com.mogo.och.sweeper.cloud.ui.popwindow
import android.content.Context
import android.graphics.Color
@@ -7,10 +7,10 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.PopupWindow
import chassis.ChassisStatesOuterClass
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.callback.ICleaningModeStateCallback
import com.mogo.och.sweepercloud.constant.OperateStateEnum
import com.mogo.och.sweepercloud.ui.SweeperOperatePanelView
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.constant.OperateStateEnum
import com.mogo.och.sweeper.cloud.ui.SweeperOperatePanelView
import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback
/**
* 清扫车面板浮窗
@@ -24,7 +24,7 @@ class SweeperOperatePanelPopWindow : PopupWindow{
}
private fun init(context: Context) {
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
mOperatePanelView = LayoutInflater.from(context).inflate(R.layout.sweeper_popwindow_operate_panel, null) as SweeperOperatePanelView?
mOperatePanelView = LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_popwindow_operate_panel, null) as SweeperOperatePanelView?
width = ViewGroup.LayoutParams.WRAP_CONTENT
height = ViewGroup.LayoutParams.WRAP_CONTENT
contentView = mOperatePanelView

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util;
package com.mogo.och.sweeper.cloud.util;
import android.os.Environment;
import android.text.TextUtils;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util;
package com.mogo.och.sweeper.cloud.util;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
@@ -14,7 +14,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.sweepercloud.constant.SweeperConst;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import java.util.HashMap;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util
package com.mogo.och.sweeper.cloud.util
import android.content.Context
import android.util.Log
@@ -14,11 +14,11 @@ import com.mogo.map.overlay.point.Point
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.OCHThreadPoolManager
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener
import com.mogo.och.sweepercloud.constant.SweeperConst
import com.mogo.och.sweepercloud.model.SweeperTaskModel
import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener
import com.mogo.och.sweeper.common.constant.SweeperConst
import com.mogo.och.sweeper.cloud.model.SweeperTaskModel
import com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
@@ -43,7 +43,7 @@ object SweeperCloudTaskUtils {
// UiThreadHandler.getsUiHandler().postDelayed({
// mockSendCloudTaskInfo(MessageType.PadSendGetTaskReq)
// },1000)
SweeperTaskModel.getInstance().getCurrentTask()
com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().getCurrentTask()
}
/**
@@ -150,7 +150,7 @@ object SweeperCloudTaskUtils {
// subBuilder3.lineId = 126
// subBuilder3.lineName = "测试路线3"
// builder.addSubList(subBuilder3.build())
SweeperTaskModel.getInstance().onSweeperFutianCloudTask(
com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTask(
messageType,
"${System.currentTimeMillis()}",
System.currentTimeMillis(),
@@ -171,7 +171,7 @@ object SweeperCloudTaskUtils {
builder.sn = getDriverSn()
builder.taskId = "10"
builder.subTaskId = "1"
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskConfirm(
com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTaskConfirm(
AiCloudTask.MessageType.CloudPushTaskConfirm, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -187,7 +187,7 @@ object SweeperCloudTaskUtils {
builder.taskId = "10"
builder.subTaskId = "1"
builder.taskStatus = SweeperCommon.TaskStatus.RUNNING
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStatus(
com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStatus(
AiCloudTask.MessageType.CloudPushTaskStatus, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -202,7 +202,7 @@ object SweeperCloudTaskUtils {
builder.sn = getDriverSn()
builder.taskId = "10"
builder.type = SweeperTaskStop.StopTaskType.ADVANCE
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStop(
com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStop(
AiCloudTask.MessageType.CloudPushTaskStop, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -218,7 +218,7 @@ object SweeperCloudTaskUtils {
builder.taskId = "10"
builder.taskStatus = SweeperCommon.TaskStatus.FINISHED
builder.systemTime = System.currentTimeMillis()
SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus(
com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus(
AiCloudTask.MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -235,7 +235,7 @@ object SweeperCloudTaskUtils {
builder.subTaskId = "1"
builder.code = SweeperCommon.Code.SUCCEED
UiThreadHandler.getsUiHandler().postDelayed({
SweeperTaskModel.getInstance().onSweeperFutianCloudBootable(
com.mogo.och.sweeper.cloud.model.SweeperTaskModel.getInstance().onSweeperFutianCloudBootable(
AiCloudTask.MessageType.PadSendBootable, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -251,7 +251,7 @@ object SweeperCloudTaskUtils {
val setMapMarkerRunnable = Runnable {
val builder =
Point.Options.Builder(
SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END,
com.mogo.och.sweeper.common.constant.SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END,
Level.MAP_MARKER
)
.setId(uuid)
@@ -277,7 +277,7 @@ object SweeperCloudTaskUtils {
//开启线程移除起终点marker设置
val removeMapMarkerRunnable = Runnable {
val overlayManager = CallerMapUIServiceManager.getOverlayManager()
overlayManager?.removeAllPointsInOwner(SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END)
overlayManager?.removeAllPointsInOwner(com.mogo.och.sweeper.common.constant.SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END)
}
OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable)
}
@@ -291,11 +291,11 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createReceivedBigTaskInfoDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
taskInfo: TaskInfo
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
taskInfo: TaskInfo
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
val startCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskStartTime)
val endCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskEndTime)
builder.titleStr = "任务接取"
@@ -320,11 +320,11 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createConfirmStartSubTaskDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
subTaskInfo: SubTaskInfo
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
subTaskInfo: SubTaskInfo
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "子任务确认"
builder.contentStr = "请确认并执行子任务 ${subTaskInfo.subTaskName}"
builder.tipStr =
@@ -342,12 +342,12 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createSweeperTaskEndDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
stopTaskType: SweeperTaskStop.StopTaskType,
timeoutStr: String
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
stopTaskType: SweeperTaskStop.StopTaskType,
timeoutStr: String
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
val titleStr = when (stopTaskType) {
SweeperTaskStop.StopTaskType.ADVANCE -> "任务中止"
SweeperTaskStop.StopTaskType.EXCEPTION -> "任务异常结束"
@@ -385,9 +385,9 @@ object SweeperCloudTaskUtils {
@JvmStatic
fun createSweeperTaskNormalEndDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务结束"
builder.contentStr = "任务已完成,干的漂亮!"
builder.tipStr = ""
@@ -404,11 +404,11 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createSweeperTaskExceptionEndDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
isCancel: Boolean
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
isCancel: Boolean
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务结束"
builder.contentStr = if (isCancel) "任务已取消!" else "任务已异常结束!"
builder.tipStr = ""
@@ -423,9 +423,9 @@ object SweeperCloudTaskUtils {
@JvmStatic
fun createSweeperTaskSuspendDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务暂停"
builder.contentStr = "云端暂停任务,注意车辆即将停车!"
builder.tipStr = "【云端任务恢复前不可启动自动驾驶】"
@@ -439,11 +439,11 @@ object SweeperCloudTaskUtils {
@JvmStatic
fun createSweeperTaskResumeDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
contentStr: String
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
contentStr: String
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务恢复"
builder.contentStr = contentStr
builder.tipStr = "【注意安全,坐稳扶好】"

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.content.Context
import android.os.Handler

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.cloud.view;
import android.content.Context;
import android.util.AttributeSet;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.content.Context
import android.graphics.Color
@@ -6,11 +6,11 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel
import kotlinx.android.synthetic.main.sweeper_subtask_view.view.*
import kotlinx.android.synthetic.main.sweeper_cloud_subtask_view.view.*
/**
* 子任务View
@@ -24,7 +24,7 @@ class SubTaskView : ConstraintLayout {
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_subtask_view, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_subtask_view, this)
}
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.annotation.SuppressLint
import android.content.Context
@@ -10,18 +10,18 @@ import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.TaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskInfo
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.currentSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.lastSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.preSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvStartAuto
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskName
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskState
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskTime
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.currentSubTask
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.lastSubTask
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.preSubTask
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvStartAuto
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvTaskName
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvTaskState
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvTaskTime
/**
* 清扫车当前任务信息展示
@@ -53,7 +53,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_current_task_info, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_current_task_info, this)
updateTaskStateText(TaskStatus.TO_START)
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.annotation.SuppressLint
import android.content.Context
@@ -18,7 +18,7 @@ import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView
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.ThreadUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import planning.RoboSweeperTaskIndexOuterClass
import kotlin.math.roundToInt
@@ -64,7 +64,7 @@ class SweeperTrafficDataView : ConstraintLayout,
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_traffic_data, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_traffic_data, this)
tapPositionView = findViewById(R.id.sweeperTrafficPosition)
speedImage = findViewById(R.id.sweeperSpeedImage)
speedTextView = findViewById(R.id.sweeperSpeedText)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.content.Context
import android.util.AttributeSet
@@ -11,7 +11,7 @@ import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import kotlinx.android.synthetic.main.sweeper_traffic_light_view.view.*
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.content.Context
import android.util.AttributeSet
@@ -9,23 +9,21 @@ import chassis.ChassisStatesOuterClass.SweeperFuTianTaskSystemStates
import com.elegant.utils.UiThreadHandler
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.callback.ICleaningModeStateCallback
import com.mogo.och.sweepercloud.constant.OperateStateEnum
import com.mogo.och.sweepercloud.ui.popwindow.SweeperOperatePanelPopWindow
import com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.constant.OperateStateEnum
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel
import kotlinx.android.synthetic.main.sweeper_work_mode.view.*
/**
* 清扫车模式信息展示
*/
class SweeperWorkModeView : ConstraintLayout,ICleaningModeStateCallback {
class SweeperWorkModeView : ConstraintLayout {
private var isSelectPureSweepMode: Boolean = false
private val TAG = "SweeperWorkModeView"
//清扫模式选择面板
private var mOperatePanelPopWindow: SweeperOperatePanelPopWindow? = null
private var mOperatePanelPopWindow: com.mogo.och.sweeper.cloud.ui.popwindow.SweeperOperatePanelPopWindow? = null
private var operateState: OperateStateEnum=OperateStateEnum.SYNCING_STATUS
@@ -39,14 +37,14 @@ class SweeperWorkModeView : ConstraintLayout,ICleaningModeStateCallback {
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_work_mode, this)
mOperatePanelPopWindow = SweeperOperatePanelPopWindow(context)
mOperatePanelPopWindow = com.mogo.och.sweeper.cloud.ui.popwindow.SweeperOperatePanelPopWindow(context)
setShowOrHideCleanSystemState(OperateStateEnum.SYNCING_STATUS,null)
}
/**
* 设置view
*/
fun setTrafficDataView(trafficDataView: SweeperTrafficDataView){
fun setTrafficDataView(trafficDataView: com.mogo.och.sweeper.cloud.view.SweeperTrafficDataView){
//清扫模式选择面板打开关闭处理
ivOpenOperatePanel.setOnClickListener {
if (mOperatePanelPopWindow?.isShowing != true) {
@@ -126,7 +124,7 @@ class SweeperWorkModeView : ConstraintLayout,ICleaningModeStateCallback {
}
}
override fun cleaningModeState(operateState: OperateStateEnum, cleanSystemState: SweeperFuTianTaskSystemStates?, isSelectPureSweepMode: Boolean) {
fun cleaningModeState(operateState: OperateStateEnum, cleanSystemState: SweeperFuTianTaskSystemStates?, isSelectPureSweepMode: Boolean) {
this.isSelectPureSweepMode = isSelectPureSweepMode
this.operateState=operateState
setShowOrHideCleanSystemState(operateState, cleanSystemState)

View File

@@ -1,9 +1,7 @@
package com.mogo.och.sweeper.bean;
package com.mogo.och.sweeper.common.bean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* Created by pangfan on 2021/8/19
*

View File

@@ -1,6 +1,6 @@
package com.mogo.och.sweepercloud.callback;
package com.mogo.och.sweeper.common.callback;
import com.mogo.och.sweepercloud.constant.OperateStateEnum;
import com.mogo.och.sweeper.common.constant.OperateStateEnum;
import chassis.ChassisStatesOuterClass;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback;
package com.mogo.och.sweeper.common.callback;
/**
* Created on 2021/9/8

View File

@@ -1,8 +1,8 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.common.callback
import com.amap.api.maps.model.LatLng
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import java.util.ArrayList
interface ISweeperTaskDataToFragmentCallback {

View File

@@ -1,6 +1,6 @@
package com.mogo.och.sweeper.callback
package com.mogo.och.sweeper.common.callback
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import java.util.ArrayList
interface ISweeperTaskRouteCallback {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.constant
package com.mogo.och.sweeper.common.constant
/**
* 上装面板操作状态

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.constant
package com.mogo.och.sweeper.common.constant
import com.mogo.commons.debug.DebugConfig

View File

@@ -1,8 +1,8 @@
package com.mogo.och.sweeper.database;
package com.mogo.och.sweeper.common.database;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.och.sweeper.database.bean.WeltDataBean;
import com.mogo.och.sweeper.database.dao.WeltDataDao;
import com.mogo.och.sweeper.common.database.dao.WeltDataDao;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import androidx.room.Database;
import androidx.room.Room;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.database.bean;
package com.mogo.och.sweeper.common.database.bean;
import java.io.Serializable;

View File

@@ -1,7 +1,6 @@
package com.mogo.och.sweepercloud.database.dao;
package com.mogo.och.sweeper.common.database.dao;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import java.util.List;
@@ -10,7 +9,7 @@ import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import static com.mogo.och.sweepercloud.database.bean.WeltDataBean.WeltDataTable;
import static com.mogo.och.sweeper.common.database.bean.WeltDataBean.WeltDataTable;
@Dao
public interface WeltDataDao {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.receiver;
package com.mogo.och.sweeper.common.receiver;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
@@ -7,7 +7,7 @@ import android.content.Context;
import android.content.Intent;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.common.constant.SweeperConst;
/**
* 测试小巴车的场景

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util;
package com.mogo.och.sweeper.common.util;
import chassis.ChassisStatesOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util;
package com.mogo.och.sweeper.common.util;
import android.content.Context;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.util.AttributeSet

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.common.view;
import android.content.Context;
import android.util.AttributeSet;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.common.view;
import android.content.Context;
import android.util.AttributeSet;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.util.AttributeSet

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.animation.AnimatorSet
import android.animation.ObjectAnimator

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.common.view;
import android.content.Context;
import android.graphics.Canvas;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.graphics.Color
@@ -20,10 +20,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.constant.SweeperConst
import com.mogo.och.sweeper.database.bean.WeltDataBean
import com.mogo.och.sweeper.util.SweeperMapAssetStyleUtil
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.common.constant.SweeperConst
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil
import kotlinx.android.synthetic.main.sweeper_welt_map_overview.view.*
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.graphics.Color
@@ -19,11 +19,8 @@ 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.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.constant.SweeperConst
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweepercloud.util.SweeperMapAssetStyleUtil
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import com.mogo.och.sweeper.R
import kotlinx.android.synthetic.main.sweeper_welt_small_map_view.view.*
@@ -120,8 +117,8 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
.setStyleData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
mAMap?.setOnMapLoadedListener(AMap.OnMapLoadedListener {
@@ -129,8 +126,8 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
.setStyleData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
mAMap?.setPointToCenter(sweeperSmallTextureMapView.width / 2, sweeperSmallTextureMapView.height / 2)
@@ -184,7 +181,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
}
}
if (weltDataBean.weltDistance == SweeperConst.NONWELT) {//非贴边
if (weltDataBean.weltDistance == com.mogo.och.sweeper.common.constant.SweeperConst.NONWELT) {//非贴边
colorList.add(ContextCompat.getColor(context,R.color.sweeper_236299))
} else if (weltDataBean.weltDistance < 0) {
colorList.add(ContextCompat.getColor(context,R.color.sweeper_c22101))
@@ -249,7 +246,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
/**
* 设置任务轨迹数据
*/
fun setRouteList(routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>) {
fun setRouteList(routeList: ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>) {
val routeCoordinatesLatLngs = mutableListOf<LatLng>()
for (i in routeList.indices) {
routeCoordinatesLatLngs.add(LatLng(routeList[i].latitude, routeList[i].longitude))

View File

@@ -1,12 +0,0 @@
package com.mogo.och.sweeper.constant
/**
* 上装面板操作状态
*/
enum class OperateStateEnum(val code: Int) {
SYNCING_STATUS( 1),//清扫车底盘状态同步中
STARTING_STATUS( 2),//上装中
FAIL_STATUS( 3),//上装失败
SUCCESS_STATUS(4),//上装成功
NO_STATUS(-1);//暂无模式
}

View File

@@ -1,70 +0,0 @@
package com.mogo.och.sweeper.constant
import com.mogo.commons.debug.DebugConfig
/**
* Created on 2021/12/6
*/
class SweeperConst {
companion object {
// OCH arouter 路由path
const val PATH = "/driver/api"
// 测试用的广播
const val BROADCAST_TEST_SWEEPER_CONTROL_TYPE_EXTRA_KEY = "sceneType"
// 上报心跳轮询ms
const val LOOP_PERIOD_60S = 60 * 1000L
// 开始服务启动自动驾驶等待时间(埋点上传)
const val LOOP_PERIOD_15S = 15 * 1000L
const val LOOP_PERIOD_1S = 1 * 1000L
const val LOOP_DELAY = 100L
// 下发给MEC轨迹信息间隔时间 10秒
const val LOOP_PERIOD_10S = 10 * 1000L
// 尝试下发给MEC轨迹最多10次
const val LOOP_SEND_TRAJ_TIMES = 10
//起点UUID
const val SWEEPER_START_MAP_MAKER = "sweeper_start_map_maker";
//终点UUID
const val SWEEPER_END_MAP_MAKER = "sweeper_end_map_maker";
// 埋点key接管后点击'自动驾驶'按钮启动
const val EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_sweeper_restart_autopilot"
// 埋点key开始服务开启自动驾驶成功/失败)
const val EVENT_KEY_START_SERVICE = "event_key_och_sweeper_start_service"
const val EVENT_PARAM_SN = "sn"
const val EVENT_PARAM_TIME = "time"
const val EVENT_PARAM_START_NAME = "start_name"
const val EVENT_PARAM_END_NAME = "end_name"
const val EVENT_PARAM_LINE_ID = "line_id"
const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false
const val EVENT_PARAM_START_FAILURE_CODE = "start_autopilot_failure_code" // 启动自驾失败code
const val EVENT_PARAM_START_FAILURE_MSG = "start_autopilot_failure_msg" // 启动自驾失败原因
const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号
const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境true/false
// 埋点key开启自动驾驶前已识别的异常会导致无法开启自驾
const val EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_bus_ap_unable_start_reason"
const val EVENT_PARAM_UNABLE_START_REASON = "unable_start_reason";
/**
* 订单起终点Marker类型
*/
const val TYPE_MARKER_SWEEPER_ORDER = "TYPE_MARKER_SWEEPER_ORDER"
const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L
//围栏到站 暂定10米
const val ARRIVE_AT_END_STATION_DISTANCE = 10
//非贴边
const val NONWELT = -10000.0
}
}

View File

@@ -1,127 +0,0 @@
package com.mogo.och.sweeper.database.bean;
import java.io.Serializable;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Index;
import androidx.room.PrimaryKey;
@Entity(tableName = WeltDataBean.WeltDataTable, indices = {@Index(value = "id", unique = true)})
public class WeltDataBean implements Serializable {
public static final String WeltDataTable = "welt_data_table";
//ColumnInfo用于指定该字段存储在表中的名字并指定类型
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id", typeAffinity = ColumnInfo.INTEGER)
private int id;
@ColumnInfo(name = "subTaskId", typeAffinity = ColumnInfo.INTEGER)//子任务id
private int subTaskId;
@ColumnInfo(name = "locLon", typeAffinity = ColumnInfo.REAL)
private double locLon;//自车RTK定位经度
@ColumnInfo(name = "locLat", typeAffinity = ColumnInfo.REAL)
private double locLat;//自车RTK定位纬度
@ColumnInfo(name = "weltDistance", typeAffinity = ColumnInfo.REAL)
private double weltDistance;//贴边距离
@ColumnInfo(name = "cleanMode", typeAffinity = ColumnInfo.INTEGER)
private int cleanMode;//清扫作业模式 1纯扫 2--洗扫, 3--纯洗, 4--纯吸
@ColumnInfo(name = "cleanDirection", typeAffinity = ColumnInfo.INTEGER)
private int cleanDirection;//清扫方向 1--两侧, 2--左侧, 3--右侧
@ColumnInfo(name = "cleanIntensity", typeAffinity = ColumnInfo.INTEGER)
private int cleanIntensity;//清扫强度 1--两侧, 2--左侧, 3--右侧
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getSubTaskId() {
return subTaskId;
}
public void setSubTaskId(int subTaskId) {
this.subTaskId = subTaskId;
}
public double getLocLon() {
return locLon;
}
public void setLocLon(double locLon) {
this.locLon = locLon;
}
public double getLocLat() {
return locLat;
}
public void setLocLat(double locLat) {
this.locLat = locLat;
}
public double getWeltDistance() {
return weltDistance;
}
public void setWeltDistance(double weltDistance) {
this.weltDistance = weltDistance;
}
public int getCleanMode() {
return cleanMode;
}
public void setCleanMode(int cleanMode) {
this.cleanMode = cleanMode;
}
public int getCleanDirection() {
return cleanDirection;
}
public void setCleanDirection(int cleanDirection) {
this.cleanDirection = cleanDirection;
}
public int getCleanIntensity() {
return cleanIntensity;
}
public void setCleanIntensity(int cleanIntensity) {
this.cleanIntensity = cleanIntensity;
}
@Override
public String toString() {
return "WeltDataBean{" +
"id=" + id +
", subTaskId='" + subTaskId + '\'' +
", locLon=" + locLon +
", locLat=" + locLat +
", weltDistance=" + weltDistance +
", cleanMode=" + cleanMode +
", cleanDirection=" + cleanDirection +
", cleanIntensity=" + cleanIntensity +
'}';
}
}

View File

@@ -1,27 +0,0 @@
package com.mogo.och.sweeper.database.dao;
import com.mogo.och.sweeper.database.bean.WeltDataBean;
import java.util.List;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import static com.mogo.och.sweeper.database.bean.WeltDataBean.WeltDataTable;
@Dao
public interface WeltDataDao {
//插入数据
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(WeltDataBean fileInfo);
//删除所有数据
@Query("DELETE FROM " + WeltDataTable)
int deleteAllWeltData();
//查询所有数据
@Query("SELECT * FROM " + WeltDataTable)
List<WeltDataBean> loadAllWeltDataInfo();
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean;
package com.mogo.och.sweeper.operate.bean;
import com.mogo.eagle.core.data.BaseData;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean
package com.mogo.och.sweeper.operate.bean
import com.mogo.cloud.passport.MoGoAiCloudClientConfig

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean
package com.mogo.och.sweeper.operate.bean
/**
* 子任务信息

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean;
package com.mogo.och.sweeper.operate.bean;
public class SweeperSubTaskDetailBean {
private int id; //子任务id

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.callback;
package com.mogo.och.sweeper.operate.callback;
import com.mogo.eagle.core.data.map.MogoLocation;

View File

@@ -1,11 +1,11 @@
package com.mogo.och.sweeper.callback
package com.mogo.och.sweeper.operate.callback
import com.mogo.och.sweeper.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
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.operate.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum
import java.util.ArrayList
/**
@@ -16,12 +16,12 @@ interface ISweeperTaskCallback {
/**
* 获取主任务列表
*/
fun setMainTaskList(mainTaskBeanList: MutableList<SweeperMainTaskBean>?,refresh:Boolean)
fun setMainTaskList(mainTaskBeanList: MutableList<SweeperMainTaskBean>?, refresh:Boolean)
/**
* 获取子任务列表
*/
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean,isWorkingSubTask:Boolean)
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean, isWorkingSubTask:Boolean)
/**
* 更新子任务状态

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.operate.callback
interface IWeltMapSwitchToSmallCallback {
fun onWeltMapSwitchToSmall()

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.constant
package com.mogo.och.sweeper.operate.constant
/**
* 任务类型

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.constant
package com.mogo.och.sweeper.operate.constant
/**
* 当前任务操作菜单

View File

@@ -1,7 +1,7 @@
package com.mogo.och.sweeper.event;
package com.mogo.och.sweeper.operate.event;
import com.amap.api.maps.model.LatLng;
import com.mogo.och.sweeper.database.bean.WeltDataBean;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment;
package com.mogo.och.sweeper.operate.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -29,12 +29,12 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.och.common.module.map.AmapNaviToDestinationModel;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweeper.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweeper.database.bean.WeltDataBean;
import com.mogo.och.sweeper.view.SweeperTrafficDataView;
import com.mogo.och.sweeper.view.WeltSmallMapView;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweeper.operate.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.operate.view.SweeperTrafficDataView;
import com.mogo.och.sweeper.common.view.WeltSmallMapView;
import java.math.BigDecimal;
import java.math.RoundingMode;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment;
package com.mogo.och.sweeper.operate.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.fragment;
package com.mogo.och.sweeper.operate.fragment;
import android.os.Bundle;
import android.view.View;
@@ -8,7 +8,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.common.module.map.AmapNaviToDestinationModel;
import com.mogo.och.common.module.map.CommonAmapNaviVIew;
import com.mogo.och.common.module.map.ICommonNaviChangedCallback;
import com.mogo.och.sweepercloud.R;
import com.mogo.och.sweeper.R;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
@@ -43,21 +43,21 @@ public class SweeperAmapNaviFragment extends BaseSweeperUIFragment implements AM
protected void initViews(Bundle savedInstanceState) {
super.initViews(savedInstanceState);
if (mAMapNaviView != null)
mAMapNaviView.onCreate(savedInstanceState);
mAMapNaviView.onCreate(savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
if (mAMapNaviView != null)
mAMapNaviView.onResume();
mAMapNaviView.onResume();
}
@Override
public void onPause() {
super.onPause();
if (mAMapNaviView != null)
mAMapNaviView.onPause();
mAMapNaviView.onPause();
}
@Override

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment
package com.mogo.och.sweeper.operate.fragment
import android.graphics.Color
import android.os.Bundle
@@ -17,15 +17,19 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.*
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.presenter.SweeperPresenter
import com.mogo.och.sweeper.ui.adapter.TaskListAdapter
import com.mogo.och.sweeper.ui.dialog.SweeperManualDrivingDialog
import com.mogo.och.sweeper.ui.dialog.SweeperNoTitleCommonDialog
import com.mogo.och.sweeper.ui.popwindow.MenuPopWindow
import com.mogo.och.sweeper.operate.bean.*
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum
import com.mogo.och.sweeper.common.database.MyDataBase
import com.mogo.och.sweeper.operate.bean.SubInfo
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.operate.presenter.SweeperPresenter
import com.mogo.och.sweeper.operate.ui.adapter.TaskListAdapter
import com.mogo.och.sweeper.operate.ui.dialog.SweeperManualDrivingDialog
import com.mogo.och.sweeper.operate.ui.dialog.SweeperNoTitleCommonDialog
import com.mogo.och.sweeper.operate.ui.popwindow.MenuPopWindow
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.*

View File

@@ -1,13 +1,13 @@
package com.mogo.och.sweeper.fragment
package com.mogo.och.sweeper.operate.fragment
import android.os.Bundle
import com.amap.api.maps.model.LatLng
import com.mogo.commons.mvp.BaseFragment
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.callback.ISweeperTaskDataToFragmentCallback
import com.mogo.och.sweeper.callback.IWeltMapSwitchToSmallCallback
import com.mogo.och.sweeper.database.bean.WeltDataBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback
import com.mogo.och.sweeper.operate.callback.IWeltMapSwitchToSmallCallback
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import kotlinx.android.synthetic.main.fragment_welt_map_overview.*
import kotlinx.android.synthetic.main.sweeper_welt_map_overview.*
@@ -67,13 +67,13 @@ class WeltMapOverViewFragment() : BaseFragment(), ISweeperTaskDataToFragmentCall
companion object {
@JvmStatic
fun newInstance(
mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback,
mCurrentTaskEndStation:LatLng?,
weltDataList: ArrayList<WeltDataBean>?,
latLngs: ArrayList<LatLng>?,
routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>?,
progress:String?,
sweeperFragment: SweeperFragment
mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback,
mCurrentTaskEndStation:LatLng?,
weltDataList: ArrayList<WeltDataBean>?,
latLngs: ArrayList<LatLng>?,
routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>?,
progress:String?,
sweeperFragment: SweeperFragment
): WeltMapOverViewFragment {
val args = Bundle()
args.putSerializable("weltDataList", weltDataList)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.model;
package com.mogo.och.sweeper.operate.model;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
@@ -40,21 +40,21 @@ import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.bean.BaseResponse;
import com.mogo.och.sweeper.bean.SubInfo;
import com.mogo.och.sweeper.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperTaskCallback;
import com.mogo.och.sweeper.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.constant.TaskStatusEnum;
import com.mogo.och.sweeper.net.SweeperServiceManager;
import com.mogo.och.sweeper.util.SweeperAnalyticsManager;
import com.mogo.och.sweeper.util.SweeperTrajectoryManager;
import com.mogo.och.sweeper.operate.bean.BaseResponse;
import com.mogo.och.sweeper.operate.bean.SubInfo;
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.common.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperTaskCallback;
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum;
import com.mogo.och.sweeper.operate.net.SweeperServiceManager;
import com.mogo.och.sweeper.operate.util.SweeperAnalyticsManager;
import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,10 +1,10 @@
package com.mogo.och.sweeper.net;
import com.mogo.och.sweeper.bean.BaseResponse;
import com.mogo.och.sweeper.bean.SubInfo;
import com.mogo.och.sweeper.bean.SubStartRequest;
import com.mogo.och.sweeper.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean;
package com.mogo.och.sweeper.operate.net;
import com.mogo.och.sweeper.operate.bean.BaseResponse;
import com.mogo.och.sweeper.operate.bean.SubInfo;
import com.mogo.och.sweeper.operate.bean.SubStartRequest;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean;
import java.util.List;
import java.util.Map;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.net
package com.mogo.och.sweeper.operate.net
import android.content.Context
import com.elegant.network.utils.GsonUtil
@@ -10,8 +10,13 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.biz.network.interceptor.transformTry
import com.mogo.och.sweeper.bean.*
import com.mogo.och.sweeper.model.SweeperTaskModel
import com.mogo.och.sweeper.operate.model.SweeperTaskModel
import com.mogo.och.sweeper.operate.bean.BaseResponse
import com.mogo.och.sweeper.operate.bean.SubInfo
import com.mogo.och.sweeper.operate.bean.SubStartRequest
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean
object SweeperServiceManager {
private val TAG = SweeperTaskModel::class.java.simpleName

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.presenter;
package com.mogo.och.sweeper.operate.presenter;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
@@ -23,23 +23,23 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.sweeper.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperTaskCallback;
import com.mogo.och.sweeper.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweeper.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.constant.SweeperConst;
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.fragment.SweeperFragment;
import com.mogo.och.sweeper.model.SweeperTaskModel;
import com.mogo.och.sweeper.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.util.SweeperTrajectoryManager;
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.common.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperTaskCallback;
import com.mogo.och.sweeper.common.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum;
import com.mogo.och.sweeper.common.database.MyDataBase;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.operate.fragment.SweeperFragment;
import com.mogo.och.sweeper.operate.model.SweeperTaskModel;
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager;
import org.jetbrains.annotations.NotNull;
@@ -348,7 +348,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
weltDataBean.setCleanMode(roboSweeperTaskIndex.getCleanMode());
weltDataBean.setCleanDirection(roboSweeperTaskIndex.getCleanDirection());
weltDataBean.setCleanIntensity(roboSweeperTaskIndex.getCleanIntensity());
weltDataBean.setSubTaskId(mSubTaskId);
weltDataBean.setSubTaskId(String.valueOf(mSubTaskId));
MyDataBase.getInstance().getWeltDataDao().insert(weltDataBean);
String distance;
if (roboSweeperTaskIndex.getDistToRefEdgePoint() >= 1.0) {//大于等于1m

View File

@@ -1,14 +1,14 @@
package com.mogo.och.sweeper.ui;
package com.mogo.och.sweeper.operate.ui;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_BOTH_SIDE;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_LEFT_SIDE;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_RIGHT_SIDE;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRAND;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRONG;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_DRAW;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_SWEEP;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_WASH;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_MODE_WASH_SWEEP;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_BOTH_SIDE;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_LEFT_SIDE;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_RIGHT_SIDE;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRAND;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRONG;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_DRAW;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_SWEEP;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_WASH;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_WASH_SWEEP;
import android.animation.ObjectAnimator;
import android.content.Context;
@@ -32,10 +32,10 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.callback.ICleaningModeStateCallback;
import com.mogo.och.sweeper.constant.OperateStateEnum;
import com.mogo.och.sweeper.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.view.NoTouchConstraintLayout;
import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback;
import com.mogo.och.sweeper.common.constant.OperateStateEnum;
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.common.view.NoTouchConstraintLayout;
import java.util.Arrays;
import java.util.HashMap;
@@ -44,10 +44,10 @@ import java.util.List;
import chassis.ChassisStatesOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_CLOSE;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_MODE_CLOSE;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_WORK_CLOSE;
import static com.mogo.och.sweeper.util.SweeperFutianCmdUtil.CLEAN_WORK_OPEN;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_CLOSE;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_MODE_CLOSE;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_WORK_CLOSE;
import static com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil.CLEAN_WORK_OPEN;
/**
* 清扫车操作面板View

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.adapter
package com.mogo.och.sweeper.operate.ui.adapter
import android.graphics.Color
import android.view.LayoutInflater
@@ -9,7 +9,7 @@ import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean
class TaskListAdapter() : RecyclerView.Adapter<TaskListAdapter.TaskViewHolder>() {
private var mItemClickListener: TaskItemClickListener? = null
@@ -42,7 +42,7 @@ class TaskListAdapter() : RecyclerView.Adapter<TaskListAdapter.TaskViewHolder>()
notifyDataSetChanged()
}
interface TaskItemClickListener {
fun onItemClick(position: Int,mainTask:SweeperMainTaskBean)
fun onItemClick(position: Int,mainTask: SweeperMainTaskBean)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TaskViewHolder {

View File

@@ -1,10 +1,10 @@
package com.mogo.och.sweepercloud.ui.dialog
package com.mogo.och.sweeper.operate.ui.dialog
import android.content.Context
import android.widget.TextView
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
/**
* 不带带有title, tip,confirm,cancel的dialog
@@ -16,7 +16,7 @@ class SweeperManualDrivingDialog: BaseFloatDialog, LifecycleObserver {
private var clickListener: ClickListener? = null
constructor(builder: Builder,context: Context) : super(context) {
constructor(builder: Builder, context: Context) : super(context) {
commonTips?.text = builder.tipsStr
commonConfirm?.text = builder.confirmStr
}
@@ -53,12 +53,12 @@ class SweeperManualDrivingDialog: BaseFloatDialog, LifecycleObserver {
class Builder{
var tipsStr:String = ""
var confirmStr:String = ""
fun tips(tips: String) : Builder{
fun tips(tips: String) : Builder {
this.tipsStr = tips
return this
}
fun confirmStr(commit: String) : Builder{
fun confirmStr(commit: String) : Builder {
this.confirmStr = commit
return this
}

View File

@@ -1,10 +1,10 @@
package com.mogo.och.sweepercloud.ui.dialog
package com.mogo.och.sweeper.operate.ui.dialog
import android.content.Context
import android.widget.TextView
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
/**
* 不带带有title, tip,confirm,cancel的dialog
@@ -17,7 +17,7 @@ class SweeperNoTitleCommonDialog: BaseFloatDialog, LifecycleObserver {
private var clickListener: ClickListener? = null
constructor(builder: Builder,context: Context) : super(context) {
constructor(builder: Builder, context: Context) : super(context) {
commonTips?.text = builder.tipsStr
commonCancel?.text = builder.cancelStr
commonConfirm?.text = builder.confirmStr
@@ -62,17 +62,17 @@ class SweeperNoTitleCommonDialog: BaseFloatDialog, LifecycleObserver {
var tipsStr:String = ""
var confirmStr:String = ""
var cancelStr:String = ""
fun tips(tips: String) : Builder{
fun tips(tips: String) : Builder {
this.tipsStr = tips
return this
}
fun confirmStr(commit: String) : Builder{
fun confirmStr(commit: String) : Builder {
this.confirmStr = commit
return this
}
fun cancelStr(cancel: String) : Builder{
fun cancelStr(cancel: String) : Builder {
this.cancelStr = cancel
return this
}

Some files were not shown because too many files have changed in this diff Show More