Merge remote-tracking branch 'origin/dev_merge_shunyi_vr_map' into dev_merge_shunyi_vr_map

This commit is contained in:
董宏宇
2020-12-18 17:53:57 +08:00
3 changed files with 190 additions and 229 deletions

View File

@@ -1116,4 +1116,8 @@
<dimen name="module_services_panel_strategy_button_marginTop">60px</dimen>
<dimen name="module_services_panel_item_corner">22.5px</dimen>
<dimen name="module_map_amap_my_location_bg_size">360px</dimen>
<dimen name="module_map_amap_my_location_icon_width">63px</dimen>
<dimen name="module_map_amap_my_location_icon_height">96px</dimen>
</resources>

View File

@@ -1107,4 +1107,8 @@
<dimen name="module_services_empty_tip_marginTop">17px</dimen>
<dimen name="module_services_panel_strategy_button_marginTop">60px</dimen>
<dimen name="module_services_panel_item_corner">12.5px</dimen>
<dimen name="module_map_amap_my_location_icon_width">36px</dimen>
<dimen name="module_map_amap_my_location_icon_height">53px</dimen>
<dimen name="module_map_amap_my_location_bg_size">194px</dimen>
</resources>

View File

@@ -12,8 +12,8 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.TextView;
@@ -186,11 +186,10 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
private boolean toggle = false;
private View mOnlineCarEntrance;
private TextView tvEnterVrMode;
private TextView tvExitVrMode;
private Runnable mLockCarRunnable = new Runnable() {
private final Runnable mLockCarRunnable = new Runnable() {
@Override
public void run() {
if (!mStatusManager.isDisplayOverview()) {
@@ -210,10 +209,8 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
private TextView seekHelpNum;
private View debugPanel;
private AdasNoticeHelper adasNoticeHelper = new AdasNoticeHelper();
private CameraLiveNoticeHelper mCameraLiveNoticeHelper = new CameraLiveNoticeHelper();
private final AdasNoticeHelper adasNoticeHelper = new AdasNoticeHelper();
private final CameraLiveNoticeHelper mCameraLiveNoticeHelper = new CameraLiveNoticeHelper();
@Override
protected int getLayoutId() {
@@ -239,91 +236,18 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
seekHelpGroup = findViewById(R.id.module_ext_id_seek_help_notice_group);
seekHelpNum = findViewById(R.id.module_ext_id_seek_help_notice_number);
debugPanel = findViewById(R.id.debugPanel);
NoMapTopViewShaderHelper.getInstance().initShaderView(findViewById(R.id.module_ext_id_top_container_shader));
mUploadRoadCondition = findViewById(R.id.module_entrance_id_upload_road_condition);
mUpload = findViewById(R.id.module_entrance_id_upload);
mUploading = findViewById(R.id.module_entrance_id_uploading);
mUploadRoadCondition.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
showShareDialog();
playShareGuideVoice();
}
});
mUploadRoadCondition.setOnClickListener(clickListener);
mDisplayOverview = findViewById(R.id.module_ext_id_display_overview);
mDisplayOverviewText = findViewById(R.id.module_ext_id_display_overview_text);
mDisplayOverviewIcon = findViewById(R.id.module_ext_id_display_overview_icon);
mDisplayOverview.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
if (getContext() != null) {
// 加此判断是解决下面setDisplayOverview后本Fragment回调中出现not attached to a context问题
if (!mStatusManager.isDisplayOverview()) {
mMApUIController.displayOverview(mDisplayOverviewBounds);
UiThreadHandler.removeCallbacks(mLockCarRunnable);
UiThreadHandler.postDelayed(mLockCarRunnable, 20_000);
} else {
mMApUIController.recoverLockMode();
UiThreadHandler.removeCallbacks(mLockCarRunnable);
}
mStatusManager.setDisplayOverview(TAG, !mStatusManager.isDisplayOverview());
}
}
});
mMove2CurrentLocation = findViewById(R.id.module_entrance_id_move2_current_location);
mMove2CurrentLocation.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
if (mStatusManager.isDisplayOverview()) {
mStatusManager.setDisplayOverview(TAG, false);
UiThreadHandler.removeCallbacks(mLockCarRunnable);
}
// if ( mIsLock ) {
// if ( mMApUIController.getCurrentUiMode() == EnumMapUI.CarUp_2D ) {
// mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D );
// } else if( mMApUIController.getCurrentUiMode() == EnumMapUI.NorthUP_2D ){
// mMApUIController.changeMapMode( EnumMapUI.CarUp_2D );
// }
// } else {
//
// }
if ( !mApis.getStatusManagerApi().isVrMode() ) {
if (!mApis.getRefreshStrategyControllerApi().restartAutoRefreshAtTime(0)) {
mStatusManager.setUserInteractionStatus(TAG, true, false);
mMApUIController.recoverLockMode();
}
} else {
mMApUIController.recoverLockMode();
}
}
} );
mUserHeadImg = findViewById(R.id.ivUserHeadImg);
if (DebugConfig.isDebug()) {
mMove2CurrentLocation.setOnLongClickListener(view -> {
mApis.getSearchManagerApi().goSettings();
return true;
});
mUploadRoadCondition.setOnLongClickListener(view -> {
mApis.getMogoMonitorApi().getMogoMonitorLog().showLogDebugDialog();
return true;
});
mUserHeadImg.setOnLongClickListener(view ->{
if (groupFix.getVisibility() == View.VISIBLE) {
groupFix.setVisibility(View.GONE);
}else{
groupFix.setVisibility(View.VISIBLE);
}
return true;
});
}
groupFix = findViewById(R.id.groupFix);
ConstraintLayout rootView = findViewById(R.id.module_entrance_id_top_motion_layout);
@@ -333,48 +257,10 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
}
mExitNavi = findViewById(R.id.module_entrance_id_exit_navi);
mExitNavi.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
if (mMogoNavi != null) {
if (mIsLock) {
new WMDialog.Builder(getContext())
.setOkButton(R.string.module_commons_button_ok, (dlg, which) -> {
dlg.dismiss();
mMogoNavi.stopNavi();
})
.setCancelButton(R.string.module_commons_button_cancel,
(dlg, which) -> {
dlg.dismiss();
})
.setContent(R.string.module_commons_exit_navi_content)
.build()
.show();
} else {
MapCenterPointStrategy.setMapCenterPointByScene(mMApUIController, Scene.NAVI);
mMApUIController.recoverLockMode();
}
}
}
});
mCameraMode = findViewById(R.id.module_ext_id_north);
mCameraMode.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
if (mCameraMode.isSelected()) {
mMApUIController.changeMapMode(EnumMapUI.CarUp_2D);
} else {
mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
}
}
});
mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV, this);
MogoEntranceButtons.save(ButtonIndex.BUTTON1, findViewById(R.id.module_entrance_id_button1));
MogoEntranceButtons.save(ButtonIndex.BUTTON2, findViewById(R.id.module_entrance_id_button2));
mDisplayOverviewBounds = new Rect(
ResourcesHelper.getDimensionPixelSize(getContext(),
R.dimen.module_map_display_overview_left_margin),
@@ -389,63 +275,49 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
animNavInfoView = findViewById(R.id.module_ext_id_anim_nav_info);
vrModeNavInfoView = findViewById(R.id.module_ext_id_vr_nav_info);
mNaviInfo = animNavInfoView;
adasNoticeHelper.initView(vrModeNavInfoView);
mWeatherContainer = findViewById(R.id.module_ext_id_weather_container);
mWeatherIcon = findViewById(R.id.module_ext_id_weather_icon);
mWeatherTemp = findViewById(R.id.module_ext_id_weather_temp);
groupUserHead = findViewById(R.id.groupUserHead);
mMsgContainer = findViewById(R.id.module_ext_id_msg);
mMsgContainer.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
try {
if (mMessageHistoryPanelProvider == null) {
mMessageHistoryPanelProvider = (IFragmentProvider) ARouter.getInstance().build("/push/ui/message").navigation(getContext());
}
mMessageHistoryPanelProvider.createFragment(getActivity(), mMogoFragmentManager.getMessageHistoryContainerId(), null);
} catch (Exception e) {
}
}
});
mMsgCounter = findViewById(R.id.module_ext_id_msg_counter);
mUserHeadImg.setOnClickListener(new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
try {
LaunchUtils.launchByPkg(getContext(), "com.zhidao.auto.personal");
// 埋点
final Map<String, Object> properties = new HashMap<>();
properties.put("type", 3);
ServiceApisManager.serviceApis.getAnalyticsApi().track("Launcher_APP_Icon",
properties);
} catch (Exception e) {
Logger.e(TAG, e, "打开个人中心Exception");
}
}
});
mUploadButtonAnimatorController = new UploadButtonAnimatorController(mUploading, mUpload,
mStatusManager);
tvEnterVrMode = findViewById(R.id.module_ext_enter_vr_mode);
tvExitVrMode = findViewById(R.id.module_ext_exit_vr_mode);
tvEnterVrMode.setOnClickListener(clickListener);
tvExitVrMode.setOnClickListener(clickListener);
mMsgContainer.setOnClickListener(clickListener);
mUserHeadImg.setOnClickListener(clickListener);
mMove2CurrentLocation.setOnClickListener(clickListener);
mDisplayOverview.setOnClickListener(clickListener);
mExitNavi.setOnClickListener(clickListener);
mCameraMode.setOnClickListener(clickListener);
groupUserHead.setVisibility(DebugConfig.isLauncher() ? View.VISIBLE : View.GONE);
mUploadButtonAnimatorController = new UploadButtonAnimatorController(mUploading, mUpload,
mStatusManager);
if (DebugConfig.isDebug()) {
mMove2CurrentLocation.setOnLongClickListener(view -> {
mApis.getSearchManagerApi().goSettings();
return true;
});
tvEnterVrMode = findViewById(R.id.module_ext_enter_vr_mode);
tvEnterVrMode.setOnClickListener((v)->{
// 进入vr模式
mMApUIController.changeMapMode( EnumMapUI.Type_VR );
});
mUploadRoadCondition.setOnLongClickListener(view -> {
mApis.getMogoMonitorApi().getMogoMonitorLog().showLogDebugDialog();
return true;
});
tvExitVrMode = findViewById(R.id.module_ext_exit_vr_mode);
tvExitVrMode.setOnClickListener((v)->{
// 退出vr模式
mMApUIController.changeMapMode( EnumMapUI.CarUp_2D );
});
mUserHeadImg.setOnLongClickListener(view -> {
if (groupFix.getVisibility() == View.VISIBLE) {
groupFix.setVisibility(View.GONE);
} else {
groupFix.setVisibility(View.VISIBLE);
}
return true;
});
}
dealWeatherContainer();
@@ -459,40 +331,9 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
enterVrMode();
}
etTimes = findViewById(R.id.etTimes);
findViewById(R.id.btnFix).setOnClickListener((view)->{
try {
String times = etTimes.getText().toString().trim();
int fixTime = Integer.parseInt(times);
Logger.d(TAG, "修改上报时间间隔: " + times + " fixTime: " + fixTime);
if(fixTime > 0) {
Intent intent = new Intent("com.mogo.launcher.action.FIX_UPLOAT_DELAY");
intent.putExtra("fixTime", fixTime);
getContext().sendBroadcast(intent);
TipToast.tip("已经发送修改广播");
}else{
TipToast.tip("fixTime为0不发送广播");
}
} catch (Exception e) {
TipToast.tip("fixTime异常");
e.printStackTrace();
}
});
findViewById(R.id.btnFix).setOnClickListener(clickListener);
debugPanel.setOnClickListener(view -> {
if (SystemClock.elapsedRealtime() - lastDebugPanelClickTime > 1000) {
debugPanelClickCount = 1;
}else{
debugPanelClickCount++;
}
lastDebugPanelClickTime = SystemClock.elapsedRealtime();
if (debugPanelClickCount == 10) {
// show panel
debugPanelGroup.setVisibility(View.VISIBLE);
}
});
findViewById(R.id.debugPanel).setOnClickListener(clickListener);
initDebugPanel();
@@ -504,7 +345,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
private EditText etTimes;
private Group groupFix;
private void enterVrMode(){
private void enterVrMode() {
// tvEnterVrMode.setVisibility(View.GONE);
mMove2CurrentLocation.setVisibility(View.GONE);
mUploadRoadCondition.setVisibility(View.GONE);
@@ -519,10 +360,10 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
adasNoticeHelper.enterVrMode();
mCameraLiveNoticeHelper.enterVrMode();
MogoApisHandler.getInstance().getApis().getRegisterCenterApi().registerMogoLocationListener(TAG,this);
MogoApisHandler.getInstance().getApis().getRegisterCenterApi().registerMogoLocationListener(TAG, this);
}
private void exitVrMode(){
private void exitVrMode() {
EntranceViewHolder.getInstance().forceHideNoticeView();
// tvEnterVrMode.setVisibility(View.VISIBLE);
mMove2CurrentLocation.setVisibility(View.VISIBLE);
@@ -541,7 +382,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
MogoApisHandler.getInstance().getApis().getRegisterCenterApi().unregisterMogoLocationListener(TAG);
}
private void debugCrashWarn(){
private void debugCrashWarn() {
thresholdSetContainer = findViewById(R.id.thresholdSetContainer);
topEditC = findViewById(R.id.etTopC);
frontLeftEditC = findViewById(R.id.etFrontLeftC);
@@ -633,8 +474,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
return isGreaterThanOneDay;
}
Random random = new Random();
/**
* 外部触发引导
*/
@@ -884,9 +723,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
mMApUIController.changeMapMode(mCameraMode.isSelected() ? EnumMapUI.NorthUP_2D :
EnumMapUI.CarUp_2D);
MapCenterPointStrategy.setMapCenterPointBySceneAndDelay(mMApUIController, Scene.NAVI, 500
, () -> {
return !mMogoNavi.isNaviing();
});
, () -> !mMogoNavi.isNaviing());
if (CustomNaviInterrupter.getInstance().interrupt()) {
mDisplayOverview.setVisibility(View.GONE);
mCameraMode.setVisibility(View.GONE);
@@ -897,12 +734,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
mCameraMode.setVisibility(View.VISIBLE);
}
mApis.getAnalyticsApi().track("Navigation_begin", new HashMap<>());
// 目的地车友的显示隐藏控制准备迁移到TopViewAnimHelper中
// if ( DebugConfig.isSupportedSearchDestinationOnlineCarList() ) {
// mOnlineCarEntrance.setVisibility( View.VISIBLE );
// } else {
// mOnlineCarEntrance.setVisibility( View.GONE );
// }
}
@Override
@@ -915,15 +746,11 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
mDisplayOverview.setVisibility(View.GONE);
mCameraMode.setVisibility(View.GONE);
// mOnlineCarEntrance.setVisibility( View.GONE );
MapCenterPointStrategy.setMapCenterPointByScene(mMApUIController, Scene.AIMLESS);
}
@Override
public void onUpdateTraffic2(MogoTraffic traffic) {
if (traffic == null) {
return;
}
}
@Override
@@ -996,7 +823,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
} else if (descriptor == StatusDescriptor.VR_MODE) {
if (isTrue) {
enterVrMode();
}else{
} else {
exitVrMode();
}
}
@@ -1007,7 +834,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
if (!DebugConfig.isMapBased()) {
return;
}
if(mApis.getStatusManagerApi().isVrMode()){
if (mApis.getStatusManagerApi().isVrMode()) {
return;
}
boolean hidden = false;
@@ -1249,22 +1076,20 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
private Group debugPanelGroup;
private ImageButton ibDebugPanelClose;
private Button btnOpenLog,btnCloseLog,btnOpenV2XPanel;
private RadioButton rbCidi,rbHuali, rbGohigh;
private void initDebugPanel() {
debugPanelGroup = findViewById(R.id.groupDebugPanel);
ibDebugPanelClose = findViewById(R.id.ibDebugPanelClose);
btnOpenLog = findViewById(R.id.btnOpenLog);
btnCloseLog = findViewById(R.id.btnCloseLog);
btnOpenV2XPanel = findViewById(R.id.btnOpenV2xPanel);
rbCidi = findViewById(R.id.rbCidiObu);
rbHuali = findViewById(R.id.rbHualiObu);
rbGohigh = findViewById(R.id.rbGoHighObu);
ImageButton ibDebugPanelClose = findViewById(R.id.ibDebugPanelClose);
Button btnOpenLog = findViewById(R.id.btnOpenLog);
Button btnCloseLog = findViewById(R.id.btnCloseLog);
Button btnOpenV2XPanel = findViewById(R.id.btnOpenV2xPanel);
RadioButton rbCidi = findViewById(R.id.rbCidiObu);
RadioButton rbHuali = findViewById(R.id.rbHualiObu);
RadioButton rbGohigh = findViewById(R.id.rbGoHighObu);
ibDebugPanelClose.setOnClickListener(v -> debugPanelGroup.setVisibility(View.GONE));
btnOpenLog.setOnClickListener(v->{
btnOpenLog.setOnClickListener(v -> {
Intent intent = new Intent("com.mogo.ACTION");
intent.putExtra("oper", 1);
getContext().sendBroadcast(intent);
@@ -1310,4 +1135,132 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
intent.putExtra("obuType", obuType);
getContext().sendBroadcast(intent);
}
private final OnPreventFastClickListener clickListener = new OnPreventFastClickListener() {
@Override
public void onClickImpl(View v) {
if (v.getId() == R.id.module_entrance_id_upload_road_condition) {
// 分享按钮点击
showShareDialog();
playShareGuideVoice();
} else if (v.getId() == R.id.module_ext_id_display_overview) {
// 全览按钮点击
if (getContext() != null) {
// 加此判断是解决下面setDisplayOverview后本Fragment回调中出现not attached to a context问题
if (!mStatusManager.isDisplayOverview()) {
mMApUIController.displayOverview(mDisplayOverviewBounds);
UiThreadHandler.removeCallbacks(mLockCarRunnable);
UiThreadHandler.postDelayed(mLockCarRunnable, 20_000);
} else {
mMApUIController.recoverLockMode();
UiThreadHandler.removeCallbacks(mLockCarRunnable);
}
mStatusManager.setDisplayOverview(TAG, !mStatusManager.isDisplayOverview());
}
} else if (v.getId() == R.id.module_entrance_id_move2_current_location) {
// 回到自车位置
if (mStatusManager.isDisplayOverview()) {
mStatusManager.setDisplayOverview(TAG, false);
UiThreadHandler.removeCallbacks(mLockCarRunnable);
}
if (!mApis.getStatusManagerApi().isVrMode()) {
if (!mApis.getRefreshStrategyControllerApi().restartAutoRefreshAtTime(0)) {
mStatusManager.setUserInteractionStatus(TAG, true, false);
mMApUIController.recoverLockMode();
}
} else {
mMApUIController.recoverLockMode();
}
} else if (v.getId() == R.id.module_entrance_id_exit_navi) {
// 退出导航
if (mMogoNavi != null) {
if (mIsLock) {
new WMDialog.Builder(getContext())
.setOkButton(R.string.module_commons_button_ok, (dlg, which) -> {
dlg.dismiss();
mMogoNavi.stopNavi();
})
.setCancelButton(R.string.module_commons_button_cancel,
(dlg, which) -> {
dlg.dismiss();
})
.setContent(R.string.module_commons_exit_navi_content)
.build()
.show();
} else {
MapCenterPointStrategy.setMapCenterPointByScene(mMApUIController, Scene.NAVI);
mMApUIController.recoverLockMode();
}
}
} else if (v.getId() == R.id.module_ext_id_north) {
// 车头朝上 正北朝上
if (mCameraMode.isSelected()) {
mMApUIController.changeMapMode(EnumMapUI.CarUp_2D);
} else {
mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
}
} else if (v.getId() == R.id.module_ext_id_msg) {
// 消息框
try {
if (mMessageHistoryPanelProvider == null) {
mMessageHistoryPanelProvider = (IFragmentProvider) ARouter.getInstance().build("/push/ui/message").navigation(getContext());
}
mMessageHistoryPanelProvider.createFragment(getActivity(), mMogoFragmentManager.getMessageHistoryContainerId(), null);
} catch (Exception e) {
e.printStackTrace();
}
} else if (v.getId() == R.id.ivUserHeadImg) {
// 个人中心
try {
LaunchUtils.launchByPkg(getContext(), "com.zhidao.auto.personal");
// 埋点
final Map<String, Object> properties = new HashMap<>();
properties.put("type", 3);
ServiceApisManager.serviceApis.getAnalyticsApi().track("Launcher_APP_Icon",
properties);
} catch (Exception e) {
Logger.e(TAG, e, "打开个人中心Exception");
}
} else if (v.getId() == R.id.module_ext_enter_vr_mode) {
// 进入vr模式
mMApUIController.changeMapMode(EnumMapUI.Type_VR);
} else if (v.getId() == R.id.module_ext_exit_vr_mode) {
// 退出vr模式
mMApUIController.changeMapMode(EnumMapUI.CarUp_2D);
} else if (v.getId() == R.id.btnFix) {
// 修改上报时间间隔
try {
String times = etTimes.getText().toString().trim();
int fixTime = Integer.parseInt(times);
Logger.d(TAG, "修改上报时间间隔: " + times + " fixTime: " + fixTime);
if (fixTime > 0) {
Intent intent = new Intent("com.mogo.launcher.action.FIX_UPLOAT_DELAY");
intent.putExtra("fixTime", fixTime);
getContext().sendBroadcast(intent);
TipToast.tip("已经发送修改广播");
} else {
TipToast.tip("fixTime为0不发送广播");
}
} catch (Exception e) {
TipToast.tip("fixTime异常");
e.printStackTrace();
}
} else if (v.getId() == R.id.debugPanel) {
// 简易调试面板
if (SystemClock.elapsedRealtime() - lastDebugPanelClickTime > 1000) {
debugPanelClickCount = 1;
} else {
debugPanelClickCount++;
}
lastDebugPanelClickTime = SystemClock.elapsedRealtime();
if (debugPanelClickCount == 10) {
// show panel
debugPanelGroup.setVisibility(View.VISIBLE);
}
}
}
};
}