Merge branch 'dev_robotaxi-d-app-module_265_220329_2.6.5' of gitlab.zhidaoauto.com:zhjt/AndroidApp/MoGoEagleEye into dev_robotaxi-d-app-module_265_220329_2.6.5
This commit is contained in:
@@ -11,6 +11,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.map.MogoMapUIController;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.och.bus.passenger.constant.BusPassengerConst;
|
||||
import com.mogo.och.bus.passenger.ui.BusPassengerBaseFragment;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
|
||||
@@ -30,6 +31,7 @@ public class MogoOCHBusPassenger implements IMogoOCH, IMogoStatusChangedListener
|
||||
|
||||
private FragmentActivity mActivity;
|
||||
private int mContainerId;
|
||||
private BusPassengerBaseFragment mBusPassengerFragment;
|
||||
|
||||
@Override
|
||||
public void createCoverage(FragmentActivity activity, int containerId) {
|
||||
@@ -63,17 +65,15 @@ public class MogoOCHBusPassenger implements IMogoOCH, IMogoStatusChangedListener
|
||||
public void init(Context context) {
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("OchBus"
|
||||
, StatusDescriptor.VR_MODE, this);
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("OchBus"
|
||||
, StatusDescriptor.TOP_VIEW, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
|
||||
if (descriptor == StatusDescriptor.VR_MODE){
|
||||
if (descriptor == StatusDescriptor.VR_MODE) {
|
||||
if (isTrue){
|
||||
|
||||
showFragment();
|
||||
}else {
|
||||
|
||||
hideFragment();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -86,4 +86,21 @@ public class MogoOCHBusPassenger implements IMogoOCH, IMogoStatusChangedListener
|
||||
MogoMapUIController.getInstance()
|
||||
.openVrMode( false );
|
||||
}
|
||||
|
||||
private void showFragment() {
|
||||
if (mBusPassengerFragment == null) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "准备add fragment======");
|
||||
mBusPassengerFragment = new BusPassengerBaseFragment();
|
||||
mActivity.getSupportFragmentManager().beginTransaction().add(mContainerId, mBusPassengerFragment).commitAllowingStateLoss();
|
||||
return;
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "准备show fragment");
|
||||
mActivity.getSupportFragmentManager().beginTransaction().show(mBusPassengerFragment).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
private void hideFragment(){
|
||||
if (mBusPassengerFragment != null){
|
||||
mActivity.getSupportFragmentManager().beginTransaction().hide(mBusPassengerFragment).commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.mogo.och.bus.passenger.callback;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*
|
||||
* Model->Presenter回调:ADAS相关(自动驾驶状态回调,到达终点等等)
|
||||
*/
|
||||
public interface IBusPassengerADASStatusCallback {
|
||||
// 自动驾驶触发的已到达目的地:暂未用到
|
||||
void onAutopilotArriveEnd();
|
||||
|
||||
// 自动驾驶可用状态
|
||||
void onAutopilotEnable();
|
||||
|
||||
// 自动驾驶不可用状态
|
||||
void onAutopilotDisable();
|
||||
|
||||
// 自动驾驶运行中
|
||||
void onAutopilotRunning();
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.mogo.och.bus.passenger.callback;
|
||||
|
||||
import com.amap.api.maps.model.LatLng;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*/
|
||||
public interface IBusPassengerAutopilotPlanningCallback {
|
||||
void routeResult(List<MessagePad.Location> models);
|
||||
void routeResultByServer(List<LatLng> models);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.mogo.och.bus.passenger.callback;
|
||||
|
||||
import android.location.Location;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*
|
||||
* Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等)
|
||||
*/
|
||||
public interface IBusPassengerControllerStatusCallback {
|
||||
// 是否vr map模式
|
||||
void onVRModeChanged(boolean isVRMode);
|
||||
// 自车定位
|
||||
void onCarLocationChanged(Location location);
|
||||
}
|
||||
@@ -0,0 +1,260 @@
|
||||
package com.mogo.och.bus.passenger.model;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.location.Location;
|
||||
import android.net.ConnectivityManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback;
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerAutopilotPlanningCallback;
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo_msg.MogoReportMsg;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*/
|
||||
public class BusPassengerModel {
|
||||
private static final String TAG = BusPassengerModel.class.getSimpleName();
|
||||
|
||||
private static final class SingletonHolder {
|
||||
private static final BusPassengerModel INSTANCE = new BusPassengerModel();
|
||||
}
|
||||
|
||||
public static BusPassengerModel getInstance() {
|
||||
return SingletonHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private Context mContext;
|
||||
private IBusPassengerADASStatusCallback mADASStatusCallback; //Model->Presenter:自动驾驶状态相关
|
||||
private IBusPassengerAutopilotPlanningCallback mAutopilotPlanningCallback; //Model->Presenter:自动驾驶线路规划
|
||||
private Map<String, IBusPassengerControllerStatusCallback> mControllerStatusCallbackMap = new ConcurrentHashMap<>();
|
||||
|
||||
private double mLongitude, mLatitude;
|
||||
|
||||
private BusPassengerModel() {
|
||||
}
|
||||
|
||||
public void init( Context context ) {
|
||||
mContext = context.getApplicationContext();
|
||||
initListeners();
|
||||
// TODO: 2022/3/31
|
||||
}
|
||||
|
||||
public void release() {
|
||||
releaseListeners();
|
||||
}
|
||||
|
||||
public void setMoGoAutopilotPlanningListener(IBusPassengerAutopilotPlanningCallback
|
||||
moGoAutopilotPlanningCallback) {
|
||||
this.mAutopilotPlanningCallback = moGoAutopilotPlanningCallback;
|
||||
}
|
||||
|
||||
public void setADASStatusCallback(IBusPassengerADASStatusCallback callback) {
|
||||
this.mADASStatusCallback = callback;
|
||||
}
|
||||
|
||||
public void setControllerStatusCallback(String tag, IBusPassengerControllerStatusCallback callback) {
|
||||
if (tag == null || "".equals(tag)) return;
|
||||
|
||||
if (callback == null) {
|
||||
mControllerStatusCallbackMap.remove(tag);
|
||||
return;
|
||||
}
|
||||
|
||||
mControllerStatusCallbackMap.put(tag,callback);
|
||||
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
MogoAiCloudSocketManager.getInstance(mContext)
|
||||
.registerLifecycleListener(10010, mSocketLifeCycleLisnter);
|
||||
|
||||
// 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener);
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getIntentManagerApi()
|
||||
.registerIntentListener( ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener );
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getStatusManagerApi()
|
||||
.registerStatusChangedListener( TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener );
|
||||
// 达到起始站围栏监听
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getRegisterCenterApi()
|
||||
.registerCarLocationChangedListener( TAG, mCarLocationChangedListener2);
|
||||
|
||||
//2021.11.1 自动驾驶路线规划接口
|
||||
CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener);
|
||||
}
|
||||
|
||||
private void releaseListeners() {
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getStatusManagerApi()
|
||||
.unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener);
|
||||
|
||||
// 注销到达起始站围栏监听
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getRegisterCenterApi()
|
||||
.unregisterCarLocationChangedListener(TAG, mCarLocationChangedListener2);
|
||||
|
||||
MogoAiCloudSocketManager.getInstance(mContext)
|
||||
.unregisterLifecycleListener(10010);
|
||||
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener);
|
||||
CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener);
|
||||
}
|
||||
|
||||
//监听网络变化,避免启动机器时无网导致无法更新订单信息
|
||||
private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() {
|
||||
@Override
|
||||
public void onIntentReceived( String intentStr, Intent intent ) {
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "onIntentReceived = %s", intentStr );
|
||||
if ( ConnectivityManager.CONNECTIVITY_ACTION.equals( intentStr ) ) {
|
||||
if ( NetworkUtils.isConnected( mContext ) ) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
// TODO: 2022/3/31
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() {
|
||||
// VR mode变更回调
|
||||
@Override
|
||||
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
|
||||
if (StatusDescriptor.VR_MODE == descriptor) {
|
||||
if (mControllerStatusCallbackMap.size() > 0) {
|
||||
for (IBusPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){
|
||||
callback.onVRModeChanged(isTrue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final IMogoLifecycleListener mSocketLifeCycleLisnter = new IMogoLifecycleListener() {
|
||||
@Override
|
||||
public void onConnectFailure() { CallerLogger.INSTANCE.e(M_BUS_P + TAG,"socket onConnectFailure"); }
|
||||
|
||||
@Override
|
||||
public void onConnectSuccess() { CallerLogger.INSTANCE.e(M_BUS_P + TAG,"socket onConnectSuccess"); }
|
||||
|
||||
@Override
|
||||
public void onConnectLost() { CallerLogger.INSTANCE.e(M_BUS_P + TAG,"socket onConnectLost"); }
|
||||
};
|
||||
|
||||
// 自车定位
|
||||
private final IMogoCarLocationChangedListener2 mCarLocationChangedListener2 = new IMogoCarLocationChangedListener2() {
|
||||
|
||||
@Override
|
||||
public void onCarLocationChanged2( Location location ) {
|
||||
//位置变化时,通过围栏判断是否到达x点
|
||||
// TODO: 2022/3/31
|
||||
mLongitude = location.getLongitude();
|
||||
mLatitude = location.getLatitude();
|
||||
for (IBusPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){
|
||||
callback.onCarLocationChanged(location);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){
|
||||
|
||||
@Override
|
||||
public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {
|
||||
|
||||
}
|
||||
|
||||
private boolean arriveAtEnd = false; //乘客app专用字段
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
if (autopilotStatusInfo == null) return;
|
||||
int state = autopilotStatusInfo.getState();
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "state = %s", state );
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning();
|
||||
// TODO: 2022/3/31
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
|
||||
// TODO: 2022/3/31
|
||||
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotEnable();
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
// TODO: 2022/3/31
|
||||
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotDisable();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotSNRequest() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotArriveAtStation(@Nullable MessagePad.ArrivalNotification arrivalNotification) {
|
||||
if (FunctionBuildConfig.isDemoMode
|
||||
&& AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
arriveAtEnd = true;
|
||||
}
|
||||
|
||||
// TODO: 2022/3/31
|
||||
if (DebugConfig.isDebug()) {
|
||||
// TipToast.shortTip("到达目的地");
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private final IMoGoAutopilotPlanningListener moGoAutopilotPlanningListener = new IMoGoAutopilotPlanningListener(){
|
||||
|
||||
@Override
|
||||
public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp routeList) {
|
||||
if (null != routeList && routeList.getWayPointsList().size() > 0){
|
||||
// TODO: 2022/3/31
|
||||
mAutopilotPlanningCallback.routeResult(routeList.getWayPointsList());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotTrajectory(ArrayList<ADASTrajectoryInfo> trajectoryInfos) {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.mogo.och.bus.passenger.network;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*
|
||||
* Bus乘客端接口定义
|
||||
*/
|
||||
interface BusPassengerServiceApi {
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.mogo.och.bus.passenger.network;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*/
|
||||
public interface BusPassengerServiceCallback<T> {
|
||||
|
||||
void onSuccess(T data);
|
||||
|
||||
void onFail(int code, String msg);
|
||||
|
||||
default void onError() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.mogo.och.bus.passenger.network;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager;
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory;
|
||||
import com.mogo.eagle.core.network.RequestOptions;
|
||||
import com.mogo.eagle.core.network.SubscribeImpl;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.bus.passenger.constant.BusPassengerConst;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*/
|
||||
public class BusPassengerServiceManager {
|
||||
private static final String TAG = BusPassengerServiceManager.class.getSimpleName();
|
||||
|
||||
private static final class SingletonHolder {
|
||||
private static final BusPassengerServiceManager INSTANCE = new BusPassengerServiceManager();
|
||||
}
|
||||
|
||||
public static BusPassengerServiceManager getInstance() {
|
||||
return SingletonHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private BusPassengerServiceApi mBusPassengerServiceApi;
|
||||
|
||||
private BusPassengerServiceManager() {
|
||||
if (mBusPassengerServiceApi == null){
|
||||
mBusPassengerServiceApi = MoGoRetrofitFactory.getInstance(
|
||||
BusPassengerConst.getBaseUrl()).create(BusPassengerServiceApi.class);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Bus司机端的sn
|
||||
* @return
|
||||
*/
|
||||
private String getDriverAppSn(){
|
||||
return CallerTelematicManager.INSTANCE.getServerToken();
|
||||
// return "X2020210525EFA93B5946FA38D4";
|
||||
}
|
||||
|
||||
private <T extends BaseData> SubscribeImpl getSubscribeImpl(
|
||||
Context context, BusPassengerServiceCallback<T> callback, String apiName) {
|
||||
return new SubscribeImpl<T>(RequestOptions.create(context)) {
|
||||
@Override
|
||||
public void onSuccess(T o) {
|
||||
super.onSuccess(o);
|
||||
CallerLogger.INSTANCE.e(M_BUS_P + TAG,apiName +
|
||||
": onSuccess() " + o.msg);
|
||||
if (callback != null) {
|
||||
callback.onSuccess(o);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
CallerLogger.INSTANCE.e(M_BUS_P + TAG,apiName +
|
||||
": onError() " + e.getMessage());
|
||||
if (callback != null) {
|
||||
callback.onError();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String message, int code) {
|
||||
super.onError(message, code);
|
||||
CallerLogger.INSTANCE.e(M_BUS_P + TAG,String.format(apiName +
|
||||
": onError() code = %d; message = %s;", code, message));
|
||||
if (callback != null) {
|
||||
callback.onFail(code, message);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.mogo.och.bus.passenger.presenter;
|
||||
|
||||
import android.location.Location;
|
||||
import android.os.Looper;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback;
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback;
|
||||
import com.mogo.och.bus.passenger.model.BusPassengerModel;
|
||||
import com.mogo.och.bus.passenger.ui.BusPassengerBaseFragment;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*/
|
||||
public class BaseBusPassengerPresenter extends Presenter<BusPassengerBaseFragment> implements
|
||||
IBusPassengerADASStatusCallback, IBusPassengerControllerStatusCallback {
|
||||
private static final String TAG = BaseBusPassengerPresenter.class.getSimpleName();
|
||||
|
||||
public BaseBusPassengerPresenter(BusPassengerBaseFragment view) {
|
||||
super(view);
|
||||
BusPassengerModel.getInstance().init(AbsMogoApplication.getApp());
|
||||
initListeners();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate( @NonNull LifecycleOwner owner ) {
|
||||
super.onCreate( owner );
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "Bus乘客端Presenter onCreate()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy( @NonNull LifecycleOwner owner ) {
|
||||
super.onDestroy( owner );
|
||||
|
||||
releaseListeners();
|
||||
BusPassengerModel.getInstance().release();
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
BusPassengerModel.getInstance().setADASStatusCallback(this);
|
||||
BusPassengerModel.getInstance().setControllerStatusCallback(TAG, this);
|
||||
}
|
||||
|
||||
private void releaseListeners() {
|
||||
BusPassengerModel.getInstance().setADASStatusCallback(null);
|
||||
BusPassengerModel.getInstance().setControllerStatusCallback(TAG, null);
|
||||
}
|
||||
|
||||
private void runOnUIThread( Runnable executor ) {
|
||||
if ( executor == null ) {
|
||||
return;
|
||||
}
|
||||
if ( Looper.myLooper() != Looper.getMainLooper() ) {
|
||||
UiThreadHandler.post( executor );
|
||||
} else {
|
||||
executor.run();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onAutopilotArriveEnd() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotEnable() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotDisable() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotRunning() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVRModeChanged(boolean isVRMode) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCarLocationChanged(Location location) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.mogo.och.bus.passenger.ui;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.commons.mvp.MvpFragment;
|
||||
import com.mogo.och.bus.passenger.R;
|
||||
import com.mogo.och.bus.passenger.presenter.BaseBusPassengerPresenter;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Created on 2022/3/31
|
||||
*
|
||||
* Bus乘客端基础Fragment
|
||||
*/
|
||||
public class BusPassengerBaseFragment extends MvpFragment<BusPassengerBaseFragment, BaseBusPassengerPresenter> {
|
||||
private static final String TAG = BusPassengerBaseFragment.class.getSimpleName();
|
||||
|
||||
private Handler mHandler = new Handler(Looper.getMainLooper());
|
||||
|
||||
@NonNull
|
||||
@NotNull
|
||||
@Override
|
||||
protected BaseBusPassengerPresenter createPresenter() {
|
||||
return new BaseBusPassengerPresenter(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.bus_p_base_fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTagName() {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initViews() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -47,8 +47,6 @@ public class OchBusProvider implements IMogoOCH {
|
||||
public void init(Context context) {
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("OchBus"
|
||||
, StatusDescriptor.VR_MODE, statusChangedListener);
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("OchBus"
|
||||
, StatusDescriptor.TOP_VIEW, statusChangedListener);
|
||||
}
|
||||
|
||||
private void showFragment() {
|
||||
@@ -78,8 +76,7 @@ public class OchBusProvider implements IMogoOCH {
|
||||
} else {
|
||||
hideFragment();
|
||||
}
|
||||
} else if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()
|
||||
&& descriptor == StatusDescriptor.TOP_VIEW) {
|
||||
} else if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
|
||||
// topView进行展示时推出网约车界面,但是不隐藏整个fragment
|
||||
if (busFragment != null && isTrue) {
|
||||
busFragment.hideOchBus();
|
||||
|
||||
@@ -38,7 +38,6 @@ class MogoOCHTaxiPassenger implements IMogoOCH, IMogoStatusChangedListener {
|
||||
public void init( Context context ) {
|
||||
CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "init" );
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("ochTaxi", StatusDescriptor.VR_MODE,this);
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("ochTaxi", StatusDescriptor.TOP_VIEW,this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
|
||||
import com.amap.api.maps.model.LatLng;
|
||||
import com.amap.api.navi.model.NaviLatLng;
|
||||
import com.elegant.network.utils.GsonUtil;
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo;
|
||||
@@ -43,8 +44,9 @@ import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst;
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum;
|
||||
import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceCallback;
|
||||
import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager;
|
||||
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
|
||||
import com.mogo.och.taxi.passenger.utils.TPCoordinateCalculateRouteUtil;
|
||||
import com.mogo.service.cloud.socket.IMogoLifecycleListener;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
@@ -197,9 +199,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getSocketManagerApi(mContext)
|
||||
MogoAiCloudSocketManager.getInstance(mContext)
|
||||
.registerLifecycleListener(10010,mSocketLifeCycleLisnter);
|
||||
|
||||
// 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口
|
||||
@@ -237,9 +237,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
.getRegisterCenterApi()
|
||||
.unregisterCarLocationChangedListener(TAG, mCarLocationChangedListener2);
|
||||
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getSocketManagerApi(mContext)
|
||||
MogoAiCloudSocketManager.getInstance(mContext)
|
||||
.unregisterLifecycleListener(10010);
|
||||
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener);
|
||||
|
||||
@@ -38,7 +38,6 @@ class MogoOCHTaxi implements IMogoOCH , IMogoStatusChangedListener {
|
||||
public void init( Context context ) {
|
||||
CallerLogger.INSTANCE.d( M_TAXI + TAG, "init" );
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("ochTaxi", StatusDescriptor.VR_MODE,this);
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("ochTaxi", StatusDescriptor.TOP_VIEW,this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
|
||||
|
||||
import com.amap.api.maps.model.LatLng;
|
||||
import com.elegant.network.utils.GsonUtil;
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
@@ -56,7 +57,7 @@ import com.mogo.och.taxi.utils.CoordinateCalculateRouteUtil;
|
||||
import com.mogo.och.taxi.utils.OchTaxiAnalyticsUtil;
|
||||
import com.mogo.och.taxi.utils.OrderUtil;
|
||||
import com.mogo.och.taxi.utils.PinYinUtil;
|
||||
import com.mogo.service.cloud.socket.IMogoLifecycleListener;
|
||||
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
@@ -195,9 +196,7 @@ public class MogoOCHTaxiModelNew {
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getSocketManagerApi(mContext)
|
||||
MogoAiCloudSocketManager.getInstance(mContext)
|
||||
.registerLifecycleListener(10010, mSocketLifeCycleLisnter);
|
||||
|
||||
// 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口
|
||||
@@ -232,9 +231,7 @@ public class MogoOCHTaxiModelNew {
|
||||
.getRegisterCenterApi()
|
||||
.unregisterCarLocationChangedListener(TAG, mCarLocationChangedListener2);
|
||||
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getSocketManagerApi(mContext)
|
||||
MogoAiCloudSocketManager.getInstance(mContext)
|
||||
.unregisterLifecycleListener(10010);
|
||||
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener);
|
||||
|
||||
@@ -112,8 +112,8 @@ ext {
|
||||
|
||||
// obu sdk
|
||||
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3",
|
||||
mogoobu : 'com.zhidao.support.obu:mogoobu:1.0.0.19',
|
||||
mogoami : 'com.zhidao.support.obu.ami:mogoami:1.0.0.10',
|
||||
mogoobu : 'com.zhidao.support.obu:mogoobu:1.0.0.21',
|
||||
mogoami : 'com.zhidao.support.obu.ami:mogoami:1.0.0.12',
|
||||
adasHigh : 'com.zhidao.support.adas:high:1.2.1.2_bate25',
|
||||
|
||||
// google
|
||||
|
||||
@@ -137,10 +137,8 @@ public class MoGoHandAdasMsgManager implements
|
||||
|
||||
@Override
|
||||
public void onAutopilotCarConfig(@NotNull MessagePad.CarConfigResp carConfigResp) {
|
||||
// Log.d("liyz", "onAutopilotCarConfig ----------1-----------");
|
||||
if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.getMacAddress())) {
|
||||
// Log.d("liyz", "onAutopilotCarConfig ----------2-----------" + carConfigResp.getMacAddress() + "--" + carConfigResp.getPlateNumber());
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, " carConfigResp.getMacAddress() = " + carConfigResp.getMacAddress() + "--mac = " + carConfigResp.getMacAddress().replaceAll(".{2}(?=.)", "$0:"));
|
||||
// Log.d("liyz", "onAutopilotCarConfig ---------------------" + carConfigResp.getMacAddress() + "--" + carConfigResp.getPlateNumber());
|
||||
// CallerBindingcarManager.getBindingcarProvider().getBindingcarInfo(carConfigResp.getMacAddress());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,22 +51,35 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
|
||||
@Override
|
||||
public void getBindingcarInfo(String macAddress) {
|
||||
mAddress = macAddress;
|
||||
BindingcarNetWorkManager.getInstance().getBindingcarInfo(mContext, macAddress, getScreenType());
|
||||
long currentHour = System.currentTimeMillis() / (1000 * 60 * 60);
|
||||
long oldHour = SharedPrefsMgr.getInstance(mContext).getLong("type", 0);
|
||||
Log.d("liyz", "getBindingcarInfo currentHour = " + currentHour + "---oldHour = " + oldHour);
|
||||
//12小时内只调用一次,防止用户不点击修改绑定导致的频繁提示,用户第一次点击修改成功后,就不会再提示了
|
||||
if (currentHour - oldHour > 12) {
|
||||
if (getScreenType() == 1) {
|
||||
Log.d("liyz", "getBindingcarInfo getScreenType() -----> ");
|
||||
SharedPrefsMgr.getInstance(mContext).putLong("type", System.currentTimeMillis() / (1000 * 60 * 60));
|
||||
BindingcarNetWorkManager.getInstance().getBindingcarInfo(mContext, macAddress, getScreenType());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void modifyCarInfo(BindingcarCallBack callBack) {
|
||||
BindingcarNetWorkManager.getInstance().modifyBindingcar(mAddress, callBack, getScreenType());
|
||||
if (getScreenType() == 1) {
|
||||
BindingcarNetWorkManager.getInstance().modifyBindingcar(mAddress, callBack, getScreenType());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private int getScreenType () {
|
||||
private int getScreenType() {
|
||||
int screenType = -1;
|
||||
if (FunctionBuildConfig.appIdentityMode == 0 || FunctionBuildConfig.appIdentityMode == 0xA0) {
|
||||
screenType = 1; //司机屏
|
||||
screenType = 1; //司机屏
|
||||
} else if (FunctionBuildConfig.appIdentityMode == 1 || FunctionBuildConfig.appIdentityMode == 0xA1) {
|
||||
screenType = 2; //乘客屏
|
||||
}
|
||||
Log.d("liyz", "mode = " + FunctionBuildConfig.appIdentityMode + "--screenType = " + screenType);
|
||||
return screenType;
|
||||
}
|
||||
|
||||
|
||||
@@ -57,11 +57,8 @@ public class BindingcarNetWorkManager {
|
||||
* @param macAddress mac地址
|
||||
*/
|
||||
public void getBindingcarInfo(Context context, String macAddress, int screenType) {
|
||||
if (screenType == 2) {
|
||||
return;
|
||||
}
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
BindingcarRequest request = new BindingcarRequest(macAddress, sn);
|
||||
BindingcarRequest request = new BindingcarRequest(macAddress, sn, screenType);
|
||||
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
|
||||
mBindingcarApiService.getBindingcarInfo(token, requestBody)
|
||||
.subscribeOn(Schedulers.io())
|
||||
@@ -75,6 +72,7 @@ public class BindingcarNetWorkManager {
|
||||
public void onNext(@NonNull BindingcarInfo info) {
|
||||
if (info != null && info.getData() != null) {
|
||||
CallerLogger.INSTANCE.d(TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString());
|
||||
Log.d("liyz", "getBindingcarInfo onNext info.getData() =" + info.getData().toString() + "--compare = " + info.getData().getCompare());
|
||||
if (info.getData().getCompare() == 0) {
|
||||
CallerHmiManager.INSTANCE.showBindingcarDialog();
|
||||
} else if (info.getData().getCompare() == 3) {
|
||||
@@ -88,6 +86,7 @@ public class BindingcarNetWorkManager {
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
CallerLogger.INSTANCE.e(TAG, "getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
|
||||
Log.e("liyz", "getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -102,14 +101,8 @@ public class BindingcarNetWorkManager {
|
||||
* mac: 48:b0:2d:3a:9c:19
|
||||
*/
|
||||
public void modifyBindingcar(String macAddress, BindingcarCallBack callBack, int screenType) {
|
||||
Log.d("liyz", "modifyBindingcar screenType = " + screenType);
|
||||
if (screenType == 2) {
|
||||
return;
|
||||
}
|
||||
Log.d("liyz", "modifyBindingcar --------1----------- ");
|
||||
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
BindingcarRequest request = new BindingcarRequest(macAddress, sn);
|
||||
BindingcarRequest request = new BindingcarRequest(macAddress, sn, screenType);
|
||||
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
|
||||
mBindingcarApiService.modifyBindingcarInfo(token, requestBody)
|
||||
.subscribeOn(Schedulers.io())
|
||||
@@ -124,11 +117,13 @@ public class BindingcarNetWorkManager {
|
||||
if (info != null) {
|
||||
callBack.callBackResult(info);
|
||||
CallerLogger.INSTANCE.d(TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString());
|
||||
Log.d("liyz", "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("liyz", "modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
|
||||
CallerLogger.INSTANCE.e(TAG, "modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
|
||||
}
|
||||
|
||||
|
||||
@@ -8,10 +8,12 @@ package com.mogo.eagle.core.function.bindingcar.network;
|
||||
public class BindingcarRequest {
|
||||
private String mac;
|
||||
private String sn;
|
||||
private int type;
|
||||
|
||||
public BindingcarRequest(String mac, String sn) {
|
||||
public BindingcarRequest(String mac, String sn, int type) {
|
||||
this.mac = mac;
|
||||
this.sn = sn;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
@@ -30,11 +32,20 @@ public class BindingcarRequest {
|
||||
this.sn = sn;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "BindingcarRequest{" +
|
||||
"mac='" + mac + '\'' +
|
||||
", sn='" + sn + '\'' +
|
||||
", type=" + type +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.check.view.CheckActivity
|
||||
import com.mogo.eagle.core.function.check.view.CheckDialog
|
||||
import com.mogo.eagle.core.utilcode.util.*
|
||||
import com.mogo.module.common.MogoApisHandler
|
||||
import com.mogo.module.service.receiver.MogoReceiver
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener
|
||||
import com.mogo.service.statusmanager.StatusDescriptor
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
@@ -62,7 +61,7 @@ class VehicleMonitoringManager : ICheckProvider, IMogoStatusChangedListener {
|
||||
override fun checkMonitor(context: Context) {
|
||||
checkNetWork( context, object : ICheckResultCallBack {
|
||||
override fun callBackWithCheckData(data: CheckResultData) {
|
||||
updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, data.data.vehicle.state)
|
||||
updateMonitoringStatus(TAG, data.data.vehicle.state)
|
||||
if (data.data.vehicle.state == 1) {
|
||||
hasTipShow = false
|
||||
} else {
|
||||
|
||||
@@ -85,8 +85,8 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
upgradeManager.getPackageUrls(versionName)
|
||||
}
|
||||
|
||||
override fun downLoadPackage(downLoadKey: String) {
|
||||
// upgradeManager.downLoadPackage(mContext!!, downLoadKey)
|
||||
override fun downLoadPackage(downloadKey: String,downloadUrl: String) {
|
||||
upgradeManager.downLoadPackage(mContext!!, downloadKey,downloadUrl)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.os.Handler
|
||||
import android.os.Message
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
@@ -19,8 +20,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.module.common.MogoApisHandler
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
|
||||
import com.zhidao.loglib.bean.RemoteLogPushContent
|
||||
import com.zhidao.loglib.call.LogInfoManagerFactory
|
||||
import com.zhidao.loglib.core.ILogListener
|
||||
@@ -48,8 +48,7 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
|
||||
|
||||
fun init(context: Context) {
|
||||
mContext = context
|
||||
MogoApisHandler.getInstance().apis
|
||||
.getSocketManagerApi(AbsMogoApplication.getApp().applicationContext)
|
||||
MogoAiCloudSocketManager.getInstance(AbsMogoApplication.getApp().applicationContext)
|
||||
.registerOnMessageListener(LOG_PUSH_TYPE, this)
|
||||
manualContent.pkgName = context.packageName
|
||||
logCheck(context)
|
||||
@@ -220,13 +219,11 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
|
||||
SharedPrefsMgr.getInstance(mContext!!).putLong(MoGoConfig.CATCH_LOG_TIME, 0)
|
||||
|
||||
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchClose()
|
||||
TipToast.shortTip("日志抓取默认计时结束")
|
||||
}
|
||||
}
|
||||
|
||||
fun onDestroy() {
|
||||
MogoApisHandler.getInstance().apis
|
||||
.getSocketManagerApi(AbsMogoApplication.getApp().applicationContext)
|
||||
MogoAiCloudSocketManager.getInstance(AbsMogoApplication.getApp().applicationContext)
|
||||
.unregisterLifecycleListener(LOG_PUSH_TYPE)
|
||||
|
||||
if (handler.hasMessages(MSG_TRY_CLOSE_LOG)) {
|
||||
|
||||
@@ -36,14 +36,14 @@ class UpgradeManager : IDownload {
|
||||
})
|
||||
}
|
||||
|
||||
fun downLoadPackage(context: Context, downLoadKey: String) {
|
||||
fun downLoadPackage(context: Context, downloadKey: String,downloadUrl: String) {
|
||||
// val downLoadUrl = map?.get(downLoadKey)
|
||||
// downLoadUrl?.let {
|
||||
DownloadUtils.downLoad(
|
||||
context,
|
||||
"https://scm-1255510688.cos.ap-beijing.myqcloud.com/test/com.mogo.launcher.f/2.5.1.1009/IntelligentPilot_v2.5.1.1009_20220216_[fPadLenovoOchTaxi-launcher-online]_debug.apk",
|
||||
downloadUrl,
|
||||
Config.downLoadPath,
|
||||
downLoadKey,
|
||||
downloadKey,
|
||||
5,
|
||||
this
|
||||
)
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.location.Location;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||
import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
|
||||
@@ -25,7 +26,7 @@ import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.zhjt.dispatch.model.DispatchServiceModel;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener;
|
||||
import com.zhjt.dispatch.model.IDispatch;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -102,7 +103,7 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
|
||||
mContext = context;
|
||||
mApis = MogoApisHandler.getInstance().getApis();
|
||||
|
||||
mApis.getSocketManagerApi(context).registerOnMessageListener(MSG_SOCKET_TYPE, this);
|
||||
MogoAiCloudSocketManager.getInstance(context).registerOnMessageListener(MSG_SOCKET_TYPE, this);
|
||||
mApis.getRegisterCenterApi()
|
||||
.registerCarLocationChangedListener(TAG, this);
|
||||
// 添加自动驾驶按钮选中监听
|
||||
|
||||
@@ -23,6 +23,8 @@ public class WaringConst {
|
||||
public static String BROADCAST_V2X_TRAFFIC_LIGHT_IS_SHOW__EXTRA_KEY = "trafficLightIsShow";
|
||||
// 选中的交通等类型,red、yellow、green
|
||||
public static String BROADCAST_V2X_TRAFFIC_LIGHT_CHECK_TYPE_EXTRA_KEY = "trafficLightCheckType";
|
||||
// 倒计时
|
||||
public static String BROADCAST_V2X_TRAFFIC_LIGHT_COUNT_DOWN_TYPE_EXTRA_KEY = "trafficLightCountDown";
|
||||
|
||||
// 限速标志
|
||||
// 是否展示:true-展示,false-关闭
|
||||
|
||||
@@ -32,10 +32,15 @@ class V2XTrafficLightBroadcastReceiver : BroadcastReceiver() {
|
||||
WaringConst.BROADCAST_V2X_TRAFFIC_LIGHT_CHECK_TYPE_EXTRA_KEY,
|
||||
0
|
||||
)
|
||||
val trafficLightCountDown =
|
||||
intent.getIntExtra(
|
||||
WaringConst.BROADCAST_V2X_TRAFFIC_LIGHT_COUNT_DOWN_TYPE_EXTRA_KEY,
|
||||
0
|
||||
)
|
||||
|
||||
if (trafficLightIsShow) {
|
||||
// 分发场景
|
||||
dispatchShowWaring(trafficLightCheckType)
|
||||
dispatchShowWaring(trafficLightCheckType, trafficLightCountDown)
|
||||
} else {
|
||||
dispatchCloseWaring()
|
||||
}
|
||||
@@ -44,14 +49,22 @@ class V2XTrafficLightBroadcastReceiver : BroadcastReceiver() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 展示交通灯
|
||||
*
|
||||
* @param trafficLightCheckType 选中的交通的灯 0-都是默认,1-红,2-黄,3-绿
|
||||
* @param trafficLightCountDown 对应交通灯倒计时,如果倒计时为0,则disable
|
||||
*/
|
||||
private fun dispatchShowWaring(trafficLightCheckType: Int) {
|
||||
private fun dispatchShowWaring(trafficLightCheckType: Int, trafficLightCountDown: Int) {
|
||||
CallerHmiManager.showWarningTrafficLight(trafficLightCheckType)
|
||||
if(trafficLightCountDown == 0 ){
|
||||
CallerHmiManager.disableWarningTrafficLightCountDown()
|
||||
}
|
||||
when(trafficLightCheckType){
|
||||
1 -> CallerHmiManager.changeCountdownRed(trafficLightCountDown)
|
||||
2 -> CallerHmiManager.changeCountdownYellow(trafficLightCountDown)
|
||||
3 -> CallerHmiManager.changeCountdownGreen(trafficLightCountDown)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -541,6 +541,13 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
|
||||
mViewTrafficLight?.disableWarningTrafficLight()
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭红绿灯倒计时
|
||||
*/
|
||||
override fun disableWarningTrafficLightCountDown() {
|
||||
mViewTrafficLight?.disableCountdown()
|
||||
}
|
||||
|
||||
override fun changeCountdownRed(redNum: Int) {
|
||||
mViewTrafficLight?.changeCountdownRed(redNum)
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.view.View
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
@@ -23,6 +24,7 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule
|
||||
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.data.obu.ObuStatusInfo
|
||||
import com.mogo.eagle.core.data.upgrade.UpgradeVersionEntity
|
||||
import com.mogo.eagle.core.function.api.autopilot.*
|
||||
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
|
||||
import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener
|
||||
@@ -43,6 +45,7 @@ import com.mogo.eagle.core.function.hmi.ui.logcatch.ILogViewListener
|
||||
import com.mogo.eagle.core.function.hmi.ui.logcatch.LogInfoView
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.AdUpgradeDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.DockerRebootDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.upgrade.UpgradeListAdapter
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel
|
||||
@@ -58,6 +61,7 @@ import kotlinx.android.synthetic.main.view_debug_setting.view.*
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo_msg.MogoReportMsg
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
/**
|
||||
* @author xiaoyuzhou
|
||||
@@ -116,6 +120,16 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
//OBU连接状态
|
||||
private var obuConnectStatus: Boolean = false
|
||||
|
||||
//渠道包标签
|
||||
private var onlineSelected: Boolean = true
|
||||
private var qaSelected: Boolean = true
|
||||
|
||||
private var upgradeListAdapter: UpgradeListAdapter?=null
|
||||
|
||||
private val upgradeVersionList by lazy{
|
||||
ArrayList<UpgradeVersionEntity>()
|
||||
}
|
||||
|
||||
private val mapUiController by lazy {
|
||||
CallerMapUIServiceManager.getMapUIController()
|
||||
}
|
||||
@@ -257,6 +271,9 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 鹰眼参数配置
|
||||
*/
|
||||
tbEagleEyeController.setOnCheckedChangeListener { buttonView, isChecked ->
|
||||
if(isChecked){
|
||||
buttonView.setCompoundDrawables(null, null, iconDown, null)
|
||||
@@ -345,7 +362,20 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 应用包管理中心
|
||||
*/
|
||||
btnApkCenter.setOnCheckedChangeListener { buttonView, isChecked ->
|
||||
if(isChecked){
|
||||
buttonView.setCompoundDrawables(null, null, iconDown, null)
|
||||
//展示应用包管理中心
|
||||
apkCenterLayout.visibility = View.VISIBLE
|
||||
} else {
|
||||
buttonView.setCompoundDrawables(null, null, iconRight, null)
|
||||
//隐藏应用包管理中心
|
||||
apkCenterLayout.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
lastVisualAngleMode = mapUiController?.currentMapVisualAngle
|
||||
|
||||
@@ -408,6 +438,8 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
setHmiCheckedChangeListener()
|
||||
//日志中心事件点击监听
|
||||
setLogCheckedChangeListener()
|
||||
//APK包管理中心配置
|
||||
setApkCenterListener()
|
||||
|
||||
//OBU配置信息
|
||||
tvObuInfo.text = CallerObuListenerManager.getObuStatusInfoJsonString()
|
||||
@@ -1043,7 +1075,17 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
override fun upgradeVersionUrls(urls: Map<String, String>?) {
|
||||
|
||||
//版本信息更新
|
||||
urls?.let {
|
||||
upgradeVersionList.clear()
|
||||
it.iterator().forEach {map ->
|
||||
val name = if(map.key.contains("{")) map.key.replace("{","") else map.key
|
||||
val url = if(map.value.contains("}")) map.value.replace("}","") else map.value
|
||||
upgradeVersionList.add(UpgradeVersionEntity(name,url))
|
||||
}
|
||||
upgradeListAdapter?.setDada(dataFilter(upgradeVersionList))
|
||||
upgradeListAdapter?.notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1141,6 +1183,75 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* APK包管理
|
||||
*/
|
||||
private fun setApkCenterListener(){
|
||||
val layoutManager: LinearLayoutManager = object : LinearLayoutManager(context,
|
||||
VERTICAL, false) {
|
||||
override fun canScrollVertically(): Boolean {
|
||||
// 直接禁止垂直滑动
|
||||
return false
|
||||
}
|
||||
}
|
||||
rvUpgradeVersionList.layoutManager =layoutManager
|
||||
|
||||
upgradeListAdapter = UpgradeListAdapter(context,upgradeVersionList,
|
||||
object:UpgradeListAdapter.ClickListener{
|
||||
override fun downloadApk(name: String,url: String) {
|
||||
//下载包
|
||||
CallerDevaToolsManager.downLoadPackage(name,url)
|
||||
ToastUtils.showLong("开始下载APK,稍后可前往downloads文件夹查看")
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
rvUpgradeVersionList.adapter = upgradeListAdapter
|
||||
|
||||
ivApkSearch.setOnClickListener {
|
||||
val searchStr = etApkSearch.text.toString()
|
||||
if(searchStr.isEmpty()){
|
||||
ToastUtils.showShort("请输入正确的搜索关键字")
|
||||
}else{
|
||||
CallerDevaToolsManager.getUpgradeVersionUrls(searchStr)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Online
|
||||
cbApkOnline.setOnCheckedChangeListener { _, isChecked ->
|
||||
onlineSelected = isChecked
|
||||
upgradeListAdapter?.setDada(dataFilter(upgradeVersionList))
|
||||
upgradeListAdapter?.notifyDataSetChanged()
|
||||
}
|
||||
//QA
|
||||
cbApkQa.setOnCheckedChangeListener { _, isChecked ->
|
||||
qaSelected = isChecked
|
||||
upgradeListAdapter?.setDada(dataFilter(upgradeVersionList))
|
||||
upgradeListAdapter?.notifyDataSetChanged()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据包数据过滤器
|
||||
*/
|
||||
private fun dataFilter(list: ArrayList<UpgradeVersionEntity>): ArrayList<UpgradeVersionEntity> {
|
||||
val tempList = ArrayList<UpgradeVersionEntity>()
|
||||
list?.let {
|
||||
it.iterator().forEach { entity->
|
||||
if(onlineSelected && entity.name.contains("online")){
|
||||
tempList.add(entity)
|
||||
}
|
||||
if(qaSelected && entity.name.contains("qa")){
|
||||
tempList.add(entity)
|
||||
}
|
||||
}
|
||||
}
|
||||
return tempList
|
||||
}
|
||||
|
||||
private fun logViewDestroy() {
|
||||
logInfoView?.let {
|
||||
it.dismiss()
|
||||
@@ -1205,8 +1316,6 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
*/
|
||||
tvAppVersionName.text = "鹰眼版本名:${AppUtils.getAppVersionName()}"
|
||||
tvAppVersionCode.text = "鹰眼版本号:${AppUtils.getAppVersionCode()}"
|
||||
tvObuAppInfo.text = "OBU程序版本:${CallerObuListenerManager.getObuStatusInfo().appInfo}"
|
||||
tvObuHliInfo.text = "OBU协议版本:${CallerObuListenerManager.getObuStatusInfo().hliInfo}"
|
||||
tvObuSdkVersion.text = "OBU-SDK版本:${AppConfigInfo.obuSdkVersion}"
|
||||
tvAutopilotProtocolVersionInfo.text =
|
||||
"Autopilot协议版本:${CallerAutoPilotManager.getProtocolVersion()}"
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.upgrade
|
||||
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.RecyclerView.Adapter
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
||||
import com.mogo.eagle.core.data.upgrade.UpgradeVersionEntity
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.hmi.ui.upgrade.UpgradeListAdapter.UpgradeListHolder
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description APK升级包列表适配器
|
||||
* @since: 2022/3/25
|
||||
*/
|
||||
class UpgradeListAdapter: Adapter<UpgradeListHolder> {
|
||||
|
||||
private var context: Context? = null
|
||||
private var data:List<UpgradeVersionEntity>? = null
|
||||
private var clickListener: ClickListener? = null
|
||||
|
||||
constructor(
|
||||
context: Context,
|
||||
data: List<UpgradeVersionEntity>?,
|
||||
clickListener: ClickListener? = null
|
||||
) {
|
||||
this.context = context
|
||||
this.data = data
|
||||
this.clickListener = clickListener
|
||||
}
|
||||
|
||||
public fun setDada( data: List<UpgradeVersionEntity>?){
|
||||
this.data = data
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UpgradeListHolder {
|
||||
val view = LayoutInflater.from(parent.context)
|
||||
.inflate(R.layout.item_upgrade_version, parent, false)
|
||||
return UpgradeListHolder(view)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: UpgradeListHolder, position: Int) {
|
||||
data?.let {
|
||||
val upgradeVersionEntity = it[position]
|
||||
holder.tvUpgradeApkName.text=upgradeVersionEntity.name
|
||||
holder.tvUpgradeApkName.setOnClickListener {
|
||||
clickListener?.downloadApk(upgradeVersionEntity.name,upgradeVersionEntity.url)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getItemCount() = data?.size ?: 0
|
||||
|
||||
class UpgradeListHolder(itemView: View) : ViewHolder(itemView) {
|
||||
var tvUpgradeApkName: TextView = itemView.findViewById(R.id.tvUpgradeApkName)
|
||||
}
|
||||
|
||||
interface ClickListener{
|
||||
fun downloadApk(name:String,url:String)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.*
|
||||
import android.util.AttributeSet
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import java.lang.RuntimeException
|
||||
|
||||
class GradientTextView @JvmOverloads constructor(
|
||||
context: Context?,
|
||||
attrs: AttributeSet? = null
|
||||
) : AppCompatTextView(context!!, attrs) {
|
||||
private var mLinearGradient: LinearGradient? = null
|
||||
private var mPaint: Paint? = null
|
||||
private var mViewWidth = 0 //文字的宽度
|
||||
private var mViewHeight = 0 //文字的高度
|
||||
private val mTextBound = Rect()
|
||||
private var mColorList : IntArray?//存放颜色的数组
|
||||
private var isVertical = false//默认是横向
|
||||
|
||||
private var mRadius = 0f
|
||||
private var mdx = 0f
|
||||
private var mdy = 0f
|
||||
private var mColor = 0
|
||||
|
||||
init {
|
||||
//设置默认的颜色
|
||||
mColorList = intArrayOf(-0x1, 0xFFFFFFF)
|
||||
}
|
||||
|
||||
override fun onDraw(canvas: Canvas) {
|
||||
if (isVertical) {
|
||||
mViewHeight = measuredHeight
|
||||
} else {
|
||||
mViewWidth = measuredWidth
|
||||
}
|
||||
mPaint = paint
|
||||
val mTipText = text.toString()
|
||||
setStyle()
|
||||
mPaint!!.getTextBounds(mTipText, 0, mTipText.length, mTextBound)
|
||||
mPaint!!.setShadowLayer(mRadius, mdx, mdy, mColor)
|
||||
|
||||
//画出文字
|
||||
canvas.drawText(
|
||||
mTipText,
|
||||
(measuredWidth / 2 - mTextBound.width() / 2).toFloat(),
|
||||
(measuredHeight / 2 + mTextBound.height() / 2).toFloat(),
|
||||
mPaint!!
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* true表示纵向渐变,false变身横向渐变
|
||||
*
|
||||
* @param vertical 纵向
|
||||
*/
|
||||
fun setVertical(vertical: Boolean) {
|
||||
isVertical = vertical
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置渐变的颜色
|
||||
*
|
||||
* @param mColorList
|
||||
*/
|
||||
fun setColorList(mColorList: IntArray?) {
|
||||
if (mColorList != null && mColorList.size < 2) {
|
||||
throw RuntimeException("ColorList's length must be > 2")
|
||||
} else {
|
||||
this.mColorList = mColorList
|
||||
}
|
||||
}
|
||||
|
||||
private fun setStyle() {
|
||||
mPaint!!.isAntiAlias = true
|
||||
mPaint!!.isDither = true
|
||||
mPaint!!.isFilterBitmap = true
|
||||
//前面4个参数分别表示渐变的开始x轴,开始y轴,结束的x轴,结束的y轴,mColorList表示渐变的颜色数组
|
||||
mLinearGradient = LinearGradient(0f,0f,mViewWidth.toFloat(),mViewHeight.toFloat(),mColorList!!,null,Shader.TileMode.CLAMP)
|
||||
mPaint!!.shader = mLinearGradient
|
||||
mPaint!!.strokeJoin = Paint.Join.ROUND
|
||||
mPaint!!.strokeCap = Paint.Cap.ROUND
|
||||
mPaint!!.style = Paint.Style.FILL_AND_STROKE
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置投影层
|
||||
* @param radius
|
||||
* @param dx
|
||||
* @param dy
|
||||
* @param color
|
||||
*/
|
||||
fun setShadowLayerCustom(radius: Float, dx: Float, dy: Float, color: Int) {
|
||||
mRadius = radius
|
||||
mdx = dx
|
||||
mdy = dy
|
||||
mColor = color
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.marginLeft
|
||||
import com.mogo.eagle.core.function.api.hmi.view.IViewTrafficLight
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
|
||||
/**
|
||||
* 新版红绿灯view
|
||||
*/
|
||||
class SingleTrafficLightView @JvmOverloads constructor(
|
||||
context: Context?,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : IViewTrafficLight(context, attrs, defStyleAttr) {
|
||||
private var mLightIconIV: ImageView? = null
|
||||
private var mLightIconBG: ImageView? = null
|
||||
private var mLightTimeTV: GradientTextView? = null
|
||||
private var mCurrentLightId = 0
|
||||
|
||||
init {
|
||||
init(context)
|
||||
}
|
||||
|
||||
private fun init(context: Context?) {
|
||||
LayoutInflater.from(context).inflate(R.layout.hmi_view_traffic_light, this, true)
|
||||
mLightIconIV = findViewById(R.id.hmi_traffic_light_iv)
|
||||
mLightIconBG = findViewById(R.id.hmi_traffic_light_bg)
|
||||
mLightTimeTV = findViewById(R.id.hmi_traffic_light_time_tv)
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示红绿灯预警
|
||||
*
|
||||
* @param checkLightId 0-都是默认,1-红,2-黄,3-绿
|
||||
*/
|
||||
override fun showWarningTrafficLight(checkLightId: Int) {
|
||||
super.showWarningTrafficLight(checkLightId)
|
||||
mCurrentLightId = checkLightId
|
||||
updateTrafficLightIcon(checkLightId)
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭红绿灯预警展示,并重制灯态
|
||||
*/
|
||||
override fun disableWarningTrafficLight() {
|
||||
super.disableWarningTrafficLight()
|
||||
UiThreadHandler.post {
|
||||
mCurrentLightId = 0
|
||||
this@SingleTrafficLightView.visibility = GONE
|
||||
}
|
||||
}
|
||||
|
||||
override fun disableCountdown() {
|
||||
super.disableCountdown()
|
||||
UiThreadHandler.post {
|
||||
val lp = this.layoutParams as MarginLayoutParams
|
||||
lp.width = context.resources.getDimension(R.dimen.hmi_traffic_light_icon_size).toInt()
|
||||
this.layoutParams = lp
|
||||
mLightTimeTV!!.visibility = GONE
|
||||
mLightIconBG!!.layoutParams.width = context.resources.getDimension(R.dimen.dp_124).toInt()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param redNum 红灯倒计时
|
||||
* @param yellowNum 黄灯倒计时
|
||||
* @param greenNum 绿灯倒计时
|
||||
*/
|
||||
override fun changeCountdownTrafficLightNum(redNum: Int, yellowNum: Int, greenNum: Int) {
|
||||
super.changeCountdownTrafficLightNum(redNum, yellowNum, greenNum)
|
||||
UiThreadHandler.post {
|
||||
resetView()
|
||||
when (mCurrentLightId) {
|
||||
1 -> changeCountdownRed(redNum)
|
||||
2 -> changeCountdownYellow(yellowNum)
|
||||
3 -> changeCountdownGreen(greenNum)
|
||||
else -> UiThreadHandler.post { mLightTimeTV!!.text = "" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun changeCountdownRed(redNum: Int) {
|
||||
super.changeCountdownRed(redNum)
|
||||
UiThreadHandler.post {
|
||||
if (redNum > 0) {
|
||||
resetView()
|
||||
mLightTimeTV!!.setVertical(true)
|
||||
mLightTimeTV!!.setColorList(
|
||||
intArrayOf(
|
||||
resources.getColor(R.color.hmi_traffic_light_red_color_up),
|
||||
resources.getColor(R.color.hmi_traffic_light_red_color_down)
|
||||
)
|
||||
)
|
||||
mLightTimeTV!!.text = redNum.toString()
|
||||
} else {
|
||||
mLightTimeTV!!.text = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun changeCountdownGreen(greenNum: Int) {
|
||||
super.changeCountdownGreen(greenNum)
|
||||
UiThreadHandler.post {
|
||||
if (greenNum > 0) {
|
||||
resetView()
|
||||
mLightTimeTV!!.setVertical(true)
|
||||
mLightTimeTV!!.setColorList(
|
||||
intArrayOf(
|
||||
resources.getColor(R.color.hmi_traffic_light_green_color_up),
|
||||
resources.getColor(R.color.hmi_traffic_light_green_color_down)
|
||||
)
|
||||
)
|
||||
mLightTimeTV!!.text = greenNum.toString()
|
||||
} else {
|
||||
mLightTimeTV!!.text = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun changeCountdownYellow(yellowNum: Int) {
|
||||
super.changeCountdownYellow(yellowNum)
|
||||
UiThreadHandler.post {
|
||||
if (yellowNum > 0) {
|
||||
resetView()
|
||||
mLightTimeTV!!.setVertical(true)
|
||||
mLightTimeTV!!.setColorList(
|
||||
intArrayOf(
|
||||
resources.getColor(R.color.hmi_traffic_light_yellow_color_up),
|
||||
resources.getColor(R.color.hmi_traffic_light_yellow_color_down)
|
||||
)
|
||||
)
|
||||
mLightTimeTV!!.text = yellowNum.toString()
|
||||
} else {
|
||||
mLightTimeTV!!.text = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新红绿灯icon
|
||||
*
|
||||
* @param lightId 0-都是默认,1-红,2-黄,3-绿
|
||||
*/
|
||||
private fun updateTrafficLightIcon(lightId: Int) {
|
||||
UiThreadHandler.post {
|
||||
when (lightId) {
|
||||
1 -> {
|
||||
mLightIconIV!!.setBackgroundResource(R.drawable.hmi_light_red_nor)
|
||||
this@SingleTrafficLightView.visibility = VISIBLE
|
||||
}
|
||||
2 -> {
|
||||
mLightIconIV!!.setBackgroundResource(R.drawable.hmi_lightyellow_nor)
|
||||
this@SingleTrafficLightView.visibility = VISIBLE
|
||||
}
|
||||
3 -> {
|
||||
mLightIconIV!!.setBackgroundResource(R.drawable.hmi_light_green_nor)
|
||||
this@SingleTrafficLightView.visibility = VISIBLE
|
||||
}
|
||||
else -> this@SingleTrafficLightView.visibility = GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun resetView(){
|
||||
val lp = this.layoutParams as MarginLayoutParams
|
||||
lp.width = context.resources.getDimension(R.dimen.hmi_traffic_light_layout_width).toInt()
|
||||
this.layoutParams = lp
|
||||
mLightTimeTV!!.visibility = View.VISIBLE
|
||||
mLightIconBG!!.layoutParams.width = context.resources.getDimension(R.dimen.hmi_traffic_light_bg_width).toInt()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -16,8 +16,6 @@ import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.model.MogoPoi;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.map.navi.MogoNaviInfo;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.map.uicontroller.VisualAngleMode;
|
||||
|
||||
@@ -31,7 +29,6 @@ import java.util.Iterator;
|
||||
* 事件回调分发中心
|
||||
*/
|
||||
public class EventDispatchCenter implements
|
||||
IMogoNaviListener,
|
||||
IMogoMarkerClickListener,
|
||||
IMogoCarLocationChangedListener2,
|
||||
IMogoMapListener,
|
||||
@@ -248,8 +245,6 @@ public class EventDispatchCenter implements
|
||||
|
||||
@Override
|
||||
public void onMapChanged(MogoLatLng location, float zoom, float tilt, float bearing) {
|
||||
|
||||
final long start = System.currentTimeMillis();
|
||||
Iterator<IMogoMapListener> iterator = MogoRegisterCenterHandler.getInstance().getMapListeners();
|
||||
if (iterator == null) {
|
||||
return;
|
||||
@@ -266,135 +261,6 @@ public class EventDispatchCenter implements
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitNaviFailure() {
|
||||
Iterator<IMogoNaviListener> iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
if (iterator == null) {
|
||||
return;
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
IMogoNaviListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
try {
|
||||
listener.onInitNaviFailure();
|
||||
} catch (Exception e) {
|
||||
CallerLogger.INSTANCE.e(M_MAIN + TAG, "onInitNaviFailure error : " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitNaviSuccess() {
|
||||
Iterator<IMogoNaviListener> iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
if (iterator == null) {
|
||||
return;
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
IMogoNaviListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
try {
|
||||
listener.onInitNaviSuccess();
|
||||
} catch (Exception e) {
|
||||
CallerLogger.INSTANCE.e(M_MAIN + TAG, "onInitNaviSuccess error : " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviInfoUpdate(MogoNaviInfo naviinfo) {
|
||||
Iterator<IMogoNaviListener> iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
|
||||
if (iterator == null) {
|
||||
return;
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
IMogoNaviListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
try {
|
||||
listener.onNaviInfoUpdate(naviinfo);
|
||||
} catch (Exception e) {
|
||||
CallerLogger.INSTANCE.e(M_MAIN + TAG, "onNaviInfoUpdate error : " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartNavi() {
|
||||
Iterator<IMogoNaviListener> iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
|
||||
if (iterator == null) {
|
||||
return;
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
IMogoNaviListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
try {
|
||||
listener.onStartNavi();
|
||||
} catch (Exception e) {
|
||||
CallerLogger.INSTANCE.e(M_MAIN + TAG, "onStartNavi error : " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopNavi() {
|
||||
Iterator<IMogoNaviListener> iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
if (iterator == null) {
|
||||
return;
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
IMogoNaviListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
try {
|
||||
listener.onStopNavi();
|
||||
} catch (Exception e) {
|
||||
CallerLogger.INSTANCE.e(M_MAIN + TAG, "onStopNavi error : " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCalculateSuccess() {
|
||||
Iterator<IMogoNaviListener> iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
if (iterator == null) {
|
||||
return;
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
IMogoNaviListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
try {
|
||||
listener.onCalculateSuccess();
|
||||
} catch (Exception e) {
|
||||
CallerLogger.INSTANCE.e(M_MAIN + TAG, "onCalculateSuccess error : " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoCalculateFailed() {
|
||||
Iterator<IMogoNaviListener> iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
if (iterator == null) {
|
||||
return;
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
IMogoNaviListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
try {
|
||||
listener.onoCalculateFailed();
|
||||
} catch (Exception e) {
|
||||
CallerLogger.INSTANCE.e(M_MAIN + TAG, "onoCalculateFailed error : " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onLocationChanged(MogoLocation location) {
|
||||
|
||||
|
||||
@@ -43,7 +43,6 @@ import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
|
||||
import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
|
||||
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
@@ -62,7 +61,6 @@ import java.util.Map;
|
||||
public class MainActivity extends MvpActivity<MainView, MainPresenter> implements MainView,
|
||||
IMogoLocationListener,
|
||||
IMogoStatusChangedListener,
|
||||
IMogoADASControlStatusChangedListener,
|
||||
FragmentStackTransactionListener {
|
||||
|
||||
protected static final String TAG = "MainActivity";
|
||||
@@ -195,8 +193,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
listenerRegister.registerMarkerClickListener(EventDispatchCenter.getInstance());
|
||||
}
|
||||
|
||||
initAdasControlStatusListener();
|
||||
|
||||
if (DebugConfig.isMapBased()) {
|
||||
EventDispatchCenter.getInstance().setMapLoadedCallback(() -> {
|
||||
CallerLogger.INSTANCE.d(M_MAIN + TAG, "map loaded." + Thread.currentThread().getName());
|
||||
@@ -208,7 +204,7 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
// TODO 这里临时兼容进入VR模式
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode(TAG, true);
|
||||
MogoMapListenerHandler.getInstance().onMapModeChanged(EnumMapUI.Type_VR);
|
||||
}, 3000);
|
||||
}, 1000);
|
||||
CallerLogger.INSTANCE.i(M_MAIN + TAG, "App launch timer cost " + (System.currentTimeMillis() - start) + "ms");
|
||||
});
|
||||
loadFunctionMapView();
|
||||
@@ -238,20 +234,18 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
*/
|
||||
protected void loadOthersModules() {
|
||||
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
|
||||
loadContainerModules();
|
||||
MogoModulesManager.getInstance().loadModules();
|
||||
MogoModulesManager.getInstance().loadFunctionModules();
|
||||
MogoModulesManager.getInstance().loadFunctionModulesServer();
|
||||
mPresenter.delayOperations();
|
||||
MogoModulesManager.getInstance().loadFunctionModulesServer();
|
||||
|
||||
// 启动一些基本的服务:定位等
|
||||
startBaseService();
|
||||
}
|
||||
|
||||
private void initAdasControlStatusListener() {
|
||||
mServiceApis.getRegisterCenterApi().registerADASControlStatusChangedListener(TAG, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动后台服务
|
||||
*/
|
||||
private void startBaseService() {
|
||||
Intent intentMainServicee = new Intent(this, MogoMainService.class);
|
||||
startService(intentMainServicee);
|
||||
@@ -261,10 +255,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
// startService(intentCarcorderService);
|
||||
}
|
||||
|
||||
protected void loadContainerModules() {
|
||||
//MogoModulesManager.getInstance().loadEventPanelModule(R.id.module_main_id_event_panel_fragment_container);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideCoverUpLayout() {
|
||||
getWindow().setBackgroundDrawable(null);
|
||||
@@ -302,16 +292,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
EventDispatchCenter.getInstance().onLocationChanged(location);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapUiModeChanged(EnumMapUI mapUI) {
|
||||
switch (mapUI) {
|
||||
case Type_Night:
|
||||
break;
|
||||
case Type_Light:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
@@ -378,7 +358,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
listenerRegister.unregisterMarkerClickListener();
|
||||
listenerRegister.unregisterHostMapListener();
|
||||
}
|
||||
mServiceApis.getRegisterCenterApi().unregisterADASControlStatusChangedListener(TAG);
|
||||
mMogoStatusManager.setMainPageLaunchedStatus(TAG, false);
|
||||
mMogoStatusManager.setMainPageIsBackgroundStatus(TAG, false);
|
||||
if (mMogoFragmentManager != null) {
|
||||
@@ -442,16 +421,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
CallerLogger.INSTANCE.d(M_MAIN + TAG, "requestCode: " + requestCode + " resultCode: " + resultCode);
|
||||
if (requestCode == REQUEST_CODE_DIALOG) {
|
||||
//申请悬浮窗权限
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 由于应用是单页面的,所以采用Fragment将各模块的UI进行分割解耦合
|
||||
*
|
||||
|
||||
@@ -15,9 +15,7 @@ import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
|
||||
import com.mogo.eagle.core.function.hmi.R;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
|
||||
/**
|
||||
* 针对作为Launcher的情况,做个性化操作
|
||||
@@ -34,7 +32,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
DebugConfig.setNeedRequestUserInfo(true);
|
||||
CallerLogger.INSTANCE.i(M_MAIN +TAG, "onCreate");
|
||||
CallerLogger.INSTANCE.i(M_MAIN + TAG, "onCreate");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -88,12 +86,9 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mServiceApis.getStatusManagerApi().unregisterStatusChangedListener(TAG,
|
||||
StatusDescriptor.VR_MODE, this);
|
||||
stopCountDown();
|
||||
try {
|
||||
// acc off 之后会出现进程还在,但是页面被杀的情况,这个直接杀掉进程,然后让整个进程重启
|
||||
@@ -103,21 +98,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapUiModeChanged(EnumMapUI mapUI) {
|
||||
super.onMapUiModeChanged(mapUI);
|
||||
Intent intent = new Intent("com.mogo.style.SKIN_CHANGED");
|
||||
intent.putExtra("type", -1);
|
||||
if (mapUI == EnumMapUI.Type_Light) {
|
||||
intent.putExtra("type", 1);
|
||||
} else if (mapUI == EnumMapUI.Type_Night) {
|
||||
intent.putExtra("type", 0);
|
||||
}
|
||||
sendBroadcast(intent);
|
||||
CallerLogger.INSTANCE.d(M_MAIN + TAG, "send msg to AI Voice");
|
||||
}
|
||||
|
||||
|
||||
private void stopCountDown() {
|
||||
if (runnableV2XEvent != null) {
|
||||
handlerV2XEvent.removeCallbacks(runnableV2XEvent);
|
||||
|
||||
@@ -6,6 +6,8 @@ import android.content.Context;
|
||||
import android.os.Process;
|
||||
|
||||
import com.bytedance.boost_multidex.BoostMultiDex;
|
||||
import com.mogo.aicloud.services.locationinfo.MogoLocationInfoServices;
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
||||
import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
|
||||
import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation;
|
||||
import com.mogo.cloud.passport.IMoGoTokenCallback;
|
||||
@@ -21,6 +23,7 @@ import com.mogo.eagle.core.data.constants.MoGoConfig;
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.api.chat.biz.ChatConsts;
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
|
||||
import com.mogo.eagle.core.function.notice.PushUIConstants;
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
|
||||
@@ -30,16 +33,15 @@ import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
|
||||
import com.mogo.eagle.core.utilcode.util.ProcessUtils;
|
||||
import com.mogo.map.MapApiPath;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.MogoModule;
|
||||
import com.mogo.module.common.MogoModulePaths;
|
||||
import com.mogo.module.common.constants.HostConst;
|
||||
import com.mogo.module.service.ServiceConst;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.cloud.socket.IMogoLifecycleListener;
|
||||
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
|
||||
import com.mogo.test.crashreport.CrashReportConstants;
|
||||
import com.mogo.test.crashreport.upgrade.UpgradeReportConstants;
|
||||
import com.zhidao.support.obu.ami.AmiClientManager;
|
||||
import com.zhjt.mogo_core_function_devatools.DevaToolsProvider;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
@@ -109,6 +111,8 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
|
||||
e.printStackTrace();
|
||||
}
|
||||
SocketBuildConfig.isPrintLog = false;
|
||||
// 初始化DevaTools,开始链路记录
|
||||
CallerDevaToolsManager.INSTANCE.init(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -265,24 +269,21 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
|
||||
*/
|
||||
private void uploadLocPerFiveSecond() {
|
||||
if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) {
|
||||
IMogoServiceApis apis = MogoApisHandler.getInstance().getApis();
|
||||
apis.getLocationInfoApi().start();
|
||||
MogoLocationInfoServices.getInstance().init(getApplicationContext());
|
||||
MogoLocationInfoServices.getInstance().start();
|
||||
IMogoLocationClient locationClient = CallerMapUIServiceManager.INSTANCE.getSingletonLocationClient(getApplicationContext());
|
||||
if (locationClient != null) {
|
||||
locationClient.addLocationListener(location -> {
|
||||
apis.getLocationInfoApi().provideLocation(location);
|
||||
});
|
||||
locationClient.addLocationListener(location -> MogoLocationInfoServices.getInstance().provideLocation(location));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void startSocketService() {
|
||||
CallerLogger.INSTANCE.d(M_MAIN + TAG, "startSocketService");
|
||||
IMogoServiceApis apis = MogoApisHandler.getInstance().getApis();
|
||||
MogoLocation location = CallerMapUIServiceManager.INSTANCE.getSingletonLocationClient(getApp()).getLastKnowLocation();
|
||||
// 关闭长链服务
|
||||
apis.getSocketManagerApi(getApplicationContext()).destroy();
|
||||
apis.getSocketManagerApi(this).registerLifecycleListener(10020, new IMogoLifecycleListener() {
|
||||
MogoAiCloudSocketManager.getInstance(getApplicationContext()).destroy();
|
||||
MogoAiCloudSocketManager.getInstance(getApplicationContext()).registerLifecycleListener(10020, new IMogoLifecycleListener() {
|
||||
@Override
|
||||
public void onConnectFailure() {
|
||||
CallerLogger.INSTANCE.d(M_MAIN + TAG, "socket-onConnectFailure");
|
||||
@@ -304,7 +305,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
|
||||
// 开启Socket长链服务
|
||||
double lat = location.getLatitude();
|
||||
double lon = location.getLongitude();
|
||||
apis.getSocketManagerApi(getApplicationContext()).init(getApplicationContext(), DebugConfig.getSocketAppId(),lat,lon);
|
||||
MogoAiCloudSocketManager.getInstance(getApplicationContext()).init(getApplicationContext(), DebugConfig.getSocketAppId(),lat,lon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -315,8 +316,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
|
||||
|
||||
private void initModules() {
|
||||
CallerLogger.INSTANCE.d(M_MAIN + TAG, "initModules");
|
||||
//mogo deva tools
|
||||
MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_DEVA_TOOLS, "IMoGoDevaToolsProvider"));
|
||||
// 初始化 bugly 升级
|
||||
MogoModulePaths.addBaseModule(new MogoModule(UpgradeReportConstants.PATH, UpgradeReportConstants.NAME));
|
||||
// 初始化 apm 日志采集
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
package com.mogo.eagle.core.function.main.delaycheck;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import okhttp3.RequestBody;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
/**
|
||||
* 时延验证相关接口
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public interface DelayCheckApiServices {
|
||||
|
||||
/**
|
||||
* 空接口
|
||||
* @return 什么都不返回
|
||||
*/
|
||||
@GET("/yycp-test-service/net/delay/heartbeat")
|
||||
Observable<BaseData> emptyInterface();
|
||||
|
||||
/**
|
||||
* 时延上报接口 接口文档如下
|
||||
* http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48967034
|
||||
* @param params 相关参数,详见文档
|
||||
* @return 相关返回值,详见文档
|
||||
*/
|
||||
@POST("/yycp-test-service/net/delay/log")
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
Observable<DelayCheckResponse> uploadDelayCheckData(@Body RequestBody params);
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package com.mogo.eagle.core.function.main.delaycheck;
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
|
||||
/**
|
||||
* dzt base url
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class DelayCheckHttpConstant {
|
||||
public static final String HOST_DEV = "http://dzt-test.zhidaozhixing.com";
|
||||
public static final String HOST_TEST = "http://dzt-test.zhidaozhixing.com";
|
||||
public static final String HOST_DEMO = "http://dzt-show.zhidaozhixing.com";
|
||||
public static final String HOST_PRODUCT = "http://dzt.zhidaozhixing.com";
|
||||
|
||||
public static String getBaseUrl(){
|
||||
switch ( DebugConfig.getNetMode() ) {
|
||||
case DebugConfig.NET_MODE_DEV:
|
||||
return HOST_DEV;
|
||||
case DebugConfig.NET_MODE_QA:
|
||||
return HOST_TEST;
|
||||
case DebugConfig.NET_MODE_DEMO:
|
||||
return HOST_DEMO;
|
||||
default:
|
||||
return HOST_PRODUCT;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
package com.mogo.eagle.core.function.main.delaycheck;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
/**
|
||||
* 延迟检测response
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class DelayCheckResponse extends BaseData {
|
||||
private DelayCheckResult result;
|
||||
|
||||
public DelayCheckResult getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(DelayCheckResult result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DelayCheckResponse{" +
|
||||
"result=" + result +
|
||||
", code=" + code +
|
||||
", msg='" + msg + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package com.mogo.eagle.core.function.main.delaycheck;
|
||||
|
||||
/**
|
||||
* 延迟检查返回结果
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class DelayCheckResult {
|
||||
/**
|
||||
* 是否保持心跳
|
||||
*/
|
||||
private boolean necessary;
|
||||
/**
|
||||
* 心跳间隔,单位 s
|
||||
*/
|
||||
private int beatSeconds;
|
||||
|
||||
public boolean isNecessary() {
|
||||
return necessary;
|
||||
}
|
||||
|
||||
public void setNecessary(boolean necessary) {
|
||||
this.necessary = necessary;
|
||||
}
|
||||
|
||||
public int getBeatSeconds() {
|
||||
return beatSeconds;
|
||||
}
|
||||
|
||||
public void setBeatSeconds(int beatSeconds) {
|
||||
this.beatSeconds = beatSeconds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DelayCheckResult{" +
|
||||
"necessary=" + necessary +
|
||||
", beatSeconds=" + beatSeconds +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package com.mogo.eagle.core.function.main.delaycheck;
|
||||
|
||||
/**
|
||||
* 时延检测上报请求参数
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class DelayCheckUploadRequest {
|
||||
private String sn;
|
||||
private long startTime;
|
||||
private long endTime;
|
||||
/**
|
||||
* 请求时长
|
||||
*/
|
||||
private long burning;
|
||||
/**
|
||||
* 信号强度
|
||||
*/
|
||||
private int netState;
|
||||
private String place;
|
||||
private String cityCode;
|
||||
private double lat;
|
||||
private double lon;
|
||||
|
||||
public String getSn() {
|
||||
return sn;
|
||||
}
|
||||
|
||||
public void setSn(String sn) {
|
||||
this.sn = sn;
|
||||
}
|
||||
|
||||
public long getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(long startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public long getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(long endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public long getBurning() {
|
||||
return burning;
|
||||
}
|
||||
|
||||
public void setBurning(long burning) {
|
||||
this.burning = burning;
|
||||
}
|
||||
|
||||
public int getNetState() {
|
||||
return netState;
|
||||
}
|
||||
|
||||
public void setNetState(int netState) {
|
||||
this.netState = netState;
|
||||
}
|
||||
|
||||
public String getPlace() {
|
||||
return place;
|
||||
}
|
||||
|
||||
public void setPlace(String place) {
|
||||
this.place = place;
|
||||
}
|
||||
|
||||
public String getCityCode() {
|
||||
return cityCode;
|
||||
}
|
||||
|
||||
public void setCityCode(String cityCode) {
|
||||
this.cityCode = cityCode;
|
||||
}
|
||||
|
||||
public double getLat() {
|
||||
return lat;
|
||||
}
|
||||
|
||||
public void setLat(double lat) {
|
||||
this.lat = lat;
|
||||
}
|
||||
|
||||
public double getLon() {
|
||||
return lon;
|
||||
}
|
||||
|
||||
public void setLon(double lon) {
|
||||
this.lon = lon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DelayCheckUploadRequest{" +
|
||||
"sn='" + sn + '\'' +
|
||||
", startTime=" + startTime +
|
||||
", endTime=" + endTime +
|
||||
", burning=" + burning +
|
||||
", netState=" + netState +
|
||||
", place='" + place + '\'' +
|
||||
", cityCode='" + cityCode + '\'' +
|
||||
", lat=" + lat +
|
||||
", lon=" + lon +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,155 +0,0 @@
|
||||
package com.mogo.eagle.core.function.main.delaycheck;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.os.SystemClock;
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory;
|
||||
import com.mogo.eagle.core.network.RequestOptions;
|
||||
import com.mogo.eagle.core.network.SubscribeImpl;
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil;
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.RequestBody;
|
||||
|
||||
/**
|
||||
* 延时验证工具类
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class DelayCheckUtil implements Handler.Callback {
|
||||
private final Handler handler = new Handler(this);
|
||||
|
||||
private static final int MSG_CHECK_NET_CONNECT_STATUS = 1001;
|
||||
/**
|
||||
* 首次延时检测时间间隔,暂定10分钟,等待机器稳定后再做打算
|
||||
*/
|
||||
private static final long FIRST_CHECK_NET_CONNECT_STATUS_DELAY = 10 * 60 * 1000;
|
||||
private static final long CHECK_NET_CONNECT_STATUS_DELAY = 5000L;
|
||||
|
||||
private static final int MSG_START_DELAY_CHECK = 1002;
|
||||
/**
|
||||
* 默认检测时间间隔,若服务端正确返回,以服务端返回为主
|
||||
*/
|
||||
private static final long DELAY_CHECK_DELAY = 10 * 60 * 1000;
|
||||
|
||||
private final Context context;
|
||||
|
||||
public DelayCheckUtil(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* 每5s检查一下网络状态,网络状态为连接状态时,开始空接口请求以及后续的参数上报
|
||||
*/
|
||||
public void waitingForCheck() {
|
||||
handler.sendEmptyMessageDelayed(MSG_CHECK_NET_CONNECT_STATUS, FIRST_CHECK_NET_CONNECT_STATUS_DELAY);
|
||||
}
|
||||
|
||||
private long requestTime, netDelay, requestStartSystemTime, requestEndSystem;
|
||||
|
||||
@Override
|
||||
public boolean handleMessage(Message msg) {
|
||||
switch (msg.what) {
|
||||
case MSG_CHECK_NET_CONNECT_STATUS:
|
||||
if (NetworkUtils.isConnected(context)) {
|
||||
handler.sendEmptyMessage(MSG_START_DELAY_CHECK);
|
||||
} else {
|
||||
handler.sendEmptyMessageDelayed(MSG_CHECK_NET_CONNECT_STATUS, CHECK_NET_CONNECT_STATUS_DELAY);
|
||||
}
|
||||
return true;
|
||||
case MSG_START_DELAY_CHECK:
|
||||
// 请求空接口
|
||||
startEmptyRequest();
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void startEmptyRequest() {
|
||||
requestTime = SystemClock.elapsedRealtime();
|
||||
requestStartSystemTime = System.currentTimeMillis();
|
||||
MoGoRetrofitFactory.getInstance(DelayCheckHttpConstant.getBaseUrl()).create(DelayCheckApiServices.class)
|
||||
.emptyInterface().subscribeOn(Schedulers.io()).observeOn(Schedulers.io())
|
||||
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(context)) {
|
||||
@Override
|
||||
public void onSuccess(BaseData o) {
|
||||
super.onSuccess(o);
|
||||
requestEndSystem = System.currentTimeMillis();
|
||||
netDelay = SystemClock.elapsedRealtime() - requestTime;
|
||||
startUpload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
handler.sendEmptyMessageDelayed(MSG_CHECK_NET_CONNECT_STATUS, CHECK_NET_CONNECT_STATUS_DELAY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String message, int code) {
|
||||
super.onError(message, code);
|
||||
handler.sendEmptyMessageDelayed(MSG_CHECK_NET_CONNECT_STATUS, CHECK_NET_CONNECT_STATUS_DELAY);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void startUpload() {
|
||||
IMogoLocationClient locationClient = CallerMapUIServiceManager.INSTANCE.getSingletonLocationClient(AbsMogoApplication.getApp());
|
||||
MogoLocation lastLocation = null;
|
||||
if (locationClient != null) {
|
||||
lastLocation = locationClient.getLastKnowLocation();
|
||||
}
|
||||
if (lastLocation == null) {
|
||||
handler.sendEmptyMessageDelayed(MSG_START_DELAY_CHECK, DELAY_CHECK_DELAY);
|
||||
return;
|
||||
}
|
||||
DelayCheckUploadRequest request = new DelayCheckUploadRequest();
|
||||
request.setSn(MoGoAiCloudClientConfig.getInstance().getSn());
|
||||
request.setStartTime(requestStartSystemTime);
|
||||
request.setEndTime(requestEndSystem);
|
||||
request.setNetState(NetworkUtils.netStrengthLevel);
|
||||
request.setPlace(lastLocation.getAddress());
|
||||
request.setCityCode(lastLocation.getCityCode());
|
||||
request.setLat(lastLocation.getLatitude());
|
||||
request.setLon(lastLocation.getLongitude());
|
||||
request.setBurning(netDelay);
|
||||
|
||||
RequestBody params = RequestBody.create(MediaType.get("application/json"), GsonUtil.jsonFromObject(request));
|
||||
|
||||
MoGoRetrofitFactory.getInstance(DelayCheckHttpConstant.getBaseUrl()).create(DelayCheckApiServices.class)
|
||||
.uploadDelayCheckData(params).observeOn(Schedulers.io()).subscribeOn(Schedulers.io())
|
||||
.subscribe(new SubscribeImpl<DelayCheckResponse>(RequestOptions.create(context)) {
|
||||
@Override
|
||||
public void onSuccess(DelayCheckResponse o) {
|
||||
super.onSuccess(o);
|
||||
DelayCheckResult result = o.getResult();
|
||||
if (result.isNecessary()) {
|
||||
handler.sendEmptyMessageDelayed(MSG_START_DELAY_CHECK, result.getBeatSeconds() * 1000L);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String message, int code) {
|
||||
super.onError(message, code);
|
||||
handler.sendEmptyMessageDelayed(MSG_CHECK_NET_CONNECT_STATUS, CHECK_NET_CONNECT_STATUS_DELAY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
handler.sendEmptyMessageDelayed(MSG_CHECK_NET_CONNECT_STATUS, CHECK_NET_CONNECT_STATUS_DELAY);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -8,9 +8,6 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoRegisterCenter;
|
||||
|
||||
import java.util.Iterator;
|
||||
@@ -24,16 +21,6 @@ import java.util.Iterator;
|
||||
@Route(path = MogoServicePaths.PATH_REGISTER_CENTER)
|
||||
public class MogoRegisterCenter implements IMogoRegisterCenter {
|
||||
|
||||
@Override
|
||||
public void registerMogoModuleLifecycle(String moduleName, IMogoModuleLifecycle lifecycle) {
|
||||
MogoRegisterCenterHandler.getInstance().registerMogoModuleLifecycle(moduleName, lifecycle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterMogoModuleLifecycle(String moduleName) {
|
||||
MogoRegisterCenterHandler.getInstance().unregisterMogoModuleLifecycle(moduleName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerMogoMapListener(String moduleName, IMogoMapListener listener) {
|
||||
MogoRegisterCenterHandler.getInstance().registerMogoMapListener(moduleName, listener);
|
||||
@@ -44,16 +31,6 @@ public class MogoRegisterCenter implements IMogoRegisterCenter {
|
||||
MogoRegisterCenterHandler.getInstance().unregisterMogoMapListener(moduleName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerMogoNaviListener(String moduleName, IMogoNaviListener listener) {
|
||||
MogoRegisterCenterHandler.getInstance().registerMogoNaviListener(moduleName, listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterMogoNaviListener(String moduleName) {
|
||||
MogoRegisterCenterHandler.getInstance().unregisterMogoNaviListener(moduleName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerMogoLocationListener(String moduleName, IMogoLocationListener listener) {
|
||||
MogoRegisterCenterHandler.getInstance().registerMogoLocationListener(moduleName, listener);
|
||||
@@ -99,21 +76,6 @@ public class MogoRegisterCenter implements IMogoRegisterCenter {
|
||||
MogoRegisterCenterHandler.getInstance().unregisterCarLocationChangedListener(tag, listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerADASControlStatusChangedListener(String tag, IMogoADASControlStatusChangedListener listener) {
|
||||
MogoRegisterCenterHandler.getInstance().registerADASControlStatusChangedListener(tag, listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterADASControlStatusChangedListener(String tag) {
|
||||
MogoRegisterCenterHandler.getInstance().unregisterADASControlStatusChangedListener(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<IMogoADASControlStatusChangedListener> getAdasControlStatusChangedListeners() {
|
||||
return MogoRegisterCenterHandler.getInstance().getAdasControlStatusChangedListeners();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
}
|
||||
|
||||
@@ -6,9 +6,6 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoRegisterCenter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -27,14 +24,11 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
|
||||
private static volatile MogoRegisterCenterHandler sInstance;
|
||||
|
||||
private final Map<String, IMogoModuleLifecycle> mLifecycle = new HashMap<>();
|
||||
private final Map<String, IMogoMapListener> mMap = new HashMap<>();
|
||||
private final Map<String, IMogoNaviListener> mNavi = new ConcurrentHashMap<>();
|
||||
private final Map<String, IMogoLocationListener> mLocation = new HashMap<>();
|
||||
private final Map<String, IMogoMarkerClickListener> mMarker = new HashMap<>();
|
||||
private final Map<String, ArrayList<IMogoMarkerClickListener>> mStaticMarker = new HashMap<>();
|
||||
private final Map<String, IMogoCarLocationChangedListener> mCarLocations = new ConcurrentHashMap<>();
|
||||
private final Map<String, IMogoADASControlStatusChangedListener> mADAS = new HashMap<>();
|
||||
|
||||
private MogoRegisterCenterHandler() {
|
||||
}
|
||||
@@ -54,17 +48,6 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
sInstance = null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void registerMogoModuleLifecycle(String tag, IMogoModuleLifecycle lifecycle) {
|
||||
mLifecycle.put(tag, lifecycle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterMogoModuleLifecycle(String tag) {
|
||||
mLifecycle.remove(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerMogoMapListener(String tag, IMogoMapListener listener) {
|
||||
mMap.put(tag, listener);
|
||||
@@ -75,16 +58,6 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
mMap.remove(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerMogoNaviListener(String tag, IMogoNaviListener listener) {
|
||||
mNavi.put(tag, listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterMogoNaviListener(String tag) {
|
||||
mNavi.remove(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerMogoLocationListener(String tag, IMogoLocationListener listener) {
|
||||
mLocation.put(tag, listener);
|
||||
@@ -136,16 +109,6 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
mCarLocations.remove(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerADASControlStatusChangedListener(String tag, IMogoADASControlStatusChangedListener listener) {
|
||||
mADAS.put(tag, listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterADASControlStatusChangedListener(String tag) {
|
||||
mADAS.remove(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
}
|
||||
@@ -162,10 +125,6 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
return mMap.values().iterator();
|
||||
}
|
||||
|
||||
public Iterator<IMogoNaviListener> getNaviListeners() {
|
||||
return mNavi.values().iterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<IMogoLocationListener> getLocationListeners() {
|
||||
return mLocation.values().iterator();
|
||||
@@ -175,8 +134,4 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
return mCarLocations.values().iterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<IMogoADASControlStatusChangedListener> getAdasControlStatusChangedListeners() {
|
||||
return mADAS.values().iterator();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.function.main.EventDispatchCenter;
|
||||
import com.mogo.eagle.core.function.main.cards.MogoModulesManager;
|
||||
import com.mogo.eagle.core.function.main.delaycheck.DelayCheckUtil;
|
||||
import com.mogo.eagle.core.function.main.monitoring.VehicleMonitoring;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
@@ -55,9 +54,6 @@ class MogoMainService extends Service implements IMogoLocationListener {
|
||||
HdMapBuildConfig.isMapLoaded = true;
|
||||
}, 5_000L
|
||||
);
|
||||
// 开启延时检测
|
||||
DelayCheckUtil delayCheckUtil = new DelayCheckUtil(this);
|
||||
delayCheckUtil.waitingForCheck();
|
||||
// 车辆检测
|
||||
VehicleMonitoring monitoring = new VehicleMonitoring(this);
|
||||
monitoring.vehicleCheck();
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#ff000000"/>
|
||||
<corners android:radius="@dimen/hmi_traffic_light_layout_corner"/>
|
||||
</shape>
|
||||
@@ -65,22 +65,19 @@
|
||||
android:layout_marginTop="45px"
|
||||
android:layout_marginEnd="40px"
|
||||
android:background="@drawable/icon_camera_nor"
|
||||
app:layout_constraintEnd_toStartOf="@id/viewTrafficLightVr"
|
||||
app:layout_constraintRight_toLeftOf="@id/viewTrafficLightVr"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<!--红绿灯-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.TrafficLightView
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.SingleTrafficLightView
|
||||
android:id="@+id/viewTrafficLightVr"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40px"
|
||||
android:layout_marginEnd="40px"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:visibility="visible" />
|
||||
android:layout_marginTop="@dimen/hmi_traffic_light_layout_margin_top"
|
||||
android:layout_marginRight="@dimen/hmi_traffic_light_layout_margin_right"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!--地图视角切换-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.PerspectiveSwitchView
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="@dimen/hmi_traffic_light_layout_width"
|
||||
android:layout_height="@dimen/hmi_traffic_light_layout_height"
|
||||
android:visibility="visible">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/hmi_traffic_light_bg"
|
||||
android:layout_width="@dimen/hmi_traffic_light_bg_width"
|
||||
android:layout_height="@dimen/hmi_traffic_light_bg_height"
|
||||
android:layout_marginStart="@dimen/hmi_traffic_light_bg_margin_left"
|
||||
android:layout_marginTop="@dimen/hmi_traffic_light_bg_margin_top"
|
||||
android:background="@drawable/traffic_light_bg"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/hmi_traffic_light_iv"
|
||||
android:layout_width="@dimen/hmi_traffic_light_icon_size"
|
||||
android:layout_height="@dimen/hmi_traffic_light_icon_size"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.GradientTextView
|
||||
android:id="@+id/hmi_traffic_light_time_tv"
|
||||
android:layout_width="@dimen/hmi_traffic_light_time_view_width"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:textSize="@dimen/hmi_traffic_light_time_size"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvUpgradeApkName"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/color_FF2966EC"
|
||||
android:padding="10dp"
|
||||
/>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginBottom="3dp"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
</ScrollView>
|
||||
|
||||
<ScrollView
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:id="@+id/svLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
@@ -245,28 +245,6 @@
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvObuAppInfo"
|
||||
style="@style/DebugSettingText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvObuHliInfo"
|
||||
style="@style/DebugSettingText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvObuSdkVersion"
|
||||
style="@style/DebugSettingText"
|
||||
@@ -1538,9 +1516,105 @@
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/btnApkCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/dp_10"
|
||||
android:background="@drawable/radio_button_normal_background_right"
|
||||
android:drawableEnd="@drawable/icon_right"
|
||||
android:padding="@dimen/dp_20"
|
||||
android:textOff="应用包管理中心"
|
||||
android:textOn="应用包管理中心"
|
||||
/>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/apkCenterLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivApkSearch"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:src="@drawable/icon_search"
|
||||
android:padding="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
android:id="@+id/etApkSearch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@id/ivApkSearch"
|
||||
app:layout_constraintTop_toTopOf="@id/ivApkSearch"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivApkSearch"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
android:background="@drawable/debug_setting_edit_bg"
|
||||
android:gravity="center"
|
||||
android:textColor="#1A1A1A"
|
||||
android:textSize="14sp"
|
||||
android:hint="请输入搜索关键字如版本号等"
|
||||
/>
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/cbApkOnline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/dp_10"
|
||||
android:text="Online"
|
||||
android:textColor="#000"
|
||||
android:textSize="@dimen/dp_24"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@id/cbApkQa"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivApkSearch"
|
||||
android:checked="true"
|
||||
/>
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/cbApkQa"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/dp_10"
|
||||
android:text="QA"
|
||||
android:textColor="#000"
|
||||
android:textSize="@dimen/dp_24"
|
||||
app:layout_constraintLeft_toRightOf="@id/cbApkOnline"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivApkSearch"
|
||||
android:checked="true"
|
||||
/>
|
||||
|
||||
<View
|
||||
android:id="@+id/apkSearchDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0"
|
||||
app:layout_constraintTop_toBottomOf="@id/cbApkQa"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvUpgradeVersionList"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/apkSearchDivider"
|
||||
android:nestedScrollingEnabled="false"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -37,4 +37,17 @@
|
||||
<dimen name="dp_580">580px</dimen>
|
||||
<dimen name="dp_588">588px</dimen>
|
||||
<dimen name="dp_1066">1066px</dimen>
|
||||
|
||||
<dimen name="hmi_traffic_light_layout_width">225px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_height">154px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_corner">60px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_right">40px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_top">23px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_width">210px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_height">120px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_margin_left">15px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_margin_top">17px</dimen>
|
||||
<dimen name="hmi_traffic_light_icon_size">154px</dimen>
|
||||
<dimen name="hmi_traffic_light_time_view_width">130px</dimen>
|
||||
<dimen name="hmi_traffic_light_time_size">60px</dimen>
|
||||
</resources>
|
||||
@@ -46,4 +46,11 @@
|
||||
<color name="dialog_bg_color">#3B4577</color>
|
||||
|
||||
<color name="turnlight_bg_color">#000000</color>
|
||||
|
||||
<color name="hmi_traffic_light_red_color_up">#FFFFA28B</color>
|
||||
<color name="hmi_traffic_light_red_color_down">#FFDA1100</color>
|
||||
<color name="hmi_traffic_light_green_color_up">#FF60FFD3</color>
|
||||
<color name="hmi_traffic_light_green_color_down">#FF006D43</color>
|
||||
<color name="hmi_traffic_light_yellow_color_up">#FFFFE198</color>
|
||||
<color name="hmi_traffic_light_yellow_color_down">#FFFF9B00</color>
|
||||
</resources>
|
||||
@@ -42,4 +42,16 @@
|
||||
<dimen name="brakelight_width">460px</dimen>
|
||||
<dimen name="brakelight_height">120px</dimen>
|
||||
|
||||
<dimen name="hmi_traffic_light_layout_width">225px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_height">154px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_corner">60px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_right">40px</dimen>
|
||||
<dimen name="hmi_traffic_light_layout_margin_top">23px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_width">210px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_height">120px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_margin_left">15px</dimen>
|
||||
<dimen name="hmi_traffic_light_bg_margin_top">17px</dimen>
|
||||
<dimen name="hmi_traffic_light_icon_size">154px</dimen>
|
||||
<dimen name="hmi_traffic_light_time_view_width">130px</dimen>
|
||||
<dimen name="hmi_traffic_light_time_size">60px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Automatically generated file. DO NOT MODIFY
|
||||
*/
|
||||
package com.mogo.eagle.core.function.main;
|
||||
|
||||
public final class BuildConfig {
|
||||
public static final boolean DEBUG = Boolean.parseBoolean("true");
|
||||
public static final String LIBRARY_PACKAGE_NAME = "com.mogo.eagle.core.function.main";
|
||||
/**
|
||||
* @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String APPLICATION_ID = "com.mogo.eagle.core.function.main";
|
||||
public static final String BUILD_TYPE = "debug";
|
||||
public static final String FLAVOR = "";
|
||||
public static final int VERSION_CODE = 1;
|
||||
public static final String VERSION_NAME = "0.0.58.10";
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.enums.RouteType;
|
||||
import com.alibaba.android.arouter.facade.model.RouteMeta;
|
||||
import com.alibaba.android.arouter.facade.template.IRouteGroup;
|
||||
import com.mogo.eagle.core.function.main.utils.DisplayEffectsManager;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Group$$displayeffects implements IRouteGroup {
|
||||
@Override
|
||||
public void loadInto(Map<String, RouteMeta> atlas) {
|
||||
atlas.put("/displayeffects/api", RouteMeta.build(RouteType.PROVIDER, DisplayEffectsManager.class, "/displayeffects/api", "displayeffects", null, -1, -2147483648));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.enums.RouteType;
|
||||
import com.alibaba.android.arouter.facade.model.RouteMeta;
|
||||
import com.alibaba.android.arouter.facade.template.IRouteGroup;
|
||||
import com.mogo.eagle.core.function.main.registercenter.MogoRegisterCenter;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Group$$registercenter implements IRouteGroup {
|
||||
@Override
|
||||
public void loadInto(Map<String, RouteMeta> atlas) {
|
||||
atlas.put("/registercenter/api", RouteMeta.build(RouteType.PROVIDER, MogoRegisterCenter.class, "/registercenter/api", "registercenter", null, -1, -2147483648));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.enums.RouteType;
|
||||
import com.alibaba.android.arouter.facade.model.RouteMeta;
|
||||
import com.alibaba.android.arouter.facade.template.IRouteGroup;
|
||||
import com.mogo.eagle.core.function.main.service.MogoMainService;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Group$$service implements IRouteGroup {
|
||||
@Override
|
||||
public void loadInto(Map<String, RouteMeta> atlas) {
|
||||
atlas.put("/service/base/info", RouteMeta.build(RouteType.SERVICE, MogoMainService.class, "/service/base/info", "service", null, -1, -2147483648));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.enums.RouteType;
|
||||
import com.alibaba.android.arouter.facade.model.RouteMeta;
|
||||
import com.alibaba.android.arouter.facade.template.IRouteGroup;
|
||||
import com.mogo.eagle.core.function.main.windowview.MogoWindowManager;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Group$$windowmanger implements IRouteGroup {
|
||||
@Override
|
||||
public void loadInto(Map<String, RouteMeta> atlas) {
|
||||
atlas.put("/windowmanger/api", RouteMeta.build(RouteType.PROVIDER, MogoWindowManager.class, "/windowmanger/api", "windowmanger", null, -1, -2147483648));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.enums.RouteType;
|
||||
import com.alibaba.android.arouter.facade.model.RouteMeta;
|
||||
import com.alibaba.android.arouter.facade.template.IProviderGroup;
|
||||
import com.mogo.eagle.core.function.main.registercenter.MogoRegisterCenter;
|
||||
import com.mogo.eagle.core.function.main.utils.DisplayEffectsManager;
|
||||
import com.mogo.eagle.core.function.main.windowview.MogoWindowManager;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Providers$$mogocorefunctionmain implements IProviderGroup {
|
||||
@Override
|
||||
public void loadInto(Map<String, RouteMeta> providers) {
|
||||
providers.put("com.mogo.service.module.IMogoRegisterCenter", RouteMeta.build(RouteType.PROVIDER, MogoRegisterCenter.class, "/registercenter/api", "registercenter", null, -1, -2147483648));
|
||||
providers.put("com.mogo.service.v2x.DisplayEffectsInterface", RouteMeta.build(RouteType.PROVIDER, DisplayEffectsManager.class, "/displayeffects/api", "displayeffects", null, -1, -2147483648));
|
||||
providers.put("com.mogo.service.windowview.IMogoWindowManager", RouteMeta.build(RouteType.PROVIDER, MogoWindowManager.class, "/windowmanger/api", "windowmanger", null, -1, -2147483648));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.alibaba.android.arouter.routes;
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IRouteGroup;
|
||||
import com.alibaba.android.arouter.facade.template.IRouteRoot;
|
||||
import java.lang.Class;
|
||||
import java.lang.Override;
|
||||
import java.lang.String;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
|
||||
public class ARouter$$Root$$mogocorefunctionmain implements IRouteRoot {
|
||||
@Override
|
||||
public void loadInto(Map<String, Class<? extends IRouteGroup>> routes) {
|
||||
routes.put("displayeffects", ARouter$$Group$$displayeffects.class);
|
||||
routes.put("registercenter", ARouter$$Group$$registercenter.class);
|
||||
routes.put("service", ARouter$$Group$$service.class);
|
||||
routes.put("windowmanger", ARouter$$Group$$windowmanger.class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.eagle.core.function.main"
|
||||
android:versionCode="1"
|
||||
android:versionName="0.0.58.10" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="19"
|
||||
android:targetSdkVersion="19" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
|
||||
<application>
|
||||
|
||||
<!--
|
||||
<!–保活用–>
|
||||
<service
|
||||
android:name="com.zhidao.boot.persistent.lib.PersistentAliveService"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="com.zhidao.boot.persistent.lib.action" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<activity
|
||||
android:name="com.zhidao.boot.persistent.lib.PersistentAliveActivity"
|
||||
android:resizeableActivity="false"
|
||||
android:screenOrientation="landscape"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
||||
-->
|
||||
<activity
|
||||
android:name="com.mogo.eagle.core.function.main.MainLauncherActivity"
|
||||
android:clearTaskOnLaunch="true"
|
||||
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize"
|
||||
android:enabled="true"
|
||||
android:launchMode="singleTop"
|
||||
android:resizeableActivity="false"
|
||||
android:resumeWhilePausing="true"
|
||||
android:screenOrientation="landscape"
|
||||
android:stateNotNeeded="true"
|
||||
android:theme="@style/Main"
|
||||
android:windowSoftInputMode="adjustPan|stateHidden" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<!-- 调试用,暂时开启LAUNCHER这个属性 -->
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
<category android:name="android.intent.category.LAUNCHER_APP" />
|
||||
<category android:name="android.intent.category.HOME" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<data
|
||||
android:host="launcher"
|
||||
android:path="/main/switch2"
|
||||
android:scheme="mogo" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<service
|
||||
android:name="com.mogo.eagle.core.function.main.service.MogoMainService"
|
||||
android:enabled="true"
|
||||
android:exported="true" >
|
||||
<intent-filter>
|
||||
<action android:name="com.mogo.launcher.action.MAIN_SERVICE" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1 @@
|
||||
[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"0.0.58.10","enabled":true,"outputFile":"mogo-core-function-main-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"com.mogo.eagle.core.function.main","split":""}}]
|
||||
@@ -0,0 +1 @@
|
||||
{}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-data/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-data/src/debug/jniLibs"/></dataSet></merger>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/foudations/mogo-aicloud-services-sdk/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/foudations/mogo-aicloud-services-sdk/src/debug/shaders"/></dataSet></merger>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-function-call/src/main/assets"/><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-function-call/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/arrowem/Documents/androidProject/Launcher/core/mogo-core-function-call/src/debug/assets"/></dataSet></merger>
|
||||
@@ -0,0 +1,22 @@
|
||||
#Sun Mar 27 14:04:29 CST 2022
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/module_main_launcher_bg.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_main_launcher_bg.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/wu2.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/wu2.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/layout/module_main_activity_main.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/layout/module_main_activity_main.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/module_main_warning_bkg_bottom.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_main_warning_bkg_bottom.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-mdpi/module_main_launcher_bg.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-mdpi-v4/module_main_launcher_bg.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/mogo_slogan.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/mogo_slogan.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/module_main_warning_bkg_top.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_main_warning_bkg_top.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/wu1.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/wu1.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-mdpi/mogo_slogan.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-mdpi-v4/mogo_slogan.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi-2560x1440/wu2.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-2560x1440-v4/wu2.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/module_main_warning_bkg_left.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_main_warning_bkg_left.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi/module_main_warning_bkg_right.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/module_main_warning_bkg_right.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable/main_bitmap_splash_icon.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable/main_bitmap_splash_icon.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable/main_splash_bg.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable/main_splash_bg.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable/module_main_dw_top_frame_bkg.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-ldpi/mogo_slogan.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-ldpi-v4/mogo_slogan.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable/main_bitmap_splash_bg.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable/main_bitmap_splash_bg.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-ldpi/module_main_launcher_bg.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-ldpi-v4/module_main_launcher_bg.png
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable/module_main_dw_left_frame_bkg.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable/module_main_dw_left_frame_bkg.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/layout/module_main_fragement_placeholder.xml=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/layout/module_main_fragement_placeholder.xml
|
||||
/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/src/main/res/drawable-xhdpi-2560x1440/wu1.png=/Users/arrowem/Documents/androidProject/Launcher/core/function-impl/mogo-core-function-main/build/intermediates/packaged_res/debug/drawable-xhdpi-2560x1440-v4/wu1.png
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="cards_container_dp_600">320px</dimen>
|
||||
<dimen name="cards_container_shadow_dp_margin_top">319px</dimen>
|
||||
<dimen name="module_event_fragment_container_padding">8px</dimen>
|
||||
<dimen name="module_ext_top_view_max_width">1920px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_padding">6px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_paddingBottom">2px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_paddingTop">2px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_width">110px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_height_div">10px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_width_div">20px</dimen>
|
||||
<dimen name="module_main_card_container_height">370px</dimen>
|
||||
<dimen name="module_main_card_container_marginBottom">140.5px</dimen>
|
||||
<dimen name="module_main_card_container_marginLeft">32px</dimen>
|
||||
<dimen name="module_main_card_container_marginTop">8px</dimen>
|
||||
<dimen name="module_main_card_container_paddingBottom">18px</dimen>
|
||||
<dimen name="module_main_card_container_width">352px</dimen>
|
||||
<dimen name="module_main_card_cover_up_margin">352px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode">0px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_out_vr_mode">444px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">10px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">16px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_width">658px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingBottom">0px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingLeft">6px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingRight">6px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingTop">0px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">460px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginTop">15px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">444px</dimen>
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">350px</dimen>
|
||||
<dimen name="module_main_map_left_shadow_frame_width">350px</dimen>
|
||||
<dimen name="module_main_panel_margin_right">0px</dimen>
|
||||
<dimen name="module_main_top_shadow_height">144px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="cards_container_dp_600">600px</dimen>
|
||||
<dimen name="cards_container_shadow_dp_margin_top">599px</dimen>
|
||||
<dimen name="module_event_fragment_container_padding">20px</dimen>
|
||||
<dimen name="module_ext_top_view_max_width">1920px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_padding">20px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_paddingBottom">20px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_paddingTop">20px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_width">200px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_height_div">15px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_width_div">30px</dimen>
|
||||
<dimen name="module_main_card_container_height">690px</dimen>
|
||||
<dimen name="module_main_card_container_marginBottom">211px</dimen>
|
||||
<dimen name="module_main_card_container_marginLeft">60px</dimen>
|
||||
<dimen name="module_main_card_container_marginTop">10px</dimen>
|
||||
<dimen name="module_main_card_container_paddingBottom">30px</dimen>
|
||||
<dimen name="module_main_card_container_width">660px</dimen>
|
||||
<dimen name="module_main_card_cover_up_margin">660px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode">0px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_out_vr_mode">800px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">30px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">70px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_width">1263px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">830px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginTop">30px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">590px</dimen>
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">635px</dimen>
|
||||
<dimen name="module_main_map_left_shadow_frame_width">350px</dimen>
|
||||
<dimen name="module_main_panel_margin_right">0px</dimen>
|
||||
<dimen name="module_main_top_shadow_height">270px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="cards_container_dp_600">600px</dimen>
|
||||
<dimen name="cards_container_shadow_dp_margin_top">599px</dimen>
|
||||
<dimen name="module_event_fragment_container_padding">20px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_padding">20px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_paddingTop">20px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_width">200px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_height_div">15px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_width_div">30px</dimen>
|
||||
<dimen name="module_main_card_container_height">690px</dimen>
|
||||
<dimen name="module_main_card_container_marginBottom">211px</dimen>
|
||||
<dimen name="module_main_card_container_marginLeft">60px</dimen>
|
||||
<dimen name="module_main_card_container_marginTop">10px</dimen>
|
||||
<dimen name="module_main_card_container_paddingBottom">30px</dimen>
|
||||
<dimen name="module_main_card_container_width">660px</dimen>
|
||||
<dimen name="module_main_card_cover_up_margin">660px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode">0px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_out_vr_mode">800px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">20px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">30px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_width">1313px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingBottom">18px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingLeft">18px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingRight">18px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingTop">20px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">830px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginTop">30px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">800px</dimen>
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">340px</dimen>
|
||||
<dimen name="module_main_map_left_shadow_frame_width">350px</dimen>
|
||||
<dimen name="module_main_top_shadow_height">270px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:ns1="http://schemas.android.com/tools">
|
||||
<color name="module_main_window_background_color">#212831</color>
|
||||
<dimen name="cards_container_dp_600">320px</dimen>
|
||||
<dimen name="cards_container_shadow_dp_margin_top">319px</dimen>
|
||||
<dimen name="module_event_fragment_container_padding">8px</dimen>
|
||||
<dimen name="module_ext_top_view_max_width">1920px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_padding">6px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_paddingBottom">2px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_paddingTop">8px</dimen>
|
||||
<dimen name="module_main_apps_fragment_container_width">110px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_height_div">10px</dimen>
|
||||
<dimen name="module_main_card_card_shadow_width_div">20px</dimen>
|
||||
<dimen name="module_main_card_container_height">370px</dimen>
|
||||
<dimen name="module_main_card_container_marginBottom">140.5px</dimen>
|
||||
<dimen name="module_main_card_container_marginLeft">32px</dimen>
|
||||
<dimen name="module_main_card_container_marginTop">8px</dimen>
|
||||
<dimen name="module_main_card_container_paddingBottom">18px</dimen>
|
||||
<dimen name="module_main_card_container_width">352px</dimen>
|
||||
<dimen name="module_main_card_cover_up_margin">352px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode">0px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_out_vr_mode">800px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">10px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">16px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_width">658px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingBottom">2px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingLeft">2px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingRight">4px</dimen>
|
||||
<dimen name="module_main_event_panel_fragment_paddingTop">2px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">460px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginTop">15px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">444px</dimen>
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">350px</dimen>
|
||||
<dimen name="module_main_map_left_shadow_frame_width">350px</dimen>
|
||||
<dimen name="module_main_panel_margin_right">0px</dimen>
|
||||
<dimen name="module_main_top_shadow_height">144px</dimen>
|
||||
<string name="app_name">mogo-module-main</string>
|
||||
<style name="Main" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="android:windowTranslucentStatus">false</item>
|
||||
<item name="android:statusBarColor" ns1:ignore="NewApi">@null</item>
|
||||
<item name="android:windowEnterAnimation">@null</item>
|
||||
<item name="android:windowExitAnimation">@null</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowBackground">@drawable/main_bitmap_splash_bg</item>
|
||||
<item name="android:windowTranslucentNavigation">false</item>
|
||||
<item name="android:windowAnimationStyle">@style/MainAnimation</item>
|
||||
<item name="checkboxStyle">@style/noCheckboxStyle</item>
|
||||
<item name="android:windowFullscreen">false</item>
|
||||
<item name="radioButtonStyle">@style/noCheckboxStyle</item>
|
||||
</style>
|
||||
<style name="MainAnimation">
|
||||
<item name="android:activityOpenEnterAnimation">@null</item>
|
||||
<item name="android:activityOpenExitAnimation">@null</item>
|
||||
<item name="android:activityCloseEnterAnimation">@null</item>
|
||||
<item name="android:activityCloseExitAnimation">@null</item>
|
||||
<item name="android:taskOpenEnterAnimation">@null</item>
|
||||
<item name="android:taskOpenExitAnimation">@null</item>
|
||||
<item name="android:taskCloseEnterAnimation">@null</item>
|
||||
<item name="android:taskCloseExitAnimation">@null</item>
|
||||
<item name="android:taskToFrontEnterAnimation">@null</item>
|
||||
<item name="android:taskToFrontExitAnimation">@null</item>
|
||||
<item name="android:taskToBackEnterAnimation">@null</item>
|
||||
<item name="android:taskToBackExitAnimation">@null</item>
|
||||
</style>
|
||||
<style name="noCheckboxStyle" parent="Widget.AppCompat.CompoundButton.CheckBox">
|
||||
<item name="buttonCompat">@null</item>
|
||||
<item name="android:background">@null</item>
|
||||
</style>
|
||||
<style name="noRadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
|
||||
<item name="buttonCompat">@null</item>
|
||||
<item name="android:background">@null</item>
|
||||
</style>
|
||||
</resources>
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user