[6.4.6]
[fea] [添加订单过滤条件]
This commit is contained in:
@@ -11,6 +11,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerReceiveReceivedAckListe
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilot.line.LineManager
|
||||
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
|
||||
import com.zhjt.mogo.adas.common.MessageType
|
||||
import com.zhjt.mogo.adas.data.bean.ReceivedAck
|
||||
@@ -26,8 +27,12 @@ object OchAutoPilotManager : IMoGoReceiveReceivedAckListener {
|
||||
@JvmStatic
|
||||
fun canStartAutoPilot(lineId: Number?): String {
|
||||
return TrajectoryAndDistanceManager.canStartAutopilot(lineId).apply {
|
||||
if(!isNullOrBlank()){
|
||||
if (!isNullOrBlank()) {
|
||||
// 去启动绘制高精地图上的轨迹
|
||||
val drawGlobalTrajectory = LineManager.drawGlobalTrajectory()
|
||||
if (!drawGlobalTrajectory.first) {
|
||||
ToastUtils.showLong(drawGlobalTrajectory.second)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.mogo.och.common.module.manager.autopilot.line;
|
||||
|
||||
|
||||
public interface ILineCallback {
|
||||
default void clearLineSuccess(){}
|
||||
default void drawLineSuccess(){}
|
||||
|
||||
default void drawLineFail(){}
|
||||
}
|
||||
@@ -1,21 +1,29 @@
|
||||
package com.mogo.och.common.module.manager.autopilot.line
|
||||
|
||||
object LineManager {
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapGlobalTrajectoryDrawManager
|
||||
import com.mogo.och.common.module.utils.CallerBase
|
||||
|
||||
/**
|
||||
* 订单中
|
||||
*/
|
||||
object LineManager : CallerBase<ILineCallback>() {
|
||||
private var lineId: Int = -1
|
||||
@JvmStatic
|
||||
fun setLineId(value: Int) {
|
||||
if (value < 0) {
|
||||
lineId = -1
|
||||
lineId = if (value < 0) {
|
||||
clearGlobalTrajectory()
|
||||
-1
|
||||
} else {
|
||||
lineId = value
|
||||
value
|
||||
}
|
||||
}
|
||||
@JvmStatic
|
||||
fun setLineId(value: Long) {
|
||||
if (value < 0) {
|
||||
lineId = -1
|
||||
lineId = if (value < 0) {
|
||||
clearGlobalTrajectory()
|
||||
-1
|
||||
} else {
|
||||
lineId = value.toInt()
|
||||
value.toInt()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +32,44 @@ object LineManager {
|
||||
return lineId
|
||||
}
|
||||
|
||||
fun haveLine(): Boolean {
|
||||
return lineId > 0
|
||||
override fun doSomeAfterAddListener(tag: String, listener: ILineCallback) {
|
||||
super.doSomeAfterAddListener(tag, listener)
|
||||
if (hasDrawnGlobalTrajectory()) {
|
||||
listener.drawLineSuccess()
|
||||
}else{
|
||||
listener.drawLineFail()
|
||||
}
|
||||
}
|
||||
|
||||
fun hasDrawnGlobalTrajectory(): Boolean {
|
||||
return CallerMapGlobalTrajectoryDrawManager.hasDrawnGlobalTrajectory()
|
||||
}
|
||||
|
||||
fun clearGlobalTrajectory() {
|
||||
CallerMapGlobalTrajectoryDrawManager.clearGlobalTrajectory()
|
||||
if (!hasDrawnGlobalTrajectory()){
|
||||
M_LISTENERS.forEach {
|
||||
it.value.clearLineSuccess()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun drawGlobalTrajectory(): Pair<Boolean, String> {
|
||||
if(lineId<0){
|
||||
return Pair(false,"请设置正确线路或订单")
|
||||
}
|
||||
return CallerMapGlobalTrajectoryDrawManager.drawGlobalTrajectory().apply {
|
||||
if(first){
|
||||
M_LISTENERS.forEach {
|
||||
it.value.drawLineSuccess()
|
||||
}
|
||||
}else{
|
||||
M_LISTENERS.forEach {
|
||||
it.value.drawLineFail()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,17 +1,21 @@
|
||||
package com.mogo.och.common.module.wigets.map.drawline
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapGlobalTrajectoryDrawManager
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.manager.autopilot.line.LineManager
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class LineView : AppCompatImageView{
|
||||
class LineView : AppCompatImageView, LineViewModel.ILineViewCallback {
|
||||
|
||||
private val TAG = "VisualView"
|
||||
private val TAG = "LineView"
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
|
||||
@@ -31,19 +35,21 @@ class LineView : AppCompatImageView{
|
||||
super.onAttachedToWindow()
|
||||
|
||||
onClick {
|
||||
if (CallerMapGlobalTrajectoryDrawManager.hasDrawnGlobalTrajectory()) {
|
||||
CallerMapGlobalTrajectoryDrawManager.clearGlobalTrajectory()
|
||||
setImageResource(R.drawable.common_map_line_close)
|
||||
}else{
|
||||
val drawGlobalTrajectory = CallerMapGlobalTrajectoryDrawManager.drawGlobalTrajectory()
|
||||
if(drawGlobalTrajectory.first){
|
||||
setImageResource(R.drawable.common_map_line_open)
|
||||
}else{
|
||||
setImageResource(R.drawable.common_map_line_close)
|
||||
if (LineManager.hasDrawnGlobalTrajectory()) {
|
||||
LineManager.clearGlobalTrajectory()
|
||||
} else {
|
||||
val drawGlobalTrajectory = LineManager.drawGlobalTrajectory()
|
||||
if (!drawGlobalTrajectory.first) {
|
||||
ToastUtils.showLong(drawGlobalTrajectory.second)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val viewModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it).get(LineViewModel::class.java)
|
||||
}
|
||||
viewModel?.setDistanceCallback(this)
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +61,9 @@ class LineView : AppCompatImageView{
|
||||
}
|
||||
}
|
||||
|
||||
override fun setImageViewResource(name: Int) {
|
||||
setImageResource(name)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.mogo.och.common.module.wigets.map.drawline
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.manager.autopilot.line.ILineCallback
|
||||
import com.mogo.och.common.module.manager.autopilot.line.LineManager
|
||||
|
||||
class LineViewModel : ViewModel(), ILineCallback {
|
||||
|
||||
private val TAG = LineViewModel::class.java.simpleName
|
||||
|
||||
private var viewCallback: ILineViewCallback? = null
|
||||
|
||||
init {
|
||||
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
super.onCleared()
|
||||
LineManager.removeListener(TAG)
|
||||
this.viewCallback = null
|
||||
}
|
||||
|
||||
fun setDistanceCallback(viewCallback: ILineViewCallback) {
|
||||
LineManager.addListener(TAG,this)
|
||||
this.viewCallback = viewCallback
|
||||
}
|
||||
|
||||
override fun clearLineSuccess() {
|
||||
this.viewCallback?.setImageViewResource(R.drawable.common_map_line_close)
|
||||
}
|
||||
|
||||
override fun drawLineSuccess() {
|
||||
this.viewCallback?.setImageViewResource(R.drawable.common_map_line_open)
|
||||
}
|
||||
|
||||
override fun drawLineFail() {
|
||||
this.viewCallback?.setImageViewResource(R.drawable.common_map_line_close)
|
||||
}
|
||||
|
||||
interface ILineViewCallback {
|
||||
fun setImageViewResource(@DrawableRes name: Int)
|
||||
|
||||
}
|
||||
}
|
||||
@@ -792,4 +792,9 @@ public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListene
|
||||
public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFsmReceiveTimeout(boolean isTimeout) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -469,4 +469,9 @@ public class SweeperOperatePresenter extends Presenter<SweeperOperateFragment>
|
||||
@Override
|
||||
public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFsmReceiveTimeout(boolean isTimeout) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user