Merge branch 'kj' into dev2_aiSdk_datalink

This commit is contained in:
liujing
2021-06-07 10:55:14 +08:00
9 changed files with 65 additions and 59 deletions

View File

@@ -1,24 +1,15 @@
package com.zhidao.mogo.module.main.launcher;
import android.Manifest;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Process;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.debug.DebugConfig;
@@ -31,21 +22,20 @@ import com.mogo.och.IMogoOCH;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.service.v2x.IV2XListener;
import com.mogo.service.v2x.IV2XWarningListener;
import com.mogo.utils.logger.Logger;
import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM;
import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_LEFT;
import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_RIGHT;
import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_TOP;
import static com.mogo.utils.ProcessUtils.getPackageName;
/**
* 针对作为Launcher的情况做个性化操作
*
* @author tongchenfei
*/
public class MainLauncherActivity extends MainActivity implements IMogoIntentListener, IV2XListener {
public class MainLauncherActivity extends MainActivity implements IMogoIntentListener, IV2XWarningListener {
private static final String TAG = "MainLauncherActivity";
protected boolean mIsHomeKeyDown = false;
private static Handler handlerV2XEvent = new Handler();

View File

@@ -48,7 +48,6 @@ import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.dialog.WMDialog;
import com.mogo.module.common.glide.SkinAbleBitmapTarget;
@@ -111,7 +110,6 @@ import static com.mogo.module.share.constant.ShareConstants.KEY_SHARE_OUTER_GUID
import static com.mogo.module.share.constant.ShareConstants.ONE_DAY_TIME;
import static com.mogo.module.share.constant.ShareConstants.SEVEN_DAY_TIME;
import static com.mogo.module.share.constant.ShareConstants.VOICE_ALERT_COUNT;
/**
* @author congtaowang
* @since 2020-01-07
@@ -212,7 +210,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
private TextView tvGreen;
/**
* 内部变量标识是否在vrMode用于方法执行过滤避免重复或异常调用
*/
@@ -288,6 +285,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
mExitNavi = findViewById(R.id.module_entrance_id_exit_navi);
mCameraMode = findViewById(R.id.module_ext_id_north);
mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV, this);
// mApis.getV2XListenerManager().registerIntentListener(MogoReceiver.ACTION_V2X_REMOVE_TIP_WINDOW, 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(
@@ -382,7 +380,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
mSwitchMapModeLayout.setOnClickListener(clickListener);
mSwitchText = (TextView) findViewById(R.id.module_switch_model_text);
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO ) {
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
enterVrMode();
}
}
@@ -417,7 +415,15 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
localIsVrMode = true;
flSpeed.setVisibility(View.VISIBLE);
mSwitchMapModeLayout.setVisibility(View.VISIBLE);
// clTrafficLight.setVisibility(View.VISIBLE);
try {
//清除2D模式下道路事件弹框
// MarkerServiceHandler.getApis().getV2XListenerManager().changeTipWindowStatusForListener(MogoReceiver.ACTION_V2X_REMOVE_TIP_WINDOW);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@@ -726,8 +732,8 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
TopViewNoLinkageAnimHelper.getInstance().setIMogoMapUIController(mMApUIController);
// 进入vr模式不可缩放地图
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO ) {
UiThreadHandler.postDelayed(this::stepIntoVrMode, 3_500L );
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
UiThreadHandler.postDelayed(this::stepIntoVrMode, 3_500L);
}
mClickShareVoiceStrings =
@@ -741,8 +747,8 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
/**
* 进入鹰眼模式,设置手势缩放地图失效
*/
private void stepIntoVrMode(){
Logger.d( TAG, "进入vr模式" );
private void stepIntoVrMode() {
Logger.d(TAG, "进入vr模式");
MogoApisHandler.getInstance()
.getApis()
.getMapServiceApi()
@@ -1405,12 +1411,12 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
if (MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getCurrentMapVisualAngle().isLongSight()) {
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(AbsMogoApplication.getApp()).visibleAllMarkers();
MogoApisHandler.getInstance().getApis().getMapServiceApi()
.getMapUIController().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT,null);
.getMapUIController().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mSwitchText.setText(R.string.module_map_model_normal);
} else if (MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getCurrentMapVisualAngle().isMediumSight()) {
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(AbsMogoApplication.getApp()).inVisibleAllMarkers();
MogoApisHandler.getInstance().getApis().getMapServiceApi()
.getMapUIController().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT,null);
.getMapUIController().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null);
mSwitchText.setText(R.string.module_map_model_faster);
}
}

View File

@@ -64,7 +64,9 @@ public class MogoReceiver extends BroadcastReceiver {
public static final String ACTION_TXZ_BLOCK_SEARCH = "com.zhidao.roadcondition.roadinfo";
//车路云—场景预警
public static final String ACTION_V2X_FRONT_WARNING = "ACTION_V2X_FRONT_WARNING";
public static final String ACTION_V2X_FRONT_WARNING = "ACTION_V2X_FRONT_WARNING";
//v2x预警弹框清除
public static final String ACTION_V2X_REMOVE_TIP_WINDOW = "ACTION_V2X_REMOVE_TIP_WINDOW";
private IMogoIntentManager mMogoIntentManager;

View File

@@ -14,6 +14,7 @@ import com.mogo.module.v2x.scenario.view.IV2XButton;
import com.mogo.module.v2x.scenario.view.IV2XMarker;
import com.mogo.module.v2x.scenario.view.IV2XWindow;
import com.mogo.module.v2x.utils.V2XUtils;
import com.mogo.service.v2x.IV2XWindowManagerListener;
import com.mogo.utils.logger.Logger;
/**
@@ -23,7 +24,7 @@ import com.mogo.utils.logger.Logger;
* desc :
* version: 1.0
*/
public abstract class AbsV2XScenario<T> implements IV2XScenario {
public abstract class AbsV2XScenario<T> implements IV2XScenario, IV2XWindowManagerListener {
protected String TAG = "AbsV2XScenario";
private IV2XWindow mV2XWindow;
private IV2XButton mV2XButton;
@@ -99,4 +100,9 @@ public abstract class AbsV2XScenario<T> implements IV2XScenario {
}
return mV2XMessageEntity.equals(v2XMessageEntity);
}
@Override
public void removeAllTipWindow() {
close();
}
}

View File

@@ -1,7 +1,5 @@
package com.mogo.module.v2x.scenario.scene.warning;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.util.Log;
import android.view.View;
@@ -9,34 +7,17 @@ import android.view.ViewGroup;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoLatLng;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.common.entity.V2XPoiTypeEnum;
import com.mogo.module.common.entity.V2XPushMessageEntity;
import com.mogo.module.common.entity.V2XRoadEventEntity;
import com.mogo.module.common.entity.V2XWarningEntity;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.MogoServices;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.entity.net.V2XSpecialCarRes;
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
import com.mogo.module.v2x.utils.ADASUtils;
import com.mogo.module.v2x.utils.V2XUtils;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.impl.MogoServiceApis;
import com.mogo.service.impl.v2x.V2XManager;
import com.mogo.service.v2x.IV2XListener;
import com.mogo.service.v2x.IV2XProvider;
import com.mogo.service.windowview.IMogoTopViewStatusListener;
import java.util.List;
/**
* @author liujing
* @description 车路云—场景预警-V1.0 前车/行人/摩托车/盲区碰撞预警

View File

@@ -1,7 +1,5 @@
package com.mogo.service.v2x;
import android.content.Intent;
import com.alibaba.android.arouter.facade.template.IProvider;
/**
@@ -10,9 +8,11 @@ import com.alibaba.android.arouter.facade.template.IProvider;
* @since: 2021/3/24
*/
public interface IV2XProvider extends IProvider {
public void registerIntentListener(String intent, IV2XListener listener);
public void registerIntentListener(String intent, Object listener);
public void unregisterIntentListener(String intent, IV2XListener listener);
public void unregisterIntentListener(String intent, IV2XWarningListener listener);
public void warningChangedForListenerWithDirection(int direction, String command);
public void changeTipWindowStatusForListener(String command);
}

View File

@@ -5,6 +5,7 @@ package com.mogo.service.v2x;
* @description 描述
* @since: 2021/3/24
*/
public interface IV2XListener {
public interface IV2XWarningListener {
//车路云预警后红色蒙层根据方位进行展示
void warningChangedWithDirection(int direction);
}

View File

@@ -0,0 +1,11 @@
package com.mogo.service.v2x;
/**
* @author liujing
* @description 描述
* @since: 2021/6/4
*/
public interface IV2XWindowManagerListener {
//移除v2x的所有道路事件及预警弹框
void removeAllTipWindow();
}

View File

@@ -1,17 +1,14 @@
package com.mogo.service.impl.v2x;
import android.content.Context;
import android.content.Intent;
import android.nfc.Tag;
import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.v2x.IV2XListener;
import com.mogo.service.v2x.IV2XWarningListener;
import com.mogo.service.v2x.IV2XProvider;
import com.mogo.service.v2x.IV2XWindowManagerListener;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -24,10 +21,10 @@ import java.util.concurrent.CopyOnWriteArrayList;
*/
@Route(path = MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING)
public class V2XManager implements IV2XProvider {
private final Map<String, CopyOnWriteArrayList<IV2XListener>> mListeners = new ConcurrentHashMap<>();
private final Map<String, CopyOnWriteArrayList> mListeners = new ConcurrentHashMap<>();
@Override
public void registerIntentListener(String intent, IV2XListener listener) {
public void registerIntentListener(String intent, Object listener) {
if (listener == null || intent == null) {
Log.d("V2XManager", "listener == null || intent == null");
return;
@@ -40,7 +37,7 @@ public class V2XManager implements IV2XProvider {
}
@Override
public void unregisterIntentListener(String intent, IV2XListener listener) {
public void unregisterIntentListener(String intent, IV2XWarningListener listener) {
if (mListeners.containsKey(intent)) {
mListeners.get(intent).remove(listener);
}
@@ -48,9 +45,9 @@ public class V2XManager implements IV2XProvider {
@Override
public void warningChangedForListenerWithDirection(int direction, String command) {
List<IV2XListener> listeners = mListeners.get(command);
List<IV2XWarningListener> listeners = mListeners.get(command);
if (listeners != null && !listeners.isEmpty()) {
for (IV2XListener listener : listeners) {
for (IV2XWarningListener listener : listeners) {
if (listener != null) {
listener.warningChangedWithDirection(direction);
}
@@ -58,6 +55,18 @@ public class V2XManager implements IV2XProvider {
}
}
@Override
public void changeTipWindowStatusForListener(String command) {
List<IV2XWindowManagerListener> listeners = mListeners.get(command);
if (listeners != null && !listeners.isEmpty()) {
for (IV2XWindowManagerListener listener : listeners) {
if (listener != null) {
listener.removeAllTipWindow();
}
}
}
}
@Override
public void init(Context context) {