[fea]
[添加订单过滤条件]
This commit is contained in:
yangyakun
2024-06-26 16:03:39 +08:00
parent 6b2e3b0022
commit db00859cd8
7 changed files with 145 additions and 22 deletions

View File

@@ -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)
}
}
}
}

View File

@@ -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(){}
}

View File

@@ -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()
}
}
}
}
}

View File

@@ -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)
}
}

View File

@@ -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)
}
}

View File

@@ -792,4 +792,9 @@ public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListene
public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) {
}
@Override
public void onFsmReceiveTimeout(boolean isTimeout) {
}
}

View File

@@ -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) {
}
}