[清扫车]消息盒子隐藏显示逻辑添加
This commit is contained in:
@@ -18,6 +18,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListener
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
|
||||
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxBubbleView;
|
||||
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView;
|
||||
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView;
|
||||
import com.mogo.eagle.core.function.view.MapBizView;
|
||||
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
@@ -31,9 +34,12 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
|
||||
import com.mogo.och.sweeper.R;
|
||||
import com.mogo.och.sweeper.database.bean.WeltDataBean;
|
||||
import com.mogo.och.sweeper.callback.IWeltMapSwitchToSmallCallback;
|
||||
import com.mogo.och.sweeper.event.WeltDataEvent;
|
||||
import com.mogo.och.sweeper.view.SweeperTrafficDataView;
|
||||
import com.mogo.och.sweeper.view.WeltSmallMapView;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -77,12 +83,12 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
private ImageView mRefreshNavi;
|
||||
//作业任务贴边数据展示图
|
||||
private WeltSmallMapView mMapWeltView;
|
||||
//切换到任务作业全览图
|
||||
private ImageView mMapSwitchToBig;
|
||||
//任务作业全览图
|
||||
private WeltMapOverViewFragment mWeltMapOverViewFragment;
|
||||
private FrameLayout mFlWeltMapOverView;
|
||||
private ImageView mMessageBox;
|
||||
private DriverMsgBoxButtonView mViewDriverMsgBoxButton;
|
||||
private DriverMsgBoxListView mViewDriverMsgBoxList;
|
||||
private DriverMsgBoxBubbleView mViewDriverMsgBoxBubble;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -107,10 +113,10 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
mCloseNavIcon = findViewById(R.id.sweeper_close_navi_icon);
|
||||
mRefreshNavi = findViewById(R.id.sweeper_refresh_navi);
|
||||
mMapWeltView = findViewById(R.id.sweeper_task_welt_small_map);
|
||||
mMapSwitchToBig = findViewById(R.id.sweeper_switch_to_big);
|
||||
mFlWeltMapOverView = findViewById(R.id.sweeper_welt_map_overview);
|
||||
mMessageBox = findViewById(R.id.sweeper_message_box_iv);
|
||||
initListener();
|
||||
//设置消息盒子
|
||||
setMessageBox();
|
||||
//设置左下角四个按钮监听事件
|
||||
setBottomBtnListener();
|
||||
// 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接
|
||||
@@ -149,7 +155,29 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
mapBizView.onCreate(savedInstanceState);
|
||||
mMapWeltView.onCreateView(savedInstanceState);
|
||||
//mock 贴边数据
|
||||
//setWeltData();
|
||||
setWeltData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息盒子
|
||||
*/
|
||||
private void setMessageBox() {
|
||||
mViewDriverMsgBoxButton = findViewById(R.id.viewDriverMsgBoxButton);
|
||||
mViewDriverMsgBoxList = findViewById(R.id.viewDriverMsgBoxList);
|
||||
mViewDriverMsgBoxBubble = findViewById(R.id.viewDriverMsgBoxBubble);
|
||||
//消息盒子
|
||||
mViewDriverMsgBoxButton.setClickListener(show -> {
|
||||
if (show) {
|
||||
mViewDriverMsgBoxList.setVisibility(View.VISIBLE);
|
||||
mViewDriverMsgBoxList.notifyData();
|
||||
mViewDriverMsgBoxBubble.setVisibility(View.GONE);
|
||||
mViewDriverMsgBoxBubble.isShowData(false);
|
||||
} else {
|
||||
mViewDriverMsgBoxList.setVisibility(View.GONE);
|
||||
mViewDriverMsgBoxBubble.setVisibility(View.VISIBLE);
|
||||
mViewDriverMsgBoxBubble.isShowData(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -188,8 +216,10 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
MogoMapListenerHandler.Companion.getMogoMapListenerHandler().registerHostMapListener(TAG, this);
|
||||
mCloseNavIcon.setOnClickListener(this);
|
||||
mRefreshNavi.setOnClickListener(this);
|
||||
mMapSwitchToBig.setOnClickListener(this);
|
||||
mMessageBox.setOnClickListener(this);
|
||||
mMapWeltView.getSwitchToBig().setOnClickListener((v) -> {
|
||||
showOrHideOverMapViewFragment(true);
|
||||
setWeltData();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -336,11 +366,6 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
showAmapNaviToStationFragment(false);
|
||||
} else if (id == R.id.sweeper_refresh_navi) {
|
||||
refreshNavi();
|
||||
} else if (id == R.id.sweeper_switch_to_big) {
|
||||
showOrHideOverMapViewFragment(true);
|
||||
//setWeltData();
|
||||
}else if(id==R.id.sweeper_message_box_iv){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,24 +423,20 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
mMapWeltView.drawablePolyline();
|
||||
});
|
||||
}
|
||||
if (mWeltMapOverViewFragment != null && mWeltMapOverViewFragment.isVisible()) {
|
||||
mWeltMapOverViewFragment.setWeltData(weltDataBeans);
|
||||
runOnUIThread(() -> {
|
||||
mWeltMapOverViewFragment.drawablePolyline();
|
||||
});
|
||||
}
|
||||
EventBus.getDefault().post(new WeltDataEvent(2, weltDataBeans, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加起点和终点
|
||||
* 作业任务全览图的添加起点和终点
|
||||
*/
|
||||
public void addStartAndEndMarker(LatLng startPoint, LatLng endPoint) {
|
||||
if (mMapWeltView != null) {
|
||||
mMapWeltView.addStartAndEndMarker(startPoint, endPoint);
|
||||
}
|
||||
if (mWeltMapOverViewFragment != null && mWeltMapOverViewFragment.isVisible()) {
|
||||
mWeltMapOverViewFragment.addStartAndEndMarker(startPoint, endPoint);
|
||||
}
|
||||
List<LatLng> latLngs = new ArrayList<>(2);
|
||||
latLngs.add(0, startPoint);
|
||||
latLngs.add(1, endPoint);
|
||||
EventBus.getDefault().post(new WeltDataEvent(1, null, latLngs));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -425,9 +446,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
if (mMapWeltView != null) {
|
||||
mMapWeltView.clearAllMarkerAndPolyline();
|
||||
}
|
||||
if (mWeltMapOverViewFragment != null) {
|
||||
mWeltMapOverViewFragment.clearAllMarkerAndPolyline();
|
||||
}
|
||||
EventBus.getDefault().post(new WeltDataEvent(3, null, null));
|
||||
}
|
||||
|
||||
private void runOnUIThread(Runnable executor) {
|
||||
@@ -454,13 +473,14 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
weltDataBean.add(getWeltDataBean(116.40748849300006, 39.96752223478818, -10000.0));
|
||||
weltDataBean.add(getWeltDataBean(116.42670283855335, 39.97526250389533, 1000.0));
|
||||
setWeltDataToMap(weltDataBean);
|
||||
addStartAndEndMarker(CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(AbsMogoApplication.getApp(),116.38851540542558,39.97419244219622),
|
||||
CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(AbsMogoApplication.getApp(),116.42670283855335,39.97526250389533));
|
||||
addStartAndEndMarker(CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(AbsMogoApplication.getApp(), 116.38851540542558,
|
||||
39.97419244219622),
|
||||
CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(AbsMogoApplication.getApp(), 116.42670283855335, 39.97526250389533));
|
||||
}
|
||||
|
||||
private WeltDataBean getWeltDataBean(Double locLon, Double locLat, Double weltDistance) {
|
||||
//把wgs坐标系坐标转换成gcj坐标
|
||||
LatLng latLng= CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(AbsMogoApplication.getApp(),locLon,locLat);
|
||||
LatLng latLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(AbsMogoApplication.getApp(), locLon, locLat);
|
||||
WeltDataBean weltDataBean = new WeltDataBean();
|
||||
weltDataBean.setLocLon(latLng.longitude);
|
||||
weltDataBean.setLocLat(latLng.latitude);
|
||||
|
||||
@@ -183,15 +183,34 @@
|
||||
android:src="@drawable/ai_collect_selector" />
|
||||
</FrameLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/sweeper_message_box_iv"
|
||||
android:layout_width="@dimen/dp_169"
|
||||
android:layout_height="@dimen/dp_169"
|
||||
android:layout_marginEnd="@dimen/module_mogo_och_margin_right"
|
||||
android:layout_marginBottom="@dimen/module_mogo_och_margin_bottom"
|
||||
<!--消息盒子选择入口-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView
|
||||
android:id="@+id/viewDriverMsgBoxButton"
|
||||
android:layout_width="150dp"
|
||||
android:layout_height="150dp"
|
||||
android:layout_marginEnd="@dimen/dp_30"
|
||||
android:layout_marginBottom="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<!--消息盒子打开视图-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView
|
||||
android:id="@+id/viewDriverMsgBoxList"
|
||||
android:layout_width="864dp"
|
||||
android:layout_height="746dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@id/viewDriverMsgBoxButton"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
<!--消息盒子气泡视图-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxBubbleView
|
||||
android:id="@+id/viewDriverMsgBoxBubble"
|
||||
android:layout_width="864dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:src="@drawable/sweeper_message_box"/>
|
||||
app:layout_constraintTop_toBottomOf="@id/viewDriverMsgBoxButton" />
|
||||
<!--清扫手动驾驶路线导航-->
|
||||
<FrameLayout
|
||||
android:id="@+id/module_mogo_och_navi_panel_container"
|
||||
|
||||
Reference in New Issue
Block a user