diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/OchBusProvider.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/OchBusProvider.java index f36d0a0d07..a70b54a1e6 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/OchBusProvider.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/OchBusProvider.java @@ -1,12 +1,14 @@ package com.mogo.och.bus; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; + import android.content.Context; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.MogoMapUIController; import com.mogo.module.common.MogoApisHandler; @@ -36,7 +38,7 @@ public class OchBusProvider implements IMogoOCH { * 进入鹰眼模式,设置手势缩放地图失效 */ private void stepIntoVrMode(){ - Logger.d( TAG, "进入vr模式" ); + CallerLogger.INSTANCE.d( M_BUS + TAG, "进入vr模式" ); MogoMapUIController.getInstance() .openVrMode(false); } @@ -51,18 +53,18 @@ public class OchBusProvider implements IMogoOCH { private void showFragment() { if (busFragment == null) { - Logger.d(TAG, "准备add fragment======"); + CallerLogger.INSTANCE.d(TAG, "准备add fragment======"); busFragment = new OchBusFragment(); activity.getSupportFragmentManager().beginTransaction().add(containerId, busFragment).commitAllowingStateLoss(); return; } - Logger.d(TAG, "准备show fragment"); + CallerLogger.INSTANCE.d(TAG, "准备show fragment"); activity.getSupportFragmentManager().beginTransaction().show(busFragment).commitAllowingStateLoss(); } private void hideFragment() { if (busFragment != null) { - Logger.d(TAG, "准备hide fragment"); + CallerLogger.INSTANCE.d(TAG, "准备hide fragment"); activity.getSupportFragmentManager().beginTransaction().hide(busFragment).commitAllowingStateLoss(); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/adapter/OchBusStationAdapter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/adapter/OchBusStationAdapter.java index abaf285126..8322cd8a35 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/adapter/OchBusStationAdapter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/adapter/OchBusStationAdapter.java @@ -53,7 +53,7 @@ public class OchBusStationAdapter extends RecyclerView.Adapter { - Log.d(TAG, "长按显示状态工具栏"); + CallerLogger.INSTANCE.d(M_BUS + TAG, "长按显示状态工具栏"); Intent intent = new Intent(); intent.putExtra("oper", 52); MogoApisHandler.getInstance().getApis().getIntentManagerApi().invoke("com.mogo.mock", intent); @@ -299,7 +300,7 @@ public abstract class BaseOchBusTabFragment stationList, int currentStation , int nextStation, boolean isArrived) { - Log.d("MapMaker= ", "currentStation=" + currentStation + ",nextStation=" + nextStation + "isArrived=" + isArrived); + CallerLogger.INSTANCE.d(M_BUS + "MapMaker ", "currentStation=" + currentStation + ",nextStation=" + nextStation + "isArrived=" + isArrived); String currentStationName = null; String nextStationName = null; int startStationFlagVisibility = View.INVISIBLE; @@ -174,13 +172,13 @@ public class OchBusFragment extends BaseOchBusTabFragment aLong + 1)) @@ -44,7 +46,7 @@ public class OchBusModelLoopManager { public void stopHeartbeatLoop() { if (mHeartbeatDisposable != null) { - Logger.i(TAG, "stopHeartbeatLoop()"); + CallerLogger.INSTANCE.i(M_BUS + TAG, "stopHeartbeatLoop()"); mHeartbeatDisposable.dispose(); mHeartbeatDisposable = null; } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java index d3d7836fa3..556b70ce1a 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java @@ -1,5 +1,6 @@ package com.mogo.och.bus.presenter; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; import static com.mogo.och.bus.constant.OchBusConst.STATION_STATUS_STOPPED; import android.content.Context; @@ -7,20 +8,18 @@ import android.location.Location; import android.os.Handler; import android.os.Message; import android.text.TextUtils; -import android.util.Log; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -148,31 +147,31 @@ public class OchBusOrderModel { public void accept(Throwable e) { if (e instanceof UndeliverableException) { e = e.getCause(); - Log.d(TAG,"UndeliverableException"); + CallerLogger.INSTANCE.d(M_BUS + TAG,"UndeliverableException"); } if ((e instanceof IOException)) {// // fine, irrelevant network problem or API that throws on cancellation - Log.d(TAG,"IOException"); + CallerLogger.INSTANCE.d(M_BUS + TAG,"IOException"); return; } if (e instanceof InterruptedException) { // fine, some blocking code was interrupted by a dispose call - Log.d(TAG,"InterruptedException"); + CallerLogger.INSTANCE.d(M_BUS + TAG,"InterruptedException"); return; } if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { // that's likely a bug in the application - Log.d(TAG,"NullPointerException or IllegalArgumentException"); + CallerLogger.INSTANCE.d(M_BUS + TAG,"NullPointerException or IllegalArgumentException"); Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } if (e instanceof IllegalStateException) { // that's a bug in RxJava or in a custom operator - Log.d(TAG,"IllegalStateException"); + CallerLogger.INSTANCE.d(M_BUS + TAG,"IllegalStateException"); Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } - Log.d(TAG,"Undeliverable exception"); + CallerLogger.INSTANCE.d(M_BUS + TAG,"Undeliverable exception"); } }); @@ -216,7 +215,7 @@ public class OchBusOrderModel { @Override public void onSuccess(OchBusOrdersResponse o) { if (o.data != null && o.data.orders != null && o.data.orders.size() > 0) { - Logger.d( TAG, "获取到bus订单数据: " + o.data.orders.toString() ); + CallerLogger.INSTANCE.d( M_BUS + TAG, "获取到bus订单数据: " + o.data.orders.toString() ); List busOrders = o.data.orders; for (int i = 0; i < busOrders.size(); i++) { OchBusOrder order = busOrders.get(i); @@ -231,7 +230,7 @@ public class OchBusOrderModel { e.printStackTrace(); tailNum = order.getPassengerPhone(); } - Logger.d(TAG, "TTS:" + tailNum); + CallerLogger.INSTANCE.d(M_BUS + TAG, "TTS:" + tailNum); AIAssist.getInstance(mContext).speakTTSVoice("接到新订单,尾号 " + tailNum + " 上车站点为 " + order.getStartStationName()); prevBusOrderNos.add(order.getOrderNo()); @@ -284,11 +283,11 @@ public class OchBusOrderModel { }; // 自车定位 - private IMogoCarLocationChangedListener2 mCarLocationChangedListener2 = new IMogoCarLocationChangedListener2() { + private final IMogoCarLocationChangedListener2 mCarLocationChangedListener2 = new IMogoCarLocationChangedListener2() { @Override public void onCarLocationChanged2( Location location ) { -// Log.d(TAG,"location = "+location.getLongitude()+","+location.getLatitude()); +// CallerLogger.INSTANCE.d(M_BUS + TAG,"location = "+location.getLongitude()+","+location.getLatitude()); IMogoServiceApis apis = MogoApisHandler.getInstance().getApis(); MogoLocation mogoLocation = new MogoLocation(); mogoLocation.setAccuracy(location.getAccuracy()); @@ -320,7 +319,7 @@ public class OchBusOrderModel { * 查询小巴路线 */ public void queryBusRoutes() { - Logger.d( TAG, "查询小巴路线"); + CallerLogger.INSTANCE.d(M_BUS + TAG, "查询小巴路线"); OCHBusServiceManager.getInstance().queryBusRoutes(mContext, new OCHServiceCallback() { @Override public void onSuccess(OchBusRoutesResponse data) { @@ -330,7 +329,7 @@ public class OchBusOrderModel { || data.getResult().getSites().isEmpty() ) { return; } - Logger.d( TAG, "获取到小巴路线数据: " + data ); + CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + data ); renderBusStationsStatus( data.getResult()); } @Override @@ -346,12 +345,12 @@ public class OchBusOrderModel { * 测试、重置站点状态 */ public void debugResetStationStatus() { - Logger.d( TAG, "测试、重置站点状态"); + CallerLogger.INSTANCE.d( M_BUS + TAG, "测试、重置站点状态"); OCHBusServiceManager.getInstance().resetStationStatus(mContext, currentLineId , new OCHServiceCallback() { @Override public void onSuccess(OchBusRoutesResponse o) { - Logger.d(TAG, "获取到小巴路线数据: " + o); + CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + o); isGoingToNextStation = false; if (o.getResult() == null || o.getResult().getSites() == null || o.getResult().getSites().isEmpty()) { return; @@ -372,7 +371,7 @@ public class OchBusOrderModel { * 离站上报 */ public void leaveStation(boolean isOneWayOver,boolean isRestart){ - Log.d(TAG,"leaveStation-backgroundCurrentStationIndex = "+backgroundCurrentStationIndex); + CallerLogger.INSTANCE.d(M_BUS + TAG,"leaveStation-backgroundCurrentStationIndex = "+backgroundCurrentStationIndex); OCHBusServiceManager.getInstance().leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq() , stationList.get(backgroundCurrentStationIndex).getSiteId(), new OCHServiceCallback() { @Override @@ -381,11 +380,11 @@ public class OchBusOrderModel { return; } if (!isOneWayOver){ - Logger.d( TAG, "自动驾驶开启开往下一站====" ); + CallerLogger.INSTANCE.d( M_BUS + TAG, "自动驾驶开启开往下一站====" ); //需要更改当前站和下一站的状态 然后渲染 RenderLeaveStationSuccess(o.getResult(),isRestart); }else { - Logger.d( TAG, "单程真的结束了====" ); + CallerLogger.INSTANCE.d( M_BUS + TAG, "单程真的结束了====" ); isGoingToNextStation = false; currentStationIndex = 0; backgroundCurrentStationIndex = 0; @@ -443,7 +442,7 @@ public class OchBusOrderModel { currentAutopilot.endLatLon = new AutopilotControlParameters .AutoPilotLonLat( nextStation.getLat(), nextStation.getLon() ); currentAutopilot.vehicleType = VEHICLE_TYPE; - Logger.d( TAG, "开启自动驾驶====" + currentAutopilot.toString() + CallerLogger.INSTANCE.d( M_BUS + TAG, "开启自动驾驶====" + currentAutopilot.toString() +" startLatLon="+currentStation.getName()+",endLatLon="+nextStation.getName()); CallerAutoPilotManager.INSTANCE.startAutoPilot(currentAutopilot); if (mControllerStatusCallback != null) { @@ -455,13 +454,13 @@ public class OchBusOrderModel { * 到站后重置站点状态 */ private void arriveSiteStation(boolean isRestart) { - Log.d(TAG,"arriveSiteStation-currentStationIndex = "+currentStationIndex); + CallerLogger.INSTANCE.d(M_BUS + TAG,"arriveSiteStation-currentStationIndex = "+currentStationIndex); OCHBusServiceManager.getInstance().arriveSiteStation(mContext , stationList.get(currentStationIndex).getSeq(), stationList.get(currentStationIndex).getSiteId() , new OCHServiceCallback() { @Override public void onSuccess(BaseData o) { - Log.d(TAG,"arriveSiteStation success"); + CallerLogger.INSTANCE.d(M_BUS + TAG,"arriveSiteStation success"); if (!isRestart){ renderArriveBusStation(); } @@ -491,7 +490,7 @@ public class OchBusOrderModel { * 查询到站下车乘客 */ private void queryStationLeaveAwayPassengers() { - Logger.d( TAG, "查询到站下车乘客"); + CallerLogger.INSTANCE.d( M_BUS + TAG, "查询到站下车乘客"); OCHBusServiceManager.getInstance().queryStationLeaveAwayPassengers(mContext , stationList.get(currentStationIndex).getSeq(), stationList.get(currentStationIndex).getSiteId() @@ -565,14 +564,14 @@ public class OchBusOrderModel { * 查询运营状态 */ public void queryOperationStatus() { - Logger.d( TAG, "查询运营状态"); + CallerLogger.INSTANCE.d( M_BUS + TAG, "查询运营状态"); OCHBusServiceManager.getInstance().queryOperationStatus(mContext , new OCHServiceCallback() { @Override public void onSuccess(OchBusOperationStatusResponse o) { if ( o.data != null ) { mIsWorking = o.data.serviceStatus == 1; - Logger.d( TAG, "查询运营状态 result.status: " + o.data.serviceStatus); + CallerLogger.INSTANCE.d( M_BUS + TAG, "查询运营状态 result.status: " + o.data.serviceStatus); startOrStopOrderLoop(mIsWorking); } carOperationStatusCallback.changeOperationStatus(isWorking()); @@ -625,7 +624,7 @@ public class OchBusOrderModel { } backgroundCurrentStationIndex = currentStationIndex; OchBusStation currentStation = stationList.get(currentStationIndex); - Logger.d( TAG, "渲染站点信息服务端currentStationIndex="+currentStationIndex + CallerLogger.INSTANCE.d( M_BUS + TAG, "渲染站点信息服务端currentStationIndex="+currentStationIndex +" isLeaving()="+currentStation.isLeaving()); //当前站点是始发站,告诉服务端到达始发站。 如果没有这个节点, 服务器不知道始发站到达状态 // ,订单开始站下在始发站的状态流转有问题 @@ -637,7 +636,7 @@ public class OchBusOrderModel { && currentStationIndex < stationList.size()-1) || (stationList.get(0).isLeaving() || stationList.get(stationList.size() -1).isLeaving()))){//行驶过程中设置美化 FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - Logger.d(TAG, "美化模式-ignore:置为true(每次滑动出发)"); + CallerLogger.INSTANCE.d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)"); } if (refreshBusStationsCallback != null){ if (currentStation.isLeaving()){//如果服务端的当前站是leaving状态,展示当前站需要+1 @@ -660,7 +659,7 @@ public class OchBusOrderModel { * @param lastStopStation */ private void resetNextStopStation( int lastStopStation ) { - Logger.d( TAG, "重置下一站"); + CallerLogger.INSTANCE.d( M_BUS + TAG, "重置下一站"); int nextStopStation = getNextStopStation(); if ( nextStopStation < 0 ) { return; @@ -705,7 +704,7 @@ public class OchBusOrderModel { * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地 */ public void restartAutopilot() { - Logger.d( TAG, "重启自动驾驶===" + isGoingToNextStation ); + CallerLogger.INSTANCE.d( M_BUS + TAG, "重启自动驾驶===" + isGoingToNextStation ); if ( isGoingToNextStation ) { autoDriveToNextStation( true ); } @@ -717,7 +716,7 @@ public class OchBusOrderModel { * @param awayPassengersResponse */ private void playLeavePassengersMsg( QueryLeaveAwayPassengersResponse awayPassengersResponse ) { - Logger.d( TAG, "播报下车乘客信息currentStationIndex="+currentStationIndex); + CallerLogger.INSTANCE.d( M_BUS + TAG, "播报下车乘客信息currentStationIndex="+currentStationIndex); if ( currentStationIndex > stationList.size() - 1 ) { return; @@ -730,7 +729,7 @@ public class OchBusOrderModel { } if ( awayPassengersResponse == null || awayPassengersResponse.data == null || awayPassengersResponse.data.orders == null || awayPassengersResponse.data.orders.isEmpty() ) { - Logger.d( TAG, "播报下车乘客信息为null"); + CallerLogger.INSTANCE.d( M_BUS + TAG, "播报下车乘客信息为null"); } else { builder.append( ",请尾号为 " ); for ( QueryLeaveAwayPassengersResponse.LeaveAwayPassenger leaveAwayPassenger : awayPassengersResponse.data.orders ) { @@ -749,7 +748,7 @@ public class OchBusOrderModel { builder.append( "的乘客下车" ); } builder.append(",带好随身物品,下车请注意安全"); - Logger.d(TAG, "TTS:" + builder.toString()); + CallerLogger.INSTANCE.d(M_BUS + TAG, "TTS:" + builder.toString()); AIAssist.getInstance( mContext ).speakTTSVoice( builder.toString() ); } @@ -757,7 +756,7 @@ public class OchBusOrderModel { * 修改小巴运营状态 */ public void onChangeOperationStatus() { - Logger.d( TAG, "修改小巴运营状态"); + CallerLogger.INSTANCE.d( M_BUS + TAG, "修改小巴运营状态"); if (isWorking()){//收车 stopTakeOrder(); }else {//出车 @@ -769,13 +768,13 @@ public class OchBusOrderModel { * 行程结束 */ private void travelOver() { -// Logger.d( TAG, "行程结束"); +// CallerLogger.INSTANCE.d( M_BUS + TAG, "行程结束"); if ( currentStationIndex >= stationList.size() ) { - Logger.e( TAG, "travel over index out of station list" ); + CallerLogger.INSTANCE.e( M_BUS + TAG, "travel over index out of station list" ); return; } - Logger.d( TAG, "单程结束====" ); + CallerLogger.INSTANCE.d( M_BUS + TAG, "单程结束====" ); CallerAutoPilotManager.INSTANCE.cancelAutoPilot(); AIAssist.getInstance( mContext ).speakTTSVoice( "感谢您体验'蘑菇车联'无人驾驶小巴车,请您携带好随身物品,我们下次再见" ); leaveStation(true,true); @@ -791,14 +790,14 @@ public class OchBusOrderModel { */ public void onArriveAt( MessagePad.ArrivalNotification data){ if ( currentStationIndex > stationList.size() - 1 ) { - Logger.e( TAG, "到站异常,取消后续操作结束" ); + CallerLogger.INSTANCE.e( M_BUS + TAG, "到站异常,取消后续操作结束" ); return; } if (FunctionBuildConfig.isDemoMode && currentStationIndex == stationList.size() - 1){//到达最后一站结束美化 FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; - Logger.d(TAG, "美化模式-ignore:置为false(到最后一站)"); + CallerLogger.INSTANCE.d(M_BUS + TAG, "美化模式-ignore:置为false(到最后一站)"); } - Logger.d( TAG, "到站====currentStationIndex=" + currentStationIndex); + CallerLogger.INSTANCE.d( M_BUS + TAG, "到站====currentStationIndex=" + currentStationIndex); isGoingToNextStation = false; // 到达站点后,更新站点状态 // currentStationIndex = getNextStopStation(); @@ -835,7 +834,7 @@ public class OchBusOrderModel { } private void startOrStopOrderLoop(boolean start) { - Logger.d(TAG, "startOrStopOrderLoop() " + start); + CallerLogger.INSTANCE.d(M_BUS + TAG, "startOrStopOrderLoop() " + start); if (start) { OchBusModelLoopManager.getInstance().startHeartbeatLoop(); } else { diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java index b1886bb4fc..00664fb7d5 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java @@ -1,8 +1,9 @@ package com.mogo.och.bus.presenter; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; + import android.location.Location; import android.os.Looper; -import android.util.Log; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; @@ -12,7 +13,7 @@ import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.bus.bean.OchBusStation; import com.mogo.och.bus.callback.CarOperationStatusCallback; @@ -116,14 +117,14 @@ public class OchBusPresenter extends Presenter mStationList.addAll(stationList); mCurrentStation = currentStation; functionDemoModeChange(); - Log.d("OchBusOrderModel =", " mCurrentStation =" + mCurrentStation); + CallerLogger.INSTANCE.d(M_BUS + "OchBusOrderModel =", " mCurrentStation =" + mCurrentStation); if (mView != null) { mView.refreshBusStations(stationList, currentStation, nextStation, isArrived); } } private void functionDemoModeChange() { -// Log.d("OchBusOrderModel ="," functionDemoModeChange ="+mCurrentStation); +// CallerLogger.INSTANCE.d(M_BUS + "OchBusOrderModel ="," functionDemoModeChange ="+mCurrentStation); if (FunctionBuildConfig.isDemoMode && ( (mCurrentStation > 0 && mCurrentStation < mStationList.size() - 1) @@ -158,7 +159,7 @@ public class OchBusPresenter extends Presenter public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) { if (autopilotStatusInfo == null) return; int state = autopilotStatusInfo.getState(); - Logger.d(TAG, "onStateChange: " + state + "currentAutopilotStatus = " + currentAutopilotStatus); + CallerLogger.INSTANCE.d(M_BUS + TAG, "onStateChange: " + state + "currentAutopilotStatus = " + currentAutopilotStatus); switch (state) { case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE: if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { @@ -180,7 +181,7 @@ public class OchBusPresenter extends Presenter ) ) ) { - Log.d("OchBusOrderModel=", "有美化功能"); + CallerLogger.INSTANCE.d(M_BUS + "OchBusOrderModel=", "有美化功能"); return; } // 改变UI自动驾驶状态 @@ -211,7 +212,7 @@ public class OchBusPresenter extends Presenter ) ) ) { - Log.d("OchBusOrderModel=", "有美化功能"); + CallerLogger.INSTANCE.d(M_BUS + "OchBusOrderModel=", "有美化功能"); return; } mView.onAutopilotEnableChange(false); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/receiver/TestOchBusBroadcastReceiver.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/receiver/TestOchBusBroadcastReceiver.java index 132b5a87a6..92cf8694ad 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/receiver/TestOchBusBroadcastReceiver.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/receiver/TestOchBusBroadcastReceiver.java @@ -1,10 +1,12 @@ package com.mogo.och.bus.receiver; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; + import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.bus.constant.OchBusConst; /** @@ -23,7 +25,7 @@ public class TestOchBusBroadcastReceiver extends BroadcastReceiver { try { this.mContext = context; int sceneType = intent.getIntExtra(OchBusConst.BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY, 0); - Logger.d(TAG, "sceneType:" + sceneType); + CallerLogger.INSTANCE.d(M_BUS + TAG, "sceneType:" + sceneType); // 分发场景 dispatchSceneTest(sceneType); diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxi.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxi.java index bb85c3cf92..cb96b48ac4 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxi.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxi.java @@ -1,12 +1,14 @@ package com.mogo.och.taxi.passenger; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; + import android.content.Context; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.MogoMapUIController; import com.mogo.module.common.MogoApisHandler; @@ -34,7 +36,7 @@ class MogoOCHTaxi implements IMogoOCH, IMogoStatusChangedListener { private int mContainerId; @Override public void init( Context context ) { - Logger.d( TAG, "init" ); + 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); } @@ -43,19 +45,19 @@ class MogoOCHTaxi implements IMogoOCH, IMogoStatusChangedListener { * 进入鹰眼模式,设置手势缩放地图失效 */ private void stepIntoVrMode() { - Logger.d( TAG, "进入vr模式" ); + CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "进入vr模式" ); MogoMapUIController.getInstance() .openVrMode( false ); } private void showFragment() { if (ochTaxiPassengerFragment == null) { - Logger.d(TAG, "准备add fragment======"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "准备add fragment======"); ochTaxiPassengerFragment = new TaxiPassengerBaseFragment(); mActivity.getSupportFragmentManager().beginTransaction().add(mContainerId, ochTaxiPassengerFragment).commitAllowingStateLoss(); return; } - Logger.d(TAG, "准备show fragment"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "准备show fragment"); mActivity.getSupportFragmentManager().beginTransaction().show(ochTaxiPassengerFragment).commitAllowingStateLoss(); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 38a4ac3e1a..78be7dbc93 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -24,7 +24,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; import com.mogo.eagle.core.function.call.v2x.CallLimitingVelocityListenerManager; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -60,6 +60,8 @@ 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_TAXI_P; + /** * Created by pangfan on 2021/8/19 * @@ -217,13 +219,11 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback } private void startOrStopOrderLoop(boolean start) { - Logger.d(TAG, "startOrStopOrderLoop() " + start); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "startOrStopOrderLoop() " + start); if (start) { TaxiPassengerModelLoopManager.getInstance().startInAndWaitOrdersLoop(); -// TaxiPassengerModelLoopManager.getInstance().startHeartbeatLoop(); } else { TaxiPassengerModelLoopManager.getInstance().stopInAndWaitOrdersLoop(); -// TaxiPassengerModelLoopManager.getInstance().stopHeartbeatLoop(); } } @@ -392,10 +392,10 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback } //监听网络变化,避免启动机器时无网导致无法更新订单信息 - private IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { + private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { @Override public void onIntentReceived( String intentStr, Intent intent ) { - Logger.d( TAG, "onIntentReceived = %s", intentStr ); + CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "onIntentReceived = %s", intentStr ); if ( ConnectivityManager.CONNECTIVITY_ACTION.equals( intentStr ) ) { if ( NetworkUtils.isConnected( mContext ) ) { if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { @@ -406,7 +406,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback } }; - private IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() { + private final IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() { // VR mode变更回调 @Override public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { @@ -420,15 +420,15 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback } }; - private IMogoLifecycleListener mSocketLifeCycleLisnter = new IMogoLifecycleListener() { + private final IMogoLifecycleListener mSocketLifeCycleLisnter = new IMogoLifecycleListener() { @Override - public void onConnectFailure() { Logger.e(TAG,"socket onConnectFailure"); } + public void onConnectFailure() { CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"socket onConnectFailure"); } @Override - public void onConnectSuccess() { Logger.e(TAG,"socket onConnectSuccess"); } + public void onConnectSuccess() { CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"socket onConnectSuccess"); } @Override - public void onConnectLost() { Logger.e(TAG,"socket onConnectLost"); } + public void onConnectLost() { CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"socket onConnectLost"); } }; // 自车定位 @@ -476,7 +476,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) { if (autopilotStatusInfo == null) return; int state = autopilotStatusInfo.getState(); - Logger.d( TAG, "state = %s", state ); + CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "state = %s", state ); if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); if (mCurrentOCHOrder != null diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java index 6d07770f9e..c7546b3554 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java @@ -1,6 +1,8 @@ package com.mogo.och.taxi.passenger.model; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; + +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; import java.util.concurrent.TimeUnit; @@ -34,7 +36,7 @@ public class TaxiPassengerModelLoopManager { if (mInAndWaitServiceDisposable != null && !mInAndWaitServiceDisposable.isDisposed()) { return; } - Logger.i(TAG, "startInAndWaitOrdersLoop()"); + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startInAndWaitOrdersLoop()"); mInAndWaitServiceDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, TaxiPassengerConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) @@ -45,7 +47,7 @@ public class TaxiPassengerModelLoopManager { public void stopInAndWaitOrdersLoop() { if (mInAndWaitServiceDisposable != null) { - Logger.i(TAG, "stopInAndWaitOrdersLoop()"); + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopInAndWaitOrdersLoop()"); mInAndWaitServiceDisposable.dispose(); mInAndWaitServiceDisposable = null; } @@ -56,7 +58,7 @@ public class TaxiPassengerModelLoopManager { // if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { // return; // } -// Logger.i(TAG, "startHeartbeatLoop()"); +// CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startHeartbeatLoop()"); // mHeartbeatDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, // TaxiPassengerConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) // .map((aLong -> aLong + 1)) @@ -67,7 +69,7 @@ public class TaxiPassengerModelLoopManager { // public void stopHeartbeatLoop() { // if (mHeartbeatDisposable != null) { -// Logger.i(TAG, "stopHeartbeatLoop()"); +// CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopHeartbeatLoop()"); // mHeartbeatDisposable.dispose(); // mHeartbeatDisposable = null; // } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerNaviToDestinationModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerNaviToDestinationModel.java index 7620977e1e..34a3bfe4be 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerNaviToDestinationModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerNaviToDestinationModel.java @@ -1,5 +1,7 @@ package com.mogo.och.taxi.passenger.model; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; + import android.Manifest; import android.content.Context; import android.widget.Toast; @@ -22,7 +24,7 @@ import com.amap.api.navi.model.AimLessModeStat; import com.amap.api.navi.model.NaviInfo; import com.amap.api.navi.model.NaviLatLng; import com.autonavi.tbt.TrafficFacilityInfo; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback; @@ -123,14 +125,14 @@ public class TaxiPassengerNaviToDestinationModel implements AMapNaviListener { @Override public void onCalculateRouteSuccess(int[] ints) { //多路径算路成功回调 - Logger.d(TAG,"onCalculateRouteSuccess"); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"onCalculateRouteSuccess"); mAMapNavi.startNavi(NaviType.GPS); } @Override public void onNaviInfoUpdate(NaviInfo naviinfo) { //导航过程中的信息更新,请看NaviInfo的具体说明 - Logger.d(TAG,"naviinfo = "+naviinfo.getPathRetainDistance()+" ,"+naviinfo.getPathRetainTime() + CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"naviinfo = "+naviinfo.getPathRetainDistance()+" ,"+naviinfo.getPathRetainTime() +" ,"+naviinfo.getCurrentRoadName()); if (mFirstcalculateDriveRoute == 0 && SharedPrefsMgr.getInstance(mContext).getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS,0) == 0){ @@ -175,8 +177,8 @@ public class TaxiPassengerNaviToDestinationModel implements AMapNaviListener { // }else if (result.getErrorCode() == 6){ // TipToast.longTip("终点坐标错误"); // } - Logger.i(TAG, "路线计算失败:错误码=" + result.getErrorCode() + ",Error Message= " + result.getErrorDetail()); - Logger.i(TAG, "错误码详细链接见:http://lbs.amap.com/api/android-navi-sdk/guide/tools/errorcode/"); + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "路线计算失败:错误码=" + result.getErrorCode() + ",Error Message= " + result.getErrorDetail()); + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "错误码详细链接见:http://lbs.amap.com/api/android-navi-sdk/guide/tools/errorcode/"); } @Override public void onStartNavi(int type) { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java index b4076925d8..3e9237e921 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java @@ -1,5 +1,7 @@ package com.mogo.och.taxi.passenger.network; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; + import android.content.Context; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; @@ -7,7 +9,7 @@ import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager; import com.mogo.eagle.core.network.RequestOptions; import com.mogo.eagle.core.network.SubscribeImpl; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.module.common.MogoApisHandler; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryReqBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; @@ -116,7 +118,7 @@ public class TaxiPassengerServiceManager { @Override public void onSuccess(T o) { super.onSuccess(o); - Logger.e(TAG,apiName + ": onSuccess() " + o.msg); + CallerLogger.INSTANCE.e(M_TAXI_P + TAG,apiName + ": onSuccess() " + o.msg); if (callback != null) { callback.onSuccess(o); } @@ -125,7 +127,7 @@ public class TaxiPassengerServiceManager { @Override public void onError(Throwable e) { super.onError(e); - Logger.e(TAG,apiName + ": onError() " + e.getMessage()); + CallerLogger.INSTANCE.e(M_TAXI_P + TAG,apiName + ": onError() " + e.getMessage()); if (callback != null) { callback.onError(); } @@ -134,7 +136,7 @@ public class TaxiPassengerServiceManager { @Override public void onError(String message, int code) { super.onError(message, code); - Logger.e(TAG,String.format(apiName + ": onError() code = %d; message = %s;", code, message)); + CallerLogger.INSTANCE.e(M_TAXI_P + TAG,String.format(apiName + ": onError() code = %d; message = %s;", code, message)); if (callback != null) { callback.onFail(code, message); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index 8a0052cd67..7dd3280fe8 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -1,5 +1,7 @@ package com.mogo.och.taxi.passenger.presenter; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; + import android.location.Location; import android.os.Looper; @@ -10,7 +12,7 @@ import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; import com.mogo.commons.voice.AIAssist; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.taxi.passenger.R; @@ -45,7 +47,7 @@ public class BaseTaxiPassengerPresenter extends Presenter 0) { drawablePolyline(latLngList); } else { @@ -471,7 +471,7 @@ public class TaxiPassengerServingOrderFragment extends */ private void updateSpeedView(float newSpeed) { int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值 -// Logger.d(TAG,"mLimitingVelocity = "+mLimitingVelocity); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"mLimitingVelocity = "+mLimitingVelocity); if (mLimitingVelocity > 0 && speed >= mLimitingVelocity) { mTPSpeedTv.setText(getSpeedTextStyle(String.valueOf(speed), false)); mSpeedLayoutBg.setImageResource(R.drawable.taxi_p_speed_light_red_bg); @@ -522,7 +522,7 @@ public class TaxiPassengerServingOrderFragment extends */ private void startIvCompass(float bearing) { bearing = 360 - bearing; -// Log.d(TAG, "startIvCompass: " + bearing); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "startIvCompass: " + bearing); rotateAnimation = new RotateAnimation(lastBearing, bearing, Animation.RELATIVE_TO_SELF , 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnimation.setFillAfter(true); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxi.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxi.java index fe3f042400..f11bd5c1c2 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxi.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxi.java @@ -1,13 +1,14 @@ package com.mogo.och.taxi; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.content.Context; -import android.util.Log; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.MogoMapUIController; import com.mogo.module.common.MogoApisHandler; @@ -35,7 +36,7 @@ class MogoOCHTaxi implements IMogoOCH , IMogoStatusChangedListener { private int mContainerId; @Override public void init( Context context ) { - Logger.d( TAG, "init" ); + 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); } @@ -44,19 +45,19 @@ class MogoOCHTaxi implements IMogoOCH , IMogoStatusChangedListener { * 进入鹰眼模式,设置手势缩放地图失效 */ private void stepIntoVrMode() { - Logger.d( TAG, "进入vr模式" ); + CallerLogger.INSTANCE.d( M_TAXI + TAG, "进入vr模式" ); MogoMapUIController.getInstance() .openVrMode( false ); } private void showFragment() { if (ochTaxiFragment == null) { - Logger.d(TAG, "准备add fragment======"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "准备add fragment======"); ochTaxiFragment = new OCHTaxiFragment(); mActivity.getSupportFragmentManager().beginTransaction().add(mContainerId, ochTaxiFragment).commitAllowingStateLoss(); return; } - Logger.d(TAG, "准备show fragment"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "准备show fragment"); mActivity.getSupportFragmentManager().beginTransaction().show(ochTaxiFragment).commitAllowingStateLoss(); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java index 2af0ab299e..dfa3976d62 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java @@ -13,5 +13,6 @@ public class DriverStatusQueryRespBean extends BaseData { public static class Result { public int serviceStatus; //0收车,1出车 public String orderNo; + public int purpose; // 1 运营 2 测试 3演示 } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java index 15f1857d92..3f5b3b0f55 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java @@ -1,10 +1,11 @@ package com.mogo.och.taxi.model; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.content.Context; import android.content.Intent; import android.location.Location; import android.net.ConnectivityManager; -import android.util.Log; import androidx.annotation.Nullable; @@ -16,7 +17,6 @@ import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; @@ -25,7 +25,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; 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.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; 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.NetworkUtils; @@ -148,31 +148,31 @@ public class MogoOCHTaxiModelNew { public void accept(Throwable e) { if (e instanceof UndeliverableException) { e = e.getCause(); - Log.d(TAG, "UndeliverableException"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "UndeliverableException"); } if ((e instanceof IOException)) {// // fine, irrelevant network problem or API that throws on cancellation - Log.d(TAG, "IOException"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "IOException"); return; } if (e instanceof InterruptedException) { // fine, some blocking code was interrupted by a dispose call - Log.d(TAG, "InterruptedException"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "InterruptedException"); return; } if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { // that's likely a bug in the application - Log.d(TAG, "NullPointerException or IllegalArgumentException"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "NullPointerException or IllegalArgumentException"); Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } if (e instanceof IllegalStateException) { // that's a bug in RxJava or in a custom operator - Log.d(TAG, "IllegalStateException"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "IllegalStateException"); Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } - Log.d(TAG,"Undeliverable exception"); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"Undeliverable exception"); } }); @@ -241,7 +241,7 @@ public class MogoOCHTaxiModelNew { } private void startOrStopOrderLoop(boolean start) { - Logger.d(TAG, "startOrStopOrderLoop() " + start); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "startOrStopOrderLoop() " + start); if (start) { OCHTaxiModelLoopManager.getInstance().startInAndWaitOrdersLoop(); OCHTaxiModelLoopManager.getInstance().startNewBookingOrderLoop(); @@ -299,7 +299,7 @@ public class MogoOCHTaxiModelNew { if (mCarStatusCallback != null) { mCarStatusCallback.onCarStatusChanged(mOCHCarStatus == 1); } - Logger.d(TAG, "changeCarStatus:" + status); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + status); } } @@ -751,7 +751,7 @@ public class MogoOCHTaxiModelNew { && mCurrentOCHOrder.orderStatus == OrderStatusEnum.OnTheWayToEndStation.getCode()) { // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - Logger.d(TAG, "美化模式-ignore:置为true(更新本地order信息)"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为true(更新本地order信息)"); } } @@ -762,7 +762,7 @@ public class MogoOCHTaxiModelNew { if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 取消或订单已完成时,置false FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; - Logger.d(TAG, "美化模式-ignore:置为false(清除当前订单)"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为false(清除当前订单)"); } } @@ -779,7 +779,7 @@ public class MogoOCHTaxiModelNew { //以当前订单为基础,开启自动驾驶 public void startAutoPilot() { if (!checkCurrentOCHOrder()) { - Logger.e(TAG, "no order or order is empty."); + CallerLogger.INSTANCE.e(M_TAXI + TAG, "no order or order is empty."); TipToast.shortTip("当前订单不存在或异常!"); return; } @@ -802,7 +802,7 @@ public class MogoOCHTaxiModelNew { parameters.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon); parameters.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon); CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters); - Logger.d(TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters) + CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters) + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr); if (DebugConfig.isDebug()) { // TipToast.shortTip("Start autopilot!"); @@ -816,7 +816,7 @@ public class MogoOCHTaxiModelNew { public void cancelAutopilot() { try { CallerAutoPilotManager.INSTANCE.cancelAutoPilot(); - Logger.d(TAG, "结束自动驾驶"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "结束自动驾驶"); } catch (Exception e) { e.printStackTrace(); } @@ -838,7 +838,7 @@ public class MogoOCHTaxiModelNew { // TipToast.shortTip("距离上车点:" + Double.valueOf(distance).intValue()); } - Logger.i(TAG, "judgeStartStation() distance = " + distance); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "judgeStartStation() distance = " + distance); // if (mOrderStatusCallback != null && distance >= 0) { // mOrderStatusCallback.onCurrentOrderDistToStartChanged((long) distance, 0); // } @@ -871,10 +871,10 @@ public class MogoOCHTaxiModelNew { } //监听网络变化,避免启动机器时无网导致无法更新订单信息 - private IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { + private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { @Override public void onIntentReceived(String intentStr, Intent intent) { - Logger.d(TAG, "onIntentReceived = %s", intentStr); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr); if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) { if (NetworkUtils.isConnected(mContext)) { startOrStopOrderLoop(mOCHCarStatus == 1); @@ -884,7 +884,7 @@ public class MogoOCHTaxiModelNew { } }; - private IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() { + private final IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() { // VR mode变更回调 @Override public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { @@ -896,25 +896,25 @@ public class MogoOCHTaxiModelNew { } }; - private IMogoLifecycleListener mSocketLifeCycleLisnter = new IMogoLifecycleListener() { + private final IMogoLifecycleListener mSocketLifeCycleLisnter = new IMogoLifecycleListener() { @Override public void onConnectFailure() { - Logger.e(TAG, "socket onConnectFailure"); + CallerLogger.INSTANCE.e(M_TAXI + TAG, "socket onConnectFailure"); } @Override public void onConnectSuccess() { - Logger.e(TAG, "socket onConnectSuccess"); + CallerLogger.INSTANCE.e(M_TAXI + TAG, "socket onConnectSuccess"); } @Override public void onConnectLost() { - Logger.e(TAG, "socket onConnectLost"); + CallerLogger.INSTANCE.e(M_TAXI + TAG, "socket onConnectLost"); } }; // 自车定位 - private IMogoCarLocationChangedListener2 mCarLocationChangedListener2 = new IMogoCarLocationChangedListener2() { + private final IMogoCarLocationChangedListener2 mCarLocationChangedListener2 = new IMogoCarLocationChangedListener2() { @Override public void onCarLocationChanged2(Location location) { @@ -991,7 +991,7 @@ public class MogoOCHTaxiModelNew { public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) { if (autopilotStatusInfo == null) return; int state = autopilotStatusInfo.getState(); - Logger.d(TAG, "state = %s", state); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "state = %s", state); if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); if (mCurrentOCHOrder != null @@ -1003,7 +1003,7 @@ public class MogoOCHTaxiModelNew { if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - Logger.d(TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)"); } } } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/NaviToDestinationModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/NaviToDestinationModel.java index 1c7a0f692c..d362461175 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/NaviToDestinationModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/NaviToDestinationModel.java @@ -1,8 +1,9 @@ package com.mogo.och.taxi.model; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.Manifest; import android.content.Context; -import android.util.Log; import android.widget.Toast; import com.amap.api.navi.AMapNavi; @@ -23,6 +24,7 @@ import com.amap.api.navi.model.AimLessModeStat; import com.amap.api.navi.model.NaviInfo; import com.amap.api.navi.model.NaviLatLng; import com.autonavi.tbt.TrafficFacilityInfo; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.och.taxi.callback.IOCHTaxiNaviChangedCallback; @@ -170,8 +172,8 @@ public class NaviToDestinationModel implements AMapNaviListener { // }else if (result.getErrorCode() == 6){ // TipToast.longTip("终点坐标错误"); // } - Log.i("dm", "路线计算失败:错误码=" + result.getErrorCode() + ",Error Message= " + result.getErrorDetail()); - Log.i("dm", "错误码详细链接见:http://lbs.amap.com/api/android-navi-sdk/guide/tools/errorcode/"); + CallerLogger.INSTANCE.i(M_TAXI + "dm", "路线计算失败:错误码=" + result.getErrorCode() + ",Error Message= " + result.getErrorDetail()); + CallerLogger.INSTANCE.i(M_TAXI + "dm", "错误码详细链接见:http://lbs.amap.com/api/android-navi-sdk/guide/tools/errorcode/"); } @Override public void onStartNavi(int type) { @@ -257,7 +259,7 @@ public class NaviToDestinationModel implements AMapNaviListener { // //当前用户要执行的动作 // int recommend = aMapLaneInfo.frontLane[i]; // -// Log.e("ggb", "---->>> background is " + background + " ; recommend is " + recommend); +// CallerLogger.INSTANCE.e(M_TAXI + "ggb", "---->>> background is " + background + " ; recommend is " + recommend); // //根据文档中每个动作对应的枚举类型,显示对应的图片 // try { // sb.append(",第" + (i + 1) + "车道为" + array[background]); @@ -269,7 +271,7 @@ public class NaviToDestinationModel implements AMapNaviListener { // e.printStackTrace(); // } // } -// Log.e("showLaneInfo", sb.toString()); +// CallerLogger.INSTANCE.e(M_TAXI + "showLaneInfo", sb.toString()); } @Override diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java index f0bf44761a..d8cc82276e 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java @@ -1,6 +1,8 @@ package com.mogo.och.taxi.model; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.taxi.constant.OCHTaxiConst; import java.util.concurrent.TimeUnit; @@ -36,7 +38,7 @@ public class OCHTaxiModelLoopManager { if (mInAndWaitServiceDisposable != null && !mInAndWaitServiceDisposable.isDisposed()) { return; } - Logger.i(TAG, "startInAndWaitOrdersLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "startInAndWaitOrdersLoop()"); mInAndWaitServiceDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, OCHTaxiConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) @@ -47,7 +49,7 @@ public class OCHTaxiModelLoopManager { public void stopInAndWaitOrdersLoop() { if (mInAndWaitServiceDisposable != null) { - Logger.i(TAG, "stopInAndWaitOrdersLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "stopInAndWaitOrdersLoop()"); mInAndWaitServiceDisposable.dispose(); mInAndWaitServiceDisposable = null; } @@ -57,7 +59,7 @@ public class OCHTaxiModelLoopManager { if (mNewBookingOrderDisposable != null && !mNewBookingOrderDisposable.isDisposed()) { return; } - Logger.i(TAG, "startNewBookingOrderLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "startNewBookingOrderLoop()"); mNewBookingOrderDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) @@ -68,7 +70,7 @@ public class OCHTaxiModelLoopManager { public void stopNewBookingOrderLoop() { if (mNewBookingOrderDisposable != null) { - Logger.i(TAG, "stopNewBookingOrderLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "stopNewBookingOrderLoop()"); mNewBookingOrderDisposable.dispose(); mNewBookingOrderDisposable = null; } @@ -78,7 +80,7 @@ public class OCHTaxiModelLoopManager { if (mGrabResultDisposable != null && !mGrabResultDisposable.isDisposed()) { return; } - Logger.i(TAG, "startGrabResultLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "startGrabResultLoop()"); mGrabResultDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) @@ -89,7 +91,7 @@ public class OCHTaxiModelLoopManager { public void stopGrabResultLoop() { if (mGrabResultDisposable != null) { - Logger.i(TAG, "stopGrabResultLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "stopGrabResultLoop()"); mGrabResultDisposable.dispose(); mGrabResultDisposable = null; } @@ -99,7 +101,7 @@ public class OCHTaxiModelLoopManager { if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { return; } - Logger.i(TAG, "startHeartbeatLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "startHeartbeatLoop()"); mHeartbeatDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, OCHTaxiConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) @@ -110,7 +112,7 @@ public class OCHTaxiModelLoopManager { public void stopHeartbeatLoop() { if (mHeartbeatDisposable != null) { - Logger.i(TAG, "stopHeartbeatLoop()"); + CallerLogger.INSTANCE.i(M_TAXI + TAG, "stopHeartbeatLoop()"); mHeartbeatDisposable.dispose(); mHeartbeatDisposable = null; } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OCHTaxiServiceManagerNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OCHTaxiServiceManagerNew.java index a95d7480a0..81b755599a 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OCHTaxiServiceManagerNew.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/OCHTaxiServiceManagerNew.java @@ -1,12 +1,14 @@ package com.mogo.och.taxi.network; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.content.Context; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.network.RequestOptions; import com.mogo.eagle.core.network.SubscribeImpl; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.module.common.MogoApisHandler; import com.mogo.och.taxi.bean.CarHeartbeatReqBean; import com.mogo.och.taxi.bean.DriverServiceDataRespBean; @@ -375,7 +377,7 @@ public class OCHTaxiServiceManagerNew { @Override public void onSuccess(T o) { super.onSuccess(o); - Logger.e(TAG,apiName + ": onSuccess() " + o.msg); + CallerLogger.INSTANCE.e(M_TAXI + TAG,apiName + ": onSuccess() " + o.msg); if (callback != null) { callback.onSuccess(o); } @@ -384,7 +386,7 @@ public class OCHTaxiServiceManagerNew { @Override public void onError(Throwable e) { super.onError(e); - Logger.e(TAG,apiName + ": onError() " + e.getMessage()); + CallerLogger.INSTANCE.e(M_TAXI + TAG,apiName + ": onError() " + e.getMessage()); if (callback != null) { callback.onError(); } @@ -393,7 +395,7 @@ public class OCHTaxiServiceManagerNew { @Override public void onError(String message, int code) { super.onError(message, code); - Logger.e(TAG,String.format(apiName + ": onError() code = %d; message = %s;", code, message)); + CallerLogger.INSTANCE.e(M_TAXI + TAG,String.format(apiName + ": onError() code = %d; message = %s;", code, message)); if (callback != null) { callback.onFail(code, message); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/OCHTaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/OCHTaxiPresenter.java index 29865b5624..e79ff157df 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/OCHTaxiPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/OCHTaxiPresenter.java @@ -1,9 +1,10 @@ package com.mogo.och.taxi.presenter; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.location.Location; import android.os.Build; import android.os.Looper; -import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; @@ -12,7 +13,7 @@ import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.taxi.constant.OrderStatusEnum; import com.mogo.och.taxi.bean.OrderQueryRespBean; @@ -48,7 +49,7 @@ public class OCHTaxiPresenter extends Presenter implements IOCH @Override public void onCreate( @NonNull LifecycleOwner owner ) { super.onCreate( owner ); - Logger.d( TAG, "网约车-出租车拿到订单" ); + CallerLogger.INSTANCE.d( M_TAXI + TAG, "网约车-出租车拿到订单" ); } @Override @@ -184,7 +185,7 @@ public class OCHTaxiPresenter extends Presenter implements IOCH @RequiresApi(api = Build.VERSION_CODES.P) @Override public void onCurrentOrderStatusChanged(OrderQueryRespBean.Result order) { - Log.d(TAG,"order = "+order.toString()); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"order = "+order.toString()); mView.updateCurrentOrderStatusChanged(order); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseOchTaxiTabFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseOchTaxiTabFragment.java index f698d2fe36..dcbf3438c1 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseOchTaxiTabFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseOchTaxiTabFragment.java @@ -1,11 +1,12 @@ package com.mogo.och.taxi.ui; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.animation.ObjectAnimator; import android.content.Intent; import android.graphics.drawable.AnimationDrawable; import android.os.Handler; import android.os.Looper; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.animation.LinearInterpolator; @@ -35,7 +36,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListen import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.function.call.map.CallerSmpManager; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.MogoMapUIController; import com.mogo.map.MogoMarkerManager; import com.mogo.map.listener.IMogoMapListener; @@ -104,7 +105,7 @@ public abstract class BaseOchTaxiTabFragment { - Log.d(TAG, "长按显示状态工具栏"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "长按显示状态工具栏"); Intent intent = new Intent(); intent.putExtra("oper", 52); MogoApisHandler.getInstance().getApis().getIntentManagerApi().invoke("com.mogo.mock", intent); @@ -188,7 +189,7 @@ public abstract class BaseOchTaxiTabFragment { -// Logger.d("lianglihui","模拟 站点下发工控"); +// CallerLogger.INSTANCE.d(M_TAXI + "lianglihui","模拟 站点下发工控"); AutopilotControlParameters currentAutopilot = new AutopilotControlParameters(); currentAutopilot.isSpeakVoice = true; // 万集东门站 @@ -235,7 +236,7 @@ public abstract class BaseOchTaxiTabFragment用时 " + "- -" + " 分钟"; // mDistanceAndTime.setText(Html.fromHtml(strHtml2)); } else if (OrderStatusEnum.OnTheWayToEndStation.getCode() == order.orderStatus) { - Logger.d(TAG, "已经去往终点"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "已经去往终点"); mContentModule3.setVisibility(View.GONE); mContentModule2.setVisibility(View.VISIBLE); mOrderStatus.setText(R.string.module_och_taxi_on_the_way_2_end_station); @@ -196,7 +196,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem // + "用时 " + "- -" + " 分钟"; // mDistanceAndTime.setText(Html.fromHtml(strHtml4)); } else if (OrderStatusEnum.ArriveAtStartStation.getCode() == order.orderStatus) { - Logger.d(TAG, "已经达到起点"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "已经达到起点"); mContentModule2.setVisibility(View.GONE); mContentModule3.setVisibility(View.VISIBLE); mArrivedStartTimeTv32.setVisibility(View.VISIBLE); @@ -233,7 +233,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem } mDistanceAndTime3.setText(Html.fromHtml(strHtml13)); } else if (MogoOCHTaxiModelNew.getInstance().checkCurrentOCHOrder()) { - Logger.d(TAG, "前往乘客上车地点"); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "前往乘客上车地点"); mContentModule2.setVisibility(View.GONE); mContentModule3.setVisibility(View.VISIBLE); mContentModule31.setVisibility(View.VISIBLE); @@ -278,7 +278,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem private void startNaviToStartStation(boolean isShow, double orderStartStationLat, double orderStartStationLng) { NaviToDestinationModel.getInstance(getContext()).destroyAmaNavi(); - Log.d(TAG, "currentLatLng=" + mTaxiFragment.mCurLatitude + " " + mTaxiFragment.mCurLongitude); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "currentLatLng=" + mTaxiFragment.mCurLatitude + " " + mTaxiFragment.mCurLongitude); NaviLatLng startNaviLatLng = new NaviLatLng(mTaxiFragment.mCurLatitude, mTaxiFragment.mCurLongitude); NaviLatLng endNaviLatLng = new NaviLatLng(orderStartStationLat, orderStartStationLng); NaviToDestinationModel.getInstance(getContext()).initAMapNavi(startNaviLatLng, endNaviLatLng); @@ -295,7 +295,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem } public void updateDistanceAndTime(long meters, long timeInSecond) { -// Log.d(TAG,"meters = "+meters); +// CallerLogger.INSTANCE.d(M_TAXI + TAG,"meters = "+meters); if (mContentModule3 != null && mContentModule3.getVisibility() == View.VISIBLE) { DecimalFormat fnum = new DecimalFormat("##0.0"); String dis = fnum.format((float) meters / 1000); @@ -313,7 +313,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem } public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) { - Log.d(TAG, "meters = " + routeInfo.durationToEnd); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "meters = " + routeInfo.durationToEnd); DecimalFormat fnum = new DecimalFormat("##0.0"); String dis = fnum.format((float) routeInfo.distanceToEnd / 1000); String strHtml2 = "距离 " + "" + dis + "" + " 公里" @@ -352,7 +352,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem public void onOrderStatusChanged(OrderQueryRespBean.Result order) { int status = order.orderStatus; - Log.d(TAG, "status==" + status); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "status==" + status); mActivity.runOnUiThread(() -> { if (status == OrderStatusEnum.None.getCode() || status == OrderStatusEnum.Cancel.getCode() || status == OrderStatusEnum.JourneyCompleted.getCode()) { isSpeakedEndingNotice = false; @@ -415,7 +415,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem * @param being */ public void isHaveBeingOrder(boolean being) { - Log.d(TAG, "isHaveBeingOrder = " + being); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "isHaveBeingOrder = " + being); if (being) { mNoDataView.setVisibility(View.GONE); mBeingOrderLayout.setVisibility(View.VISIBLE); @@ -434,7 +434,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem switch (mOrderServerStatus.getText().toString().trim()) { case "开始服务": case "服务完成": - Log.d(TAG, mOrderServerStatus.getText().toString()); + CallerLogger.INSTANCE.d(M_TAXI + TAG, mOrderServerStatus.getText().toString()); startOrEndService(mOrderServerStatus.getText().toString().trim()); break; } @@ -490,7 +490,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem @Override public void reInitNaviAmap(boolean isPlay, boolean isRestart) { - Log.d(TAG, "isPlay = " + isPlay + ", isRestart=" + isRestart); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "isPlay = " + isPlay + ", isRestart=" + isRestart); if (!isRestart) { mTaxiFragment.showNaviToStartStationFragment(false); return; @@ -526,7 +526,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem */ private void setOrRemoveMapMaker(boolean isAdd, String uuid, List station, int iconId){ if (isAdd){ - Log.d("setMapMaker= ",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0)); + CallerLogger.INSTANCE.d(M_TAXI + "setMapMaker= ",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0)); MogoMarkerOptions options = new MogoMarkerOptions(); options.anchorColor("#000000");//不设置报错,暂时随便设置个 options.setGps(true);//使用wgs 必须设置true @@ -537,7 +537,7 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem options.longitude(station.get(0)); MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options); }else { - Log.d("RemoveMapMaker=",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0)); + CallerLogger.INSTANCE.d(M_TAXI + "RemoveMapMaker=",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0)); MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .removeMarkers(uuid); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java index 4810b2b875..eb6e5e4b6f 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java @@ -1,5 +1,7 @@ package com.mogo.och.taxi.ui; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.content.Context; import android.os.Build; import android.os.Bundle; @@ -7,16 +9,13 @@ import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.fragment.app.FragmentTransaction; import com.amap.api.maps.CoordinateConverter; import com.amap.api.maps.model.LatLng; import com.mogo.commons.debug.DebugConfig; -import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo; -import com.mogo.eagle.core.data.map.MogoLatLng; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.module.common.MogoApisHandler; import com.mogo.och.taxi.R; import com.mogo.och.taxi.constant.OrderStatusEnum; @@ -42,7 +41,7 @@ import mogo.telematics.pad.MessagePad; * * 网约车-出租车UI */ -public class OCHTaxiFragment extends BaseOchTaxiTabFragment implements OCHTaxiView{ +public class OCHTaxiFragment extends BaseOchTaxiTabFragment implements OCHTaxiView { public static final String TAG = "OCHTaxiFragment"; @@ -51,9 +50,10 @@ public class OCHTaxiFragment extends BaseOchTaxiTabFragment personalDialogFragment = null; @@ -69,7 +69,7 @@ public class OCHTaxiFragment extends BaseOchTaxiTabFragment(new OCHTaxiPersonalDialogFragment(this)); - personalDialogFragment.get().show(getActivity().getSupportFragmentManager(),"service_data"); + personalDialogFragment.get().show(getActivity().getSupportFragmentManager(), "service_data"); } -// public void routeResult(List routeList) { + // public void routeResult(List routeList) { // if (routeList == null ) return; // double distance = calculateTravelDistance(mogoLocation,routeList); // if ( MogoOCHTaxiModel.getInstance().checkCurrentOCHOrder() ) { // MogoOCHTaxiModel.getInstance().getCurrentOCHOrder().decreaseTravelDistance( distance ); // updateOrderBaseStatusInfo(); // } -// Logger.d("lianglihui","routeResult 剩余导航距离:"+distance); +// CallerLogger.INSTANCE.d(M_TAXI + "lianglihui","routeResult 剩余导航距离:"+distance); // if (routeList != null && routeList.size() >0){ -// Logger.d("lianglihui","routeResult:"+routeList.size()); +// CallerLogger.INSTANCE.d(M_TAXI + "lianglihui","routeResult:"+routeList.size()); // //adas回调导航路径 绘制引导线 // if ( ochTaxiOverlayManager == null){ // ochTaxiOverlayManager = new OCHTaxiOverlayManager(this.getContext()); @@ -204,68 +204,81 @@ public class OCHTaxiFragment extends BaseOchTaxiTabFragment waitServiceList){ + + public void onOrdersWaitServiceChanged(List waitServiceList) { if (null == waitServiceList) return; if (null == serverOrdersFragment) return; serverOrdersFragment.onOrdersWaitServiceChanged(waitServiceList); } - public void queryOrdersList(int page, int size){ - mPresenter.queryOrdersList(page,size); + + public void queryOrdersList(int page, int size) { + mPresenter.queryOrdersList(page, size); } - public void onOrdersListPageRefresh(List ordersList){ - if (null == personalDialogFragment) personalDialogFragment = new WeakReference<>(new OCHTaxiPersonalDialogFragment(this)); + + public void onOrdersListPageRefresh(List ordersList) { + if (null == personalDialogFragment) + personalDialogFragment = new WeakReference<>(new OCHTaxiPersonalDialogFragment(this)); personalDialogFragment.get().onOrdersListPageRefresh(ordersList); } - public void queryDriverServiceData(){ + + public void queryDriverServiceData() { mPresenter.queryDriverServiceData(); } - public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum){ + + public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum) { if (null == personalDialogFragment) return; - personalDialogFragment.get().onServiceDataUpdate(dailyTimeDuration,dailyOrderNum); + personalDialogFragment.get().onServiceDataUpdate(dailyTimeDuration, dailyOrderNum); } - public void queryCurOrderRouteInfo(){ + + public void queryCurOrderRouteInfo() { mPresenter.queryCurOrderRouteInfo(); } - public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo){ + + public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) { if (null == serverOrdersFragment) return; serverOrdersFragment.onCurrentOrderRouteInfoGot(routeInfo); } - public void onCurrentOrderDistToStartChanged(long meters, long timeInSecond){ + + public void onCurrentOrderDistToStartChanged(long meters, long timeInSecond) { // if (null == serverOrdersFragment) return; // serverOrdersFragment.onCurrentOrderDistToStartChanged(meters,timeInSecond); } - public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond){ + + public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) { if (null == serverOrdersFragment) return; - serverOrdersFragment.onCurrentOrderDistToEndChanged(meters,timeInSecond); + serverOrdersFragment.onCurrentOrderDistToEndChanged(meters, timeInSecond); } - public void updateLocation(double latitude,double longitude){ + + public void updateLocation(double latitude, double longitude) { this.mCurLatitude = latitude; this.mCurLongitude = longitude; } + /** * 订单流转debug START */ @@ -321,7 +346,7 @@ public class OCHTaxiFragment extends BaseOchTaxiTabFragment { MogoOCHTaxiModelNew.getInstance().setArriveAtEndStation(); }); - findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v ->{ + findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v -> { showNotice("自动驾驶已启动,请系好安全带"); MogoOCHTaxiModelNew.getInstance().setOnTheWayToEndStation(); }); @@ -509,14 +534,14 @@ public class OCHTaxiFragment extends BaseOchTaxiTabFragment list1 = CoordinateConverterFrom84ForList(getContext(),list); + List list1 = CoordinateConverterFrom84ForList(getContext(), list); MogoOCHTaxiModelNew.getInstance().updateOrderRoute(list1); } catch (JSONException e) { e.printStackTrace(); @@ -544,7 +569,7 @@ public class OCHTaxiFragment extends BaseOchTaxiTabFragment parent, View view, int position, long id) { - Log.d(TAG,"mCurrentReason ="+ mContentArrays[position]); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"mCurrentReason ="+ mContentArrays[position]); mCurrentReason = mContentArrays[position]; // GradientDrawable background = (GradientDrawable) mCancelBt.getBackground();//GradientDrawable是Drawable的子类 // background.setColor(Color.parseColor("#2B6EFF")); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiPersonalDialogFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiPersonalDialogFragment.java index a41dd7dc08..88437c70ac 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiPersonalDialogFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiPersonalDialogFragment.java @@ -6,7 +6,6 @@ import android.graphics.Point; import android.graphics.Typeface; import android.os.Build; import android.os.Bundle; -import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -31,7 +30,7 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.ViewPager; import com.google.android.material.tabs.TabLayout; -import com.mogo.commons.debug.DebugConfig; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.taxi.constant.OrderStatusEnum; import com.mogo.och.taxi.R; import com.mogo.och.taxi.bean.OrderQueryRespBean; @@ -43,6 +42,7 @@ import java.util.Calendar; import java.util.List; import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; /** * @author: wangmingjun @@ -99,7 +99,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie windowManager.getDefaultDisplay().getSize(point); params.width = (int)(point.x * 0.375); params.height = ViewGroup.LayoutParams.MATCH_PARENT; - Log.d(TAG,"width= "+params.width+"height= "+params.height); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"width= "+params.width+"height= "+params.height); window.setAttributes(params); window.getDecorView().setBackgroundColor(Color.parseColor("#00FFFFFF"));//设置背景, 不然显示不全 window.setGravity(Gravity.LEFT|Gravity.BOTTOM); @@ -203,13 +203,13 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie ImageView imageView = (ImageView) tab.getCustomView().findViewById(R.id.operation_tab_line_iv); if (isSelected){ textView.setTextSize(23); - Log.d(TAG,"SelectTv = "+ textView.getText()); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"SelectTv = "+ textView.getText()); textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); textView.setTextColor(Color.parseColor("#FFFFFF")); imageView.setImageDrawable(getResources().getDrawable(R.drawable.taxi_driver_operation_tab_line)); }else { textView.setTextSize(20); - Log.d(TAG,"unSelectTv = "+ textView.getText()); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"unSelectTv = "+ textView.getText()); textView.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); textView.setTextColor(Color.parseColor("#A7B6F0")); imageView.setImageDrawable(null); @@ -462,7 +462,7 @@ public class OCHTaxiPersonalDialogFragment extends DialogFragment implements Vie LinearLayoutManager linearLayoutManager = (LinearLayoutManager) manager; int lastItemPosition = linearLayoutManager.findLastCompletelyVisibleItemPosition(); int itemCount = linearLayoutManager.getItemCount(); - Log.d(TAG,"lastItemPosition=="+lastItemPosition+",itemCount=="+itemCount); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"lastItemPosition=="+lastItemPosition+",itemCount=="+itemCount); //向上滑动到最后一个 if ((lastItemPosition == itemCount-1) && isUpwardSliding){ onLoadMore(); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiServerOrdersFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiServerOrdersFragment.java index 63a8919f48..01e156ac38 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiServerOrdersFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiServerOrdersFragment.java @@ -1,10 +1,11 @@ package com.mogo.och.taxi.ui; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + import android.graphics.Color; import android.graphics.Typeface; import android.os.Build; import android.os.Bundle; -import android.util.Log; import android.view.View; import android.widget.TextView; @@ -18,7 +19,7 @@ import androidx.fragment.app.FragmentTransaction; import androidx.viewpager.widget.ViewPager; import com.google.android.material.tabs.TabLayout; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.taxi.R; import com.mogo.och.taxi.bean.OrderQueryRespBean; import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean; @@ -91,7 +92,7 @@ public class OCHTaxiServerOrdersFragment extends BaseTaxiUIFragment { } } - Log.d(TAG,"activity="+getActivity()); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"activity="+getActivity()); mTaxiOrderTab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override @@ -134,13 +135,13 @@ public class OCHTaxiServerOrdersFragment extends BaseTaxiUIFragment { if (isSelected){ textView.setBackground(getActivity().getDrawable(R.drawable.taxi_driver_tab_item_bg)); textView.setTextSize(20); - Log.d(TAG,"SelectTv = "+ textView.getText()); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"SelectTv = "+ textView.getText()); textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); textView.setTextColor(Color.parseColor("#FFFFFF")); }else { textView.setBackground(null); textView.setTextSize(18); - Log.d(TAG,"unSelectTv = "+ textView.getText()); + CallerLogger.INSTANCE.d(M_TAXI + TAG,"unSelectTv = "+ textView.getText()); textView.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); textView.setTextColor(Color.parseColor("#CCD4F5")); } @@ -158,7 +159,7 @@ public class OCHTaxiServerOrdersFragment extends BaseTaxiUIFragment { @NonNull @Override public Fragment getItem(int position) { - Logger.d( TAG, "getItem="+position); + CallerLogger.INSTANCE.d( M_TAXI + TAG, "getItem="+position); return fragments.get(position); } @@ -170,7 +171,7 @@ public class OCHTaxiServerOrdersFragment extends BaseTaxiUIFragment { @Nullable @Override public CharSequence getPageTitle(int position) { - Logger.d( TAG, "getPageTitle="+position); + CallerLogger.INSTANCE.d( M_TAXI + TAG, "getPageTitle="+position); return mTabTitles[position]; } } diff --git a/app/src/androidTest/java/com/mogo/functions/test/AutoPilotBadCaseTest.kt b/app/src/androidTest/java/com/mogo/functions/test/AutoPilotBadCaseTest.kt index 33b6edda37..41984bba30 100644 --- a/app/src/androidTest/java/com/mogo/functions/test/AutoPilotBadCaseTest.kt +++ b/app/src/androidTest/java/com/mogo/functions/test/AutoPilotBadCaseTest.kt @@ -3,8 +3,8 @@ package com.mogo.functions.test import androidx.test.core.app.ActivityScenario import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.LargeTest -import com.mogo.eagle.core.data.autopilot.AutoPilotRecordResult import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.hmi.ui.MoGoHmiFragment import com.mogo.eagle.core.function.main.MainLauncherActivity import kotlinx.coroutines.* import kotlinx.coroutines.flow.* @@ -14,6 +14,7 @@ import org.junit.runner.RunWith import record_cache.RecordPanelOuterClass import java.text.SimpleDateFormat import java.util.* +import java.util.concurrent.Executors import java.util.concurrent.TimeUnit import kotlin.random.Random @@ -31,7 +32,7 @@ class AutoPilotBadCaseTest { @ExperimentalCoroutinesApi @Test fun showBadCaseEntrance1(): Unit = runBlocking(Dispatchers.Main) { - delay(5000) + ensureMoGoHmiFragmentShow() var index = 0 (1 until 50) .map { it } @@ -61,7 +62,7 @@ class AutoPilotBadCaseTest { @ExperimentalCoroutinesApi @Test fun showBadCaseEntrance2(): Unit = runBlocking(Dispatchers.Main) { - delay(5000) + ensureMoGoHmiFragmentShow() var index = 0 (1 until 50) .map { it } @@ -118,4 +119,29 @@ class AutoPilotBadCaseTest { .collect() delay(TimeUnit.HOURS.toMillis(2)) } + + private suspend fun ensureMoGoHmiFragmentShow(): MoGoHmiFragment = suspendCancellableCoroutine { + launch.onActivity { itx -> + val executor = Executors.newSingleThreadScheduledExecutor() + executor.scheduleAtFixedRate({ + var find = + itx.supportFragmentManager.fragments.find { it is MoGoHmiFragment } as? MoGoHmiFragment + while (find == null) { + find = + itx.supportFragmentManager.fragments.find { it is MoGoHmiFragment } as? MoGoHmiFragment + + } + while (!find.isResumed) { + Thread.sleep(500) + } + it.resumeWith(Result.success(find)) + try { + Thread.sleep(500) + executor.shutdownNow() + } catch (e: Throwable) { + e.printStackTrace() + } + }, 50, 500, TimeUnit.MILLISECONDS) + } + } } \ No newline at end of file diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java index 8ee24ac34e..787f60c6d0 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java @@ -15,7 +15,7 @@ public class ArrivalNotification extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java index f067d388d1..95924fa432 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java @@ -16,7 +16,7 @@ public class AutopilotState extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java index 4fb4076519..698bea7d2d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java @@ -16,6 +16,6 @@ public class BasicInfoReq extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java index aa9d82790d..85488fe61a 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java @@ -16,6 +16,6 @@ public class CarConfigResp extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java index 3b8f694d1e..5fb044171c 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java @@ -15,7 +15,7 @@ public class GlobalPathResp extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java index 3b47532d5b..cb762f80f8 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java @@ -16,7 +16,7 @@ public class GnssInfo extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java index c51c98185b..39a2f8e7e2 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java @@ -17,7 +17,7 @@ public class MogoReportMessage extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java index 7d5e01696f..3071ef7317 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java @@ -17,6 +17,6 @@ public class RecordPanel extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java index 8a5061ac41..caaa4d1c81 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java @@ -14,6 +14,6 @@ public class TrackedObjects extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java index b78095766c..047888f8f7 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java @@ -13,7 +13,7 @@ public class Trajectory extends Base { } @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java index db44e63ce7..df03675788 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java @@ -15,6 +15,6 @@ public class VehicleState extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java index 310ceee8a9..f438ae5b8f 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java @@ -14,6 +14,6 @@ public class Warn extends Base { @Override public String toString() { - return super.toString() + "Data:" + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/InfoFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/InfoFragment.java index 51d06b0e10..28898aa44d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/InfoFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/InfoFragment.java @@ -19,6 +19,7 @@ import com.zhidao.adas.client.bean.AutopilotState; import com.zhidao.adas.client.bean.ErrorData; import com.zhidao.adas.client.bean.GlobalPathResp; import com.zhidao.adas.client.bean.GnssInfo; +import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.RecordPanel; import com.zhidao.adas.client.bean.TrackedObjects; import com.zhidao.adas.client.bean.Trajectory; @@ -103,6 +104,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onWarnEvent(Warn info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_WARN)) { if (data.size() > 9) { data.remove(0); @@ -114,6 +116,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onRectEvent(TrackedObjects info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_TRACKED_OBJECTS)) { if (data.size() > 4) { data.remove(0); @@ -125,6 +128,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onErrorEvent(ErrorData info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_ERROR)) { if (data.size() > 19) { data.remove(0); @@ -181,6 +185,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onCarEvent(VehicleState info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_VEHICLE_STATE)) { if (data.size() > 5) { data.remove(0); @@ -195,6 +200,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onAutoEvent(GnssInfo info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_GNSS_INFO)) { if (data.size() > 9) { data.remove(0); @@ -206,6 +212,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onAutoEvent(AutopilotState info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_AUTOPILOT_STATE)) { if (data.size() > 9) { data.remove(0); @@ -218,6 +225,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onTrajectoryEvent(Trajectory info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_TRAJECTORY)) { if (data.size() > 9) { data.remove(0); @@ -229,6 +237,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onAutopilotWayArriveEvent(ArrivalNotification info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_ARRIVAL_NOTIFICATION)) { data.add(info.toString()); adapter.notifyDataSetChanged(); @@ -237,6 +246,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onAutopilotRouteEvent(GlobalPathResp info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_GLOBAL_PATH_RESP)) { data.add(info.toString()); adapter.notifyDataSetChanged(); @@ -245,6 +255,7 @@ public class InfoFragment extends Fragment { @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onAutopilotRecordResultEvent(RecordPanel info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_RECORD_RESULT)) { data.add(info.toString()); adapter.notifyDataSetChanged(); @@ -252,7 +263,8 @@ public class InfoFragment extends Fragment { } @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) - public void onAutopilotGuardianInfoEvent(ReportMessage info) { + public void onAutopilotGuardianInfoEvent(MogoReportMessage info) { + EventBus.getDefault().removeStickyEvent(info); if (title.equals(MainActivity.TITLE.RECEIVE_REPORT_MESSAGE)) { data.add(info.toString()); adapter.notifyDataSetChanged(); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/MainActivity.java index b49286cc5b..8bea944df4 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/MainActivity.java @@ -739,14 +739,14 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O @Override public void onChannelConnect(Channel channel) { - Log.i(TAG,"onChannelConnect channel="+channel.id()); + Log.i(TAG, "onChannelConnect channel=" + channel.id()); } @Override public void onChannelDisConnect(Channel channel) { - Log.i(TAG,"onChannelDisConnect channel="+channel.id()); + Log.i(TAG, "onChannelDisConnect channel=" + channel.id()); } - },"1234567"); + }, "1234567"); } @@ -970,7 +970,7 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O AdasManager.getInstance().sendTrafficLightData("10038", 26.848153, 112.574883, "180.0", "SN", 100413, -4, 201, 0, detail); break; case "速度设置": - AdasManager.getInstance().sendAutopilotSpeedReq(30); + AdasManager.getInstance().sendAutopilotSpeedReq(28); break; case "重启Docker": AdasManager.getInstance().rebootAPDocker(); diff --git a/config.gradle b/config.gradle index 24442788dd..bc53544d66 100644 --- a/config.gradle +++ b/config.gradle @@ -28,7 +28,7 @@ ext { androidxcardview : "androidx.cardview:cardview:1.0.0", localbroadcastmanager : "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0", // flexbox - flexbox : 'com.google.android:flexbox:2.0.1', + flexbox : 'com.google.android.flexbox:flexbox:3.0.0', // 测试 junit : "junit:junit:4.12", androidxjunit : "androidx.test.ext:junit:1.1.2", diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt index ae04c9f6cd..ec438bc1e4 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt @@ -35,6 +35,7 @@ import com.zhidao.support.adas.high.AdasManager import com.zhidao.support.adas.high.AdasOptions import com.zhidao.support.adas.high.bean.IPCUpgradeInfo import com.zhidao.support.adas.high.common.Constants +import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS import com.zhidao.support.adas.high.common.CupidLogUtils import io.netty.channel.Channel import java.util.concurrent.TimeUnit @@ -332,4 +333,11 @@ class MoGoAutopilotProvider : override fun getGlobalPath() { AdasManager.getInstance().sendGlobalPathReq() } + + /** + * 车机与工控机是否连上了 + */ + override fun isConnected(): Boolean { + return AdasManager.getInstance().ipcConnectionStatus == IPC_CONNECTION_STATUS.CONNECTED + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt index 537c897962..3038e2baa5 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -4,17 +4,17 @@ import chassis.VehicleStateOuterClass import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HdMapBuildConfig -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_ADAS -import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_ADAS +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeArriveAtStation diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java index 5f4d48be79..276542f8e9 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java @@ -53,7 +53,7 @@ public class MoGoHandAdasMsgManager implements @Override public void onAutopilotBrakeLightData(boolean brakeLight) { - //设置刹车信息 + //设置刹车信息 TODO 需要添加转向和删除的优先级 CallerHmiManager.INSTANCE.showBrakeLight(brakeLight ? 1 : 0); } diff --git a/core/function-impl/mogo-core-function-bindingcar/.gitignore b/core/function-impl/mogo-core-function-bindingcar/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/build.gradle b/core/function-impl/mogo-core-function-bindingcar/build.gradle new file mode 100644 index 0000000000..111633d37e --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/build.gradle @@ -0,0 +1,90 @@ +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'kotlin-android-extensions' + id 'kotlin-kapt' + id 'com.alibaba.arouter' +} +android { + compileSdkVersion rootProject.ext.android.compileSdkVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion + defaultConfig { + minSdkVersion rootProject.ext.android.minSdkVersion + targetSdkVersion rootProject.ext.android.targetSdkVersion + versionCode Integer.valueOf(VERSION_CODE) + versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles 'consumer-rules.pro' + //ARouter apt 参数 + kapt { + useBuildCache = false + arguments { + arg("AROUTER_MODULE_NAME", project.getName()) + } + } + + javaCompileOptions{ + annotationProcessorOptions{ + arguments = ["room.schemaLocation":"$projectDir/schemas".toString()] + } + } + + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation rootProject.ext.dependencies.kotlinstdlibjdk7 + implementation rootProject.ext.dependencies.androidxccorektx + implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.androidxconstraintlayout + implementation rootProject.ext.dependencies.arouter + implementation rootProject.ext.dependencies.rxandroid + implementation rootProject.ext.dependencies.androidxrecyclerview + implementation rootProject.ext.dependencies.androidxroomruntime + implementation rootProject.ext.dependencies.androidxroomktx + implementation rootProject.ext.dependencies.litezxing + kapt rootProject.ext.dependencies.androidxroomcompiler + kapt rootProject.ext.dependencies.aroutercompiler + + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { + implementation rootProject.ext.dependencies.mogocommons + implementation rootProject.ext.dependencies.mogoserviceapi + implementation rootProject.ext.dependencies.modulecommon + + implementation rootProject.ext.dependencies.mogo_core_data + implementation rootProject.ext.dependencies.mogo_core_utils + implementation rootProject.ext.dependencies.mogo_core_res + implementation rootProject.ext.dependencies.mogo_core_network + implementation rootProject.ext.dependencies.mogo_core_function_call + } else { + implementation project(":foudations:mogo-commons") + implementation project(':services:mogo-service-api') + implementation project(':modules:mogo-module-common') + + implementation project(':core:mogo-core-data') + implementation project(':core:mogo-core-utils') + implementation project(':core:mogo-core-res') + implementation project(':core:mogo-core-network') + implementation project(':core:mogo-core-function-call') + } +} + +apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() diff --git a/core/function-impl/mogo-core-function-bindingcar/consumer-rules.pro b/core/function-impl/mogo-core-function-bindingcar/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/core/function-impl/mogo-core-function-bindingcar/gradle.properties b/core/function-impl/mogo-core-function-bindingcar/gradle.properties new file mode 100644 index 0000000000..eb2cf9c236 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/gradle.properties @@ -0,0 +1,3 @@ +GROUP=com.mogo.eagle.core.function.impl +POM_ARTIFACT_ID=notice +VERSION_CODE=1 diff --git a/core/function-impl/mogo-core-function-bindingcar/proguard-rules.pro b/core/function-impl/mogo-core-function-bindingcar/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..dc77613661 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarManager.java new file mode 100644 index 0000000000..97b71e95fd --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarManager.java @@ -0,0 +1,27 @@ +package com.mogo.eagle.core.function.bindingcar; + +import android.content.Context; + +/** + * @author lixiaopeng + * @description + * @since: 10/27/21 + */ +public class BindingcarManager { + private String TAG = "BindingcarManager"; + private static BindingcarManager mBindingcarManager; + private Context mContext; + + public static synchronized BindingcarManager getInstance() { + synchronized (BindingcarManager.class) { + if (mBindingcarManager == null) { + mBindingcarManager = new BindingcarManager(); + } + } + return mBindingcarManager; + } + + + +} + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java new file mode 100644 index 0000000000..9c32ea4b1b --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java @@ -0,0 +1,44 @@ +package com.mogo.eagle.core.function.bindingcar; + +import android.content.Context; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.eagle.core.data.constants.MogoServicePaths; +import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack; +import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingcarProvider; +import com.mogo.eagle.core.function.bindingcar.network.BindingcarNetWorkManager; + +import org.jetbrains.annotations.NotNull; + + +/** + * @author Jing + * @description 云公告公告 + * @since: 10/27/21 + */ +@Route(path = MogoServicePaths.PATH_BINDING_CAR) +public class BindingcarProvider implements IMoGoBindingcarProvider { + + @NotNull + @Override + public String getFunctionName() { + return null; + } + + @Override + public void onDestroy() { + } + + @Override + public void init(Context context) { + + } + + + @Override + public void modifyCarInfo(BindingcarCallBack callBack) { + BindingcarNetWorkManager.getInstance().getBindingcarInfo(""); +// BindingcarNetWorkManager.getInstance().modifyBindingcar(callBack); + + } +} diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java new file mode 100644 index 0000000000..d9e4a80a59 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java @@ -0,0 +1,37 @@ +package com.mogo.eagle.core.function.bindingcar.network; + +import com.mogo.eagle.core.data.bindingcar.BindingcarInfo; +import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo; +import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo; + +import io.reactivex.Observable; +import okhttp3.RequestBody; +import retrofit2.http.Body; +import retrofit2.http.Headers; +import retrofit2.http.POST; + +/** + * @author lixiaopeng + * @description 绑定车辆 + * @since: 10/28/21 + */ +public interface BindingcarApiService { + /** + * 获取绑定车辆的信息 + * + * @return {@link BindingcarInfo} + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/pad/selectPadByMac") + Observable getBindingcarInfo(@Body RequestBody requestBody); + + /** + * 绑定和修改绑定车机 + * + * @return {@link ModifyBindingcarInfo} + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/pad/updatePadByMac") + Observable modifyBindingcarInfo(@Body RequestBody requestBody); + +} diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java new file mode 100644 index 0000000000..eb51652caa --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java @@ -0,0 +1,122 @@ +package com.mogo.eagle.core.function.bindingcar.network; + +import android.util.Log; + +import com.mogo.cloud.network.RetrofitFactory; +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.eagle.core.data.bindingcar.BindingcarInfo; +import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo; +import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack; +import com.mogo.eagle.core.network.utils.GsonUtil; + +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.RequestBody; + +/** + * @author Jing + * @description 云公告网络请求类 + * @since: 10/28/21 + */ +public class BindingcarNetWorkManager { + private static volatile BindingcarNetWorkManager requestNoticeManager; + private final BindingcarApiService mBindingcarApiService; + + private BindingcarNetWorkManager() { //TODO +// mBindingcarApiService = RetrofitFactory.INSTANCE.getInstance(NetConstants.DEVA_HOST) +// .create(BindingcarApiService.class); + + mBindingcarApiService = RetrofitFactory.INSTANCE.getInstance("http://cmdb.ee-private-dev.myghost.zhidaoauto.com/") + .create(BindingcarApiService.class); + } + + public static BindingcarNetWorkManager getInstance() { + if (requestNoticeManager == null) { + synchronized (BindingcarNetWorkManager.class) { + if (requestNoticeManager == null) { + requestNoticeManager = new BindingcarNetWorkManager(); + } + } + } + return requestNoticeManager; + } + + /** + * 获取绑定的车辆信息 + * + * @param macAddress mac地址 TODO + * + */ + public void getBindingcarInfo(String macAddress) { + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + BindingcarRequest request = new BindingcarRequest(sn, "48:b0:2d:3a:9c:19"); + RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); + mBindingcarApiService.getBindingcarInfo(requestBody) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.d("liyz", "getBindingcarInfo onSubscribe -----> "); + } + + @Override + public void onNext(@NonNull BindingcarInfo info) { + Log.d("liyz", "getBindingcarInfo onNext info =" + info.toString()); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.d("liyz", "getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.d("liyz", "getBindingcarInfo onComplete"); + } + }); + + } + + /** + * 绑定和修改绑定车辆 + */ + public void modifyBindingcar(BindingcarCallBack callBack) { + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + BindingcarRequest request = new BindingcarRequest(sn, "48:b0:2d:3a:9c:19"); + RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); + mBindingcarApiService.modifyBindingcarInfo(requestBody) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.d("liyz", "modifyBindingcar onSubscribe -----> "); + } + + @Override + public void onNext(@NonNull ModifyBindingcarInfo info) { + if (info.getData() != null) { + callBack.callBackResult(info); + } + Log.d("liyz", "modifyBindingcar onNext info " + info.toString()); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.d("liyz", "modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.d("liyz", "modifyBindingcar onComplete "); + } + }); + } + + +} diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarRequest.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarRequest.java new file mode 100644 index 0000000000..e697f221ee --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarRequest.java @@ -0,0 +1,40 @@ +package com.mogo.eagle.core.function.bindingcar.network; + +/** + * @author lixiaopeng + * @description + * @since: 11/15/21 + */ +public class BindingcarRequest { + private String mac; + private String sn; + + public BindingcarRequest(String mac, String sn) { + this.mac = mac; + this.sn = sn; + } + + public String getMac() { + return mac; + } + + public void setMac(String mac) { + this.mac = mac; + } + + public String getSn() { + return sn; + } + + public void setSn(String sn) { + this.sn = sn; + } + + @Override + public String toString() { + return "BindingcarRequest{" + + "mac='" + mac + '\'' + + ", sn='" + sn + '\'' + + '}'; + } +} diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_close.png new file mode 100755 index 0000000000..c1381dc44c Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_close.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_item_background_p.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_item_background_p.9.png new file mode 100644 index 0000000000..a5dedc9ca3 Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_item_background_p.9.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_message_background.9.png new file mode 100644 index 0000000000..bf455a0ea2 Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_message_background.9.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_close.png new file mode 100755 index 0000000000..c1381dc44c Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_close.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_item_background_p.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_item_background_p.9.png new file mode 100644 index 0000000000..5b43f7451d Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_item_background_p.9.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_message_background.9.png new file mode 100644 index 0000000000..bf455a0ea2 Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_message_background.9.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_close.png new file mode 100755 index 0000000000..bb3e2b1195 Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_close.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_dialog_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_dialog_close.png new file mode 100644 index 0000000000..ba03e033d8 Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_dialog_close.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_item_background_p.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_item_background_p.9.png new file mode 100644 index 0000000000..87a3f9179d Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_item_background_p.9.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_message_background.9.png new file mode 100644 index 0000000000..d4a8803684 Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_message_background.9.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_clear_bg.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_clear_bg.xml new file mode 100644 index 0000000000..cb38368310 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_clear_bg.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_close.png new file mode 100755 index 0000000000..c1381dc44c Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_close.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_content_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_content_background.xml new file mode 100644 index 0000000000..8091d466be --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_content_background.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_decrease_timer_bkg.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_decrease_timer_bkg.xml new file mode 100644 index 0000000000..7031a78049 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_decrease_timer_bkg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_dialog_check_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_dialog_check_background.xml new file mode 100644 index 0000000000..4d721f27c8 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_dialog_check_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background.xml new file mode 100644 index 0000000000..a70936cd5d --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background_origin.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background_origin.xml new file mode 100644 index 0000000000..0d24d54394 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background_origin.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_left_button.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_left_button.xml new file mode 100644 index 0000000000..c17bfd5f97 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_left_button.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_message_background.9.png new file mode 100644 index 0000000000..80ab4b841f Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_message_background.9.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_recycler_item_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_recycler_item_background.xml new file mode 100644 index 0000000000..2c16e3f684 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_recycler_item_background.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_right_button.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_right_button.xml new file mode 100644 index 0000000000..3f828dcc61 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_right_button.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_delay_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_delay_background.xml new file mode 100644 index 0000000000..77a14ee943 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_delay_background.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_ic_message2.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_ic_message2.png new file mode 100644 index 0000000000..10f53d3374 Binary files /dev/null and b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_ic_message2.png differ diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_dialog_check.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_dialog_check.xml new file mode 100644 index 0000000000..8b13014fe8 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_dialog_check.xml @@ -0,0 +1,43 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item.xml new file mode 100644 index 0000000000..f6375db0f6 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item_origin.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item_origin.xml new file mode 100644 index 0000000000..3b2d2dc278 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item_origin.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item_vertical.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item_vertical.xml new file mode 100644 index 0000000000..d7829a2fb7 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_item_vertical.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_message_hisotry_fragment.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_message_hisotry_fragment.xml new file mode 100644 index 0000000000..15f8e2974e --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_message_hisotry_fragment.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_message_item.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_message_item.xml new file mode 100644 index 0000000000..a01bc6197c --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/layout/module_push_message_item.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-ldpi/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-ldpi/dimens.xml new file mode 100644 index 0000000000..1f1106b6c5 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-ldpi/dimens.xml @@ -0,0 +1,101 @@ + + + 16px + 352px + 32px + 32px + 16.5px + 12px + 20px + 18px + 210px + 13px + 15px + 18px + 320px + 180px + 16px + 320px + 160px + 9px + 20px + 0px + 48px + 10px + 14px + 28px + 20px + 20px + 90px + 5px + 84px + 38px + 36px + 100px + 64px + 24px + 16px + 44px + 2px + 20px + 27px + 16px + 64px + 8px + 16px + + 22px + 27px + 14px + 1.5px + 24px + 10px + 8px + 560px + 194px + 266px + 178px + 8px + 12px + 16px + 19px + 30px + 16px + 8px + 17px + 19px + 16px + 11px + 6px + 18px + 10px + 17px + 10px + 8px + 242px + 270px + 374px + 24px + 19px + 8px + 328px + 164px + 15px + 150px + 20px + 0px + 310px + 350px + 60px + 2px + 2px + 8px + 28px + 16px + 16px + 12px + 5px + 118px + 86px + 8px + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-mdpi/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-mdpi/dimens.xml new file mode 100644 index 0000000000..1f1106b6c5 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-mdpi/dimens.xml @@ -0,0 +1,101 @@ + + + 16px + 352px + 32px + 32px + 16.5px + 12px + 20px + 18px + 210px + 13px + 15px + 18px + 320px + 180px + 16px + 320px + 160px + 9px + 20px + 0px + 48px + 10px + 14px + 28px + 20px + 20px + 90px + 5px + 84px + 38px + 36px + 100px + 64px + 24px + 16px + 44px + 2px + 20px + 27px + 16px + 64px + 8px + 16px + + 22px + 27px + 14px + 1.5px + 24px + 10px + 8px + 560px + 194px + 266px + 178px + 8px + 12px + 16px + 19px + 30px + 16px + 8px + 17px + 19px + 16px + 11px + 6px + 18px + 10px + 17px + 10px + 8px + 242px + 270px + 374px + 24px + 19px + 8px + 328px + 164px + 15px + 150px + 20px + 0px + 310px + 350px + 60px + 2px + 2px + 8px + 28px + 16px + 16px + 12px + 5px + 118px + 86px + 8px + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi-2560x1440/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi-2560x1440/dimens.xml new file mode 100644 index 0000000000..4afc379245 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi-2560x1440/dimens.xml @@ -0,0 +1,39 @@ + + + + 230px + 230px + 230px + 30px + 21px + 34px + 33px + 2px + 120px + 30px + 55px + 42px + 208px + 394px + 42px + 567px + 100px + 20px + 34px + 34px + + + 1200px + 763px + 32px + 107px + 107px + 40px + 54px + 56px + 1000px + 33px + 43px + 20px + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..c7e71bf8e5 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,101 @@ + + + 30px + 660px + 60px + 60px + 31px + 22px + 38px + 32px + 394px + 24px + 28px + 34px + 600px + 338px + 30px + 605px + 300px + 16px + 53px + 0px + 90px + 20px + 26px + 50px + 36px + 36px + 160px + 10px + 151px + 72px + 68px + 180px + 120px + 50px + 22px + 6px + 84px + + 40px + 52px + 28px + 120px + 11px + 26px + 42px + 51px + 27px + 3px + 45px + 20px + 16px + 1000px + 350px + 480px + 320px + 17px + 21px + 30px + 33px + 50px + 30px + 14px + 30px + 27px + 30px + 21px + 11px + 34px + 20px + 30px + 20px + 15px + 242px + 486px + 700px + 30px + 33px + 16px + 640px + 296px + 30px + 250px + 20px + 0px + 618px + 350px + 120px + 20px + 20px + 20px + 50px + 28px + 29px + 22px + 11px + 212px + 154px + 10px + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/attr.xml new file mode 100644 index 0000000000..ca8014fc39 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/attr.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/colors.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/colors.xml new file mode 100644 index 0000000000..d01c09cbad --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFFFFFFF + #FFFFFF + #B2FFFFFF + #999999 + #B3FFFFFF + #5A8EFD + #E63B4577 + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/dimens.xml new file mode 100644 index 0000000000..dc5f0d6635 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/dimens.xml @@ -0,0 +1,126 @@ + + + 16px + 352px + 32px + 32px + 16.5px + 12px + 20px + 18px + 210px + 13px + 15px + 18px + 320px + 180px + 16px + 320px + 160px + 9px + 20px + 0px + 48px + 10px + 14px + 50px + 20px + 20px + 90px + 5px + 84px + 38px + 36px + 100px + 64px + 24px + 16px + 44px + 2px + 20px + 27px + 16px + 64px + 8px + 16px + + 22px + 27px + 14px + 1.5px + 24px + 10px + 8px + 560px + 194px + 266px + 178px + 8px + 12px + 16px + 19px + 30px + 16px + 8px + 17px + 19px + 16px + 11px + 6px + 18px + 10px + 17px + 10px + 8px + 242px + 270px + 374px + 24px + 19px + 8px + 328px + 164px + 15px + 150px + 20px + 0px + 310px + 350px + 60px + 2px + 2px + 8px + 28px + 16px + 16px + 12px + 5px + 118px + 86px + 8px + + + 34px + 567px + 100px + + 2px + 120px + 30px + 55px + 42px + 208px + + 1200px + 763px + 32px + 107px + 107px + 40px + 54px + 56px + 1000px + 33px + 43px + 20px + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/strings.xml new file mode 100644 index 0000000000..648d863848 --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ + + mogo-core-function-notice + 清除 + 清空历史消息 + 暂无消息 + 查看 + diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/styles.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/styles.xml new file mode 100644 index 0000000000..bb44cc75bc --- /dev/null +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/styles.xml @@ -0,0 +1,9 @@ + + + + diff --git a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/net/ChatServiceModel.kt b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/net/ChatServiceModel.kt index 58072fd676..9a88fd79e5 100644 --- a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/net/ChatServiceModel.kt +++ b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/net/ChatServiceModel.kt @@ -1,14 +1,11 @@ package com.mogo.eagle.core.function.chat.facade.net -import com.alibaba.android.arouter.launcher.ARouter import com.google.gson.Gson -import com.google.gson.JsonElement import com.google.gson.JsonObject import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.data.BaseResponse import com.mogo.eagle.core.data.chat.UserInfo -import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.chat.biz.ChatConsts import com.mogo.eagle.core.function.api.chat.biz.IMCallType.CALL_TYPE_VOICE import com.mogo.eagle.core.function.chat.facade.bridge.BridgeApi @@ -18,8 +15,8 @@ import com.mogo.eagle.core.function.chat.facade.net.bean.* import com.mogo.eagle.core.function.chat.facade.utils.log import com.mogo.map.MogoLocationClient import com.mogo.service.IMogoServiceApis +import com.mogo.eagle.core.network.MoGoRetrofitFactory import retrofit2.http.* -import java.lang.IllegalStateException internal class ChatServiceModel { @@ -35,11 +32,12 @@ internal class ChatServiceModel { } ?: false } - suspend fun queryUserInfo(sn: String): Pair? { + suspend fun queryUserInfo(sn: String): Pair? { val sns = arrayListOf(sn) val requestData = SnArrayRequestBody().also { it.sns = sns } return apiCall { - getNetWorkApi(getConfig())?.queryUserInfoBySnS(requestData) ?: throw IllegalStateException("apis is null.") + getNetWorkApi(getConfig())?.queryUserInfoBySnS(requestData) + ?: throw IllegalStateException("apis is null.") }.let { itx -> if (itx.code != 0 && itx.code != 200) { return@let Pair(Error(itx.code, itx.msg), null) @@ -84,11 +82,13 @@ internal class ChatServiceModel { map["data"] = Gson().toJson(params) return if (params.type == CALL_TYPE_VOICE.type) { apiCall { - getNetWorkApi()?.requestConnectStatus(sn, map) ?: throw IllegalStateException("apis is null.") + getNetWorkApi()?.requestConnectStatus(sn, map) + ?: throw IllegalStateException("apis is null.") } } else { apiCall { - getNetWorkApi()?.requestVehicleTeamConnectStatus(map) ?: throw IllegalStateException("apis is null.") + getNetWorkApi()?.requestVehicleTeamConnectStatus(map) + ?: throw IllegalStateException("apis is null.") } } } @@ -99,7 +99,8 @@ internal class ChatServiceModel { map["sn"] = MoGoAiCloudClientConfig.getInstance().sn map["data"] = Gson().toJson(param) return apiCall { - getNetWorkApi()?.inviteJoinVehicleTeam(map) ?: throw IllegalStateException("apis is null.") + getNetWorkApi()?.inviteJoinVehicleTeam(map) + ?: throw IllegalStateException("apis is null.") } } @@ -122,8 +123,7 @@ internal class ChatServiceModel { } private fun getNetWorkApi(baseUrl: String = ChatHttp.getBaseUrl()): HttpApi? { - val serviceApi: IMogoServiceApis? = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation() as? IMogoServiceApis - return serviceApi?.networkApi?.createNoCallAdapter(HttpApi::class.java, baseUrl) + return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl).create(HttpApi::class.java) } } @@ -131,7 +131,10 @@ internal interface HttpApi { @FormUrlEncoded @POST("/yycp-chat-service/car/voiceRoom/no/operate/v1") - suspend fun requestConnectStatus(@Query("sn") sn: String, @FieldMap connectStatus: Map): BaseResponse + suspend fun requestConnectStatus( + @Query("sn") sn: String, + @FieldMap connectStatus: Map + ): BaseResponse //邀请加入车队 @FormUrlEncoded diff --git a/core/function-impl/mogo-core-function-devatools/build.gradle b/core/function-impl/mogo-core-function-devatools/build.gradle index 89f499a564..da21494c74 100644 --- a/core/function-impl/mogo-core-function-devatools/build.gradle +++ b/core/function-impl/mogo-core-function-devatools/build.gradle @@ -82,6 +82,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.androidxrecyclerview + implementation rootProject.ext.dependencies.flexbox if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoserviceapi diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 251d6abdc6..6403838858 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -4,11 +4,15 @@ import android.annotation.SuppressLint import android.content.Context import android.view.View import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.data.chain.ChainLogParam import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.data.deva.chain.ChainLogParam +import com.mogo.eagle.core.data.deva.scene.SceneModule +import com.mogo.eagle.core.data.deva.scene.SceneTAG import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager +import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager +import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager import record_cache.RecordPanelOuterClass @@ -31,8 +35,8 @@ class DevaToolsProvider : IDevaToolsProvider { MogoLogCatchManager.startCatchLog() } - override fun startLogCatch(duration: Int) { - MogoLogCatchManager.startCatchLog(duration) + override fun startLogCatch(duration: Int, logPrefixName: String?) { + MogoLogCatchManager.startCatchLog(duration, logPrefixName) } override fun stopLogCatch() { @@ -48,6 +52,22 @@ class DevaToolsProvider : IDevaToolsProvider { traceManager.refreshTraceInfo(map) } + override fun getModuleTAG(): MutableMap { + return sceneManager.getModuleLogTAG() + } + + override fun updateModuleTAG(moduleTag: MutableMap) { + sceneManager.updateModuleTAG(moduleTag) + } + + override fun getSceneLogTAG(): MutableMap { + return sceneManager.getSceneLogTAG() + } + + override fun updateSceneTAG(sceneTag: MutableMap) { + sceneManager.updateSceneTAG(sceneTag) + } + override fun initBadCase(view: View, onShow: (() -> Unit)?, onHide: (() -> Unit)?) { BadCaseManager.init(view, onShow, onHide) } @@ -56,8 +76,11 @@ class DevaToolsProvider : IDevaToolsProvider { BadCaseManager.onReceiveBadCaseRecord(record) } + override fun showFeedbackWindow(ctx: Context) { + FeedbackManager.showFeedbackWindow(ctx) + } + override fun onDestroy() { MogoLogCatchManager.onDestroy() } - } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index 2bf4e937eb..06a844ec8a 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -4,6 +4,7 @@ import android.transition.AutoTransition import android.transition.TransitionManager import android.view.View import android.view.ViewGroup +import android.view.WindowManager import androidx.lifecycle.Lifecycle.Event import androidx.lifecycle.Lifecycle.Event.ON_DESTROY import androidx.lifecycle.LifecycleCoroutineScope @@ -16,12 +17,12 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.Utils -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.BadCaseResponse.Reason +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCasePresenter import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCaseView import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord +import com.zhjt.mogo_core_function_devatools.ext.toast import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel import record_cache.RecordPanelOuterClass @@ -36,8 +37,7 @@ internal object BadCaseManager : LifecycleEventObserver { * 超过此时间,case入口自动消失 */ - private val CASE_EXPIRE_DURATION: Long = - TimeUnit.HOURS.toMillis(4)/* TimeUnit.SECONDS.toMillis(10) */ + private val CASE_EXPIRE_DURATION: Long = TimeUnit.HOURS.toMillis(4)/* TimeUnit.SECONDS.toMillis(10) */ private var onShow: (() -> Unit)? = null private var onHide: (() -> Unit)? = null @@ -190,20 +190,20 @@ internal object BadCaseManager : LifecycleEventObserver { hideFloat = null }, onSelect = { reason -> - val uploadResult = - presenter.upload(mutableMapOf().also { itx -> - itx["carLicense"] = MoGoAiCloudClientConfig.getInstance().sn - itx["filename"] = record.fileName ?: "" - itx["filesize"] = record.total.toString() - itx["key"] = record.key ?: "" - itx["reason"] = reason.reason ?: "" - itx["duration"] = record.duration.toInt().toString() - itx["timestamp"] = record.timestamp - }) + val uploadResult = presenter.upload(mutableMapOf().also { itx -> + itx["carLicense"] = MoGoAiCloudClientConfig.getInstance().sn + itx["filename"] = record.fileName ?: "" + itx["filesize"] = record.total.toString() + itx["key"] = record.key ?: "" + itx["reason"] = reason.reason ?: "" + itx["duration"] = record.duration.toInt().toString() + itx["timestamp"] = record.timestamp + itx["channel"] = "0" + }) if (uploadResult == null || uploadResult.code != 200) { - ToastUtils.showShort("接管反馈失败") + it.context.toast("上报失败") } else { - ToastUtils.showShort("接管反馈成功") + it.context.toast("上报成功") record.consumed = true withContext(Dispatchers.IO) { presenter.deleteRecord(record) @@ -246,14 +246,16 @@ internal object BadCaseManager : LifecycleEventObserver { } } - private fun showBadCaseFloat( - onDismiss: () -> Unit, - onSelect: suspend (reason: Reason) -> Unit - ) { + private fun showBadCaseFloat(onDismiss: () -> Unit, onSelect:suspend (reason: Reason) -> Unit) { val context = viewHolder?.get()?.context ?: Utils.getApp() - BadCaseView(context).also { - it.register(record, onDismiss, onSelect) - hideFloat = CallerHmiManager.showBadCaseFloat(floatView = it) + BadCaseView(context).also { itx -> + itx.register(record, onDismiss, onSelect) + CallerHmiManager.showFloatWindow("BadCaseFloat", floatView = itx, WindowManager.LayoutParams().also { + it.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE + } + ).also { + hideFloat = it + } } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/BadCaseApi.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/BadCaseApi.kt deleted file mode 100644 index 07350f1355..0000000000 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/BadCaseApi.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.zhjt.mogo_core_function_devatools.badcase.api - -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.BadCaseResponse -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.UploadResult -import retrofit2.Response -import retrofit2.http.FieldMap -import retrofit2.http.FormUrlEncoded -import retrofit2.http.GET -import retrofit2.http.POST - -internal interface BadCaseApi { - - @FormUrlEncoded - @POST("/yycp-vehicle-management-service/tool/badcase/add") - suspend fun post(@FieldMap map: Map): Response - - @GET("/yycp-vehicle-management-service/tool/badcase/reasons") - suspend fun get(): Response -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCasePresenter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCasePresenter.kt index 6bd32d01fd..2cbff00cc6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCasePresenter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCasePresenter.kt @@ -2,7 +2,7 @@ package com.zhjt.mogo_core_function_devatools.badcase.biz import android.util.Log import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.UploadResult +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.UploadResult import com.zhjt.mogo_core_function_devatools.badcase.repository.Repository import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord @@ -12,7 +12,7 @@ internal class BadCasePresenter: IBadCasePresenter { Repository() } - override suspend fun loadBadCases() = repository.loadBadCases() + override suspend fun loadBadCases(isDriven: Boolean) = repository.loadBadCases(isDriven) override suspend fun insertRecord(record: AutoPilotRecord) { try { @@ -49,4 +49,8 @@ internal class BadCasePresenter: IBadCasePresenter { Log.d(BadCaseManager.TAG, " --- 2 ----") return repository.getLastModified() } + + override suspend fun getTaskId(): Int { + return repository.getTaskId() + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseView.kt index ace4779a78..9447dd82c2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseView.kt @@ -21,7 +21,7 @@ import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.utilcode.kotlin.* import com.mogo.eagle.core.utilcode.rv.divider.CommonDividerItemDecoration import com.zhjt.mogo_core_function_devatools.R -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.BadCaseResponse +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord import kotlinx.android.synthetic.main.layout_badcase_collect.view.* import kotlinx.coroutines.launch @@ -58,7 +58,7 @@ internal class BadCaseView: ConstraintLayout { LayoutInflater.from(context).inflate(R.layout.layout_badcase_collect, this, true) background = ColorDrawable(Color.parseColor("#F0151D41")) isClickable = true - layoutParams = ViewGroup.LayoutParams(960.toPixels().toInt(), 1528.toPixels().toInt()) + layoutParams = ViewGroup.LayoutParams(960.PX, 1600.PX) close?.onClick { onDismiss?.invoke() } @@ -69,8 +69,8 @@ internal class BadCaseView: ConstraintLayout { } } ok?.also { - val enabled = gradient(radius = 16.toPixels().toInt(), orientation = GradientDrawable.Orientation.LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(35, 146, 252), endColor = Color.rgb(28, 75, 252)) - val disabled = gradient(radius = 16.toPixels().toInt(), orientation = GradientDrawable.Orientation.LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(24, 71, 129), endColor = Color.rgb(21, 46, 129)) + val enabled = gradient(radius = 16.PX, orientation = GradientDrawable.Orientation.LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(35, 146, 252), endColor = Color.rgb(28, 75, 252)) + val disabled = gradient(radius = 16.PX, orientation = GradientDrawable.Orientation.LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(24, 71, 129), endColor = Color.rgb(21, 46, 129)) it.background = object : StateListDrawable() {}.also { itx -> itx.addState(intArrayOf(android.R.attr.state_enabled), enabled) itx.addState(StateSet.WILD_CARD, disabled) @@ -86,7 +86,7 @@ internal class BadCaseView: ConstraintLayout { scope.launchWhenCreated { time_of_take_over?.text = "接管时间: ${SimpleDateFormat("yyyy.MM.dd HH:mm", Locale.getDefault()).format(record?.toLongTime() ?: System.currentTimeMillis())}" showLoading() - presenter.loadBadCases().also { + presenter.loadBadCases(true).also { cases = it refresh(it) } @@ -101,7 +101,7 @@ internal class BadCaseView: ConstraintLayout { it.addItemDecoration( CommonDividerItemDecoration .Builder() - .verticalInnerSpace(50.toPixels().toInt()) + .verticalInnerSpace(50.PX) .build()) it.adapter = object : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BadCaseViewHolder = BadCaseViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.layout_badcase_item, parent, false)) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/IBadCasePresenter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/IBadCasePresenter.kt index f30877fd2a..f7a5b262d2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/IBadCasePresenter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/IBadCasePresenter.kt @@ -1,13 +1,13 @@ package com.zhjt.mogo_core_function_devatools.badcase.biz -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.BadCaseResponse -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.UploadResult +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.UploadResult import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord internal interface IBadCasePresenter { - suspend fun loadBadCases(): List + suspend fun loadBadCases(isDriven: Boolean): List suspend fun updateLastModified(timestamp: Long) @@ -20,4 +20,6 @@ internal interface IBadCasePresenter { suspend fun getUnConsumedRecords(): List suspend fun deleteRecord(record: AutoPilotRecord) + + suspend fun getTaskId(): Int } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/Repository.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/Repository.kt index b4916f254d..c559052c76 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/Repository.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/Repository.kt @@ -3,8 +3,8 @@ package com.zhjt.mogo_core_function_devatools.badcase.repository import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.BadCaseResponse.Reason -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.UploadResult +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.UploadResult import com.zhjt.mogo_core_function_devatools.badcase.repository.db.BadCaseDbModel import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord import com.zhjt.mogo_core_function_devatools.badcase.repository.net.BadCaseNetModel @@ -25,8 +25,22 @@ internal class Repository { BadCaseStore } - suspend fun loadBadCases(): List { - return net.get()?.data?.takeIf { it.isNotEmpty() }?.also { store.updateRecords(it) } ?: store.records().takeIf { it.isNotEmpty() } ?: getBuildIn() + suspend fun loadBadCases(isDriven: Boolean): List { + return mutableListOf().also { itx -> + net.get(if (isDriven) "被动" else "主动", itx, 1) + itx + .takeIf { it.isNotEmpty() } + ?.also { + store.updateRecords(it, isDriven) + } + ?: + store + .records(isDriven) + .takeIf { + it.isNotEmpty() + } + ?: getBuildIn(isDriven) + } } suspend fun uploadLastModified(timestamp: Long) { @@ -34,44 +48,94 @@ internal class Repository { } suspend fun getLastModified(): Long { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", " --- 3 ----") return store.getLastModified() } - private fun getBuildIn(): List { + private fun getBuildIn(isDriven: Boolean): List { CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- load cases from buildin -- 1 --") val data = mutableListOf() - data += Reason().also { - it.id = "1" - it.reason = "变道有干扰" - } - data += Reason().also { - it.id = "2" - it.reason = "遇红绿灯未停车" - } - data += Reason().also { - it.id = "3" - it.reason = "遇障碍物未停车" - } - data += Reason().also { - it.id = "4" - it.reason = "无法绕行" - } - data += Reason().also { - it.id = "5" - it.reason = "画龙" - } - data += Reason().also { - it.id = "6" - it.reason = "转弯过于靠近路侧" - } - data += Reason().also { - it.id = "7" - it.reason = "无故退出自动驾驶" - } - data += Reason().also { - it.id = "8" - it.reason = "其它" + if (isDriven) { + data += Reason().also { + it.id = "1" + it.reason = "变道有干扰" + it.channel = "被动" + } + data += Reason().also { + it.id = "2" + it.reason = "遇红绿灯未停车" + it.channel = "被动" + } + data += Reason().also { + it.id = "3" + it.reason = "遇障碍物未停车" + it.channel = "被动" + } + data += Reason().also { + it.id = "4" + it.reason = "无法绕行" + it.channel = "被动" + } + data += Reason().also { + it.id = "5" + it.reason = "画龙" + it.channel = "被动" + } + data += Reason().also { + it.id = "6" + it.reason = "转弯过于靠近路侧" + it.channel = "被动" + } + data += Reason().also { + it.id = "7" + it.reason = "无故退出自动驾驶" + it.channel = "被动" + } + data += Reason().also { + it.id = "8" + it.reason = "其它" + it.channel = "被动" + } + } else { + data += Reason().also { + it.id = "1" + it.reason = "定位异常" + it.channel = "主动" + } + data += Reason().also { + it.id = "2" + it.reason = "画龙" + it.channel = "主动" + } + data += Reason().also { + it.id = "3" + it.reason = "红绿灯不识别" + it.channel = "主动" + } + data += Reason().also { + it.id = "4" + it.reason = "地图异常" + it.channel = "主动" + } + data += Reason().also { + it.id = "5" + it.reason = "感知异常" + it.channel = "主动" + } + data += Reason().also { + it.id = "6" + it.reason = "业务异常" + it.channel = "主动" + } + data += Reason().also { + it.id = "7" + it.reason = "显示异常" + it.channel = "主动" + } + data += Reason().also { + it.id = "8" + it.reason = "其它" + it.channel = "主动" + } } return data } @@ -91,4 +155,8 @@ internal class Repository { suspend fun getAllUnConsumedRecord(): List? { return db.dao().getAllUnConsumedRecords() } + + suspend fun getTaskId(): Int { + return store.getTaskIdAndIncrement() + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/BadCaseNetModel.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/BadCaseNetModel.kt index 6fdb7e6f1e..4065bfabb5 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/BadCaseNetModel.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/BadCaseNetModel.kt @@ -4,29 +4,38 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager -import com.zhjt.mogo_core_function_devatools.badcase.api.BadCaseApi -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.BadCaseResponse -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.UploadResult +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.BadCaseApi +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.UploadResult import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseHost +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason +import kotlinx.coroutines.withContext +import kotlin.coroutines.coroutineContext internal class BadCaseNetModel { - suspend fun get(): BadCaseResponse? = try { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- load cases from net -- 1 --") - MoGoRetrofitFactory - .getInstance(BadCaseHost.getHost()) - .create(BadCaseApi::class.java) - .get() - .takeIf { - val body = it.body() - it.isSuccessful && body != null && (body.code == 0 || body.code == 200) - } - ?.body()?.also { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- load cases from net -- 2 --") - } - } catch (t: Throwable) { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- load cases from net -- 3 --") - null + suspend fun get(channel: String?, result: MutableList, pageNo: Int) { + try { + MoGoRetrofitFactory + .getInstance(BadCaseHost.getHost()) + .create(BadCaseApi::class.java) + .get(channel ?: "", pageNo) + .takeIf { + val body = it.body() + it.isSuccessful && body != null && (body.code == 0 || body.code == 200) + } + ?.body()?.also { + val data = it.data + if (data == null || it.total <= result.size) { + return@also + } + result += data + withContext(coroutineContext) { + get(channel, result, pageNo + 1) + } + } + } catch (t: Throwable) { + CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- load cases from net error: $t") + } } suspend fun upload(map: Map): UploadResult? = try { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/BadCaseApi.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/BadCaseApi.kt new file mode 100644 index 0000000000..44cfad5226 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/BadCaseApi.kt @@ -0,0 +1,16 @@ +package com.zhjt.mogo_core_function_devatools.badcase.repository.net.api + +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.UploadResult +import retrofit2.Response +import retrofit2.http.* + +internal interface BadCaseApi { + + @FormUrlEncoded + @POST("/yycp-vehicle-management-service/tool/badcase/add") + suspend fun post(@FieldMap map: Map): Response + + @GET("/yycp-vehicle-management-service/tool/badcase/reasons") + suspend fun get(@Query("channel", encoded = true) channel: String, @Query("pageNo") pageNo: Int): Response +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/entity/BadCaseResponse.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/entity/BadCaseResponse.kt similarity index 66% rename from core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/entity/BadCaseResponse.kt rename to core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/entity/BadCaseResponse.kt index e4d4382e7e..7829a4d9a9 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/entity/BadCaseResponse.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/entity/BadCaseResponse.kt @@ -1,4 +1,4 @@ -package com.zhjt.mogo_core_function_devatools.badcase.api.entity +package com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity import androidx.annotation.Keep import com.google.gson.annotations.Expose @@ -8,21 +8,22 @@ internal class BadCaseResponse { var code: Int = -1 var data: List? = null var msg: String? = null - var success: Boolean = false var total: Int = -1 - @Expose(serialize = false, deserialize = false) - var isBuildIn: Boolean = false - @Keep class Reason { var id: String? = null var reason: String? = null + var channel: String? = null /** * 业务字段,不参与序列化和反序列化 */ @Expose(deserialize = false, serialize = false) var isChecked: Boolean = false + + override fun toString(): String { + return "Reason(id=$id, reason=$reason, channel=$channel, isChecked=$isChecked)" + } } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/entity/UploadResult.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/entity/UploadResult.kt similarity index 80% rename from core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/entity/UploadResult.kt rename to core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/entity/UploadResult.kt index 8661560732..ac7babc0c3 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/api/entity/UploadResult.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/net/api/entity/UploadResult.kt @@ -1,4 +1,4 @@ -package com.zhjt.mogo_core_function_devatools.badcase.api.entity +package com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity import androidx.annotation.Keep diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/store/BadCaseStore.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/store/BadCaseStore.kt index 0ad0314a3a..fa131f363d 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/store/BadCaseStore.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/repository/store/BadCaseStore.kt @@ -7,7 +7,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.Utils import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager -import com.zhjt.mogo_core_function_devatools.badcase.api.entity.BadCaseResponse.Reason +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason import com.zhjt.mogo_core_function_devatools.badcase.generated.BadCauses import com.zhjt.mogo_core_function_devatools.badcase.generated.Cause import kotlinx.coroutines.FlowPreview @@ -28,7 +28,6 @@ internal object BadCaseStore { get() = BadCauses.getDefaultInstance() override suspend fun readFrom(input: InputStream): BadCauses = suspendCancellableCoroutine { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "--- readFrom ---") it.invokeOnCancellation { Thread.currentThread().interrupt() } @@ -55,38 +54,36 @@ internal object BadCaseStore { private val store: DataStore by lazy { - DataStoreFactory.create(serializer = serializer) { - File( - Utils.getApp().filesDir, - "bad_cases.pb" - ) - } + DataStoreFactory.create(serializer = serializer) { File(Utils.getApp().filesDir, "bad_cases.pb") } } - suspend fun updateRecords(reasons: List): BadCauses { + suspend fun updateRecords(reasons: List, isDriven: Boolean): BadCauses { CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "--- updateRecords ---") val data = mutableListOf() reasons.forEach { itx -> data += Cause.newBuilder().let { - it.id = itx.id - it.reason = itx.reason + it.id = itx.id ?: "" + it.reason = itx.reason ?: "" + it.channel = itx.channel ?: "" it.build() } } return store.updateData { itx -> - itx.toBuilder().clearData().addAllData(data).build() + if (isDriven) { + itx.toBuilder().clearDrivenData().addAllDrivenData(data).build() + } else { + itx.toBuilder().clearDrivingData().addAllDrivingData(data).build() + } } } suspend fun updateLastModified(timestamp: Long): BadCauses { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "--- updateLastModified ---") return store.updateData { itx -> itx.toBuilder().setLastModified(timestamp).build() } } suspend fun getLastModified(): Long { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", " --- 4 ----") return store .data .catch { @@ -101,17 +98,32 @@ internal object BadCaseStore { } @OptIn(FlowPreview::class) - suspend fun records(): List { - CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- load cases from pb -- 1 -- ") + suspend fun records(isDriven: Boolean): List { val causes = store.data.firstOrNull() - return causes?.dataList?.map { + val list = if (isDriven) causes?.drivenDataList else causes?.drivingDataList + return list?.map { Reason().also { itx -> itx.id = it.id itx.reason = it.reason + itx.channel = it.channel } }?.fold(mutableListOf()) { acc, reason -> acc += reason acc } ?: emptyList() } + + suspend fun getTaskIdAndIncrement(): Int { + val causes = store.data.firstOrNull() + val ret = causes?.taskId ?: 0 + return ret.also { + store.updateData { itx -> + var old = ret + if (old == Int.MAX_VALUE) { + old = 0 + } + itx.toBuilder().setTaskId(old + 1).build() + } + } + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/BadCaseExt.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/BadCaseExt.kt new file mode 100644 index 0000000000..c197424a72 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/BadCaseExt.kt @@ -0,0 +1,117 @@ +package com.zhjt.mogo_core_function_devatools.ext + +import android.R.id +import android.content.Context +import android.content.res.Resources +import android.graphics.Color +import android.graphics.Rect +import android.util.TypedValue +import android.view.Gravity +import android.view.View +import android.view.ViewTreeObserver +import android.view.WindowManager.LayoutParams +import android.widget.PopupWindow +import android.widget.TextView +import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.lifecycleScope +import com.mogo.eagle.core.utilcode.kotlin.PX +import com.mogo.eagle.core.utilcode.kotlin.lifeCycleOwner +import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope +import com.mogo.eagle.core.utilcode.kotlin.shape +import com.mogo.eagle.core.utilcode.reminder.Reminder +import com.mogo.eagle.core.utilcode.reminder.api.impl.PopupWindowReminder +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import java.util.concurrent.TimeUnit +import java.util.concurrent.TimeUnit.SECONDS + + +/** + * 只供BaseCase使用的Toast样式 + */ +internal fun Context.toast(text: CharSequence, duration: Long = 2, unit: TimeUnit = SECONDS) { + val activity = (this as? FragmentActivity) ?: throw IllegalStateException("please use Activity to trigger toast show.") + activity.lifeCycleScope.launchWhenResumed { + val pop = PopupWindow(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).also { + it.isOutsideTouchable = false + it.isTouchable = false + it.isFocusable = false + it.setBackgroundDrawable(shape(solid = Color.parseColor("#99000000"), radius = 32.PX)) + } + val tv = TextView(this@toast) + tv.setTextColor(Color.WHITE) + tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, 56.0f) + tv.setPaddingRelative(114.PX, 61.PX, 114.PX, 61.PX) + tv.text = text + pop.contentView = tv + val reminder = object : PopupWindowReminder(pop) { + override fun show() { + pop.showAtLocation(activity.window.decorView, Gravity.CENTER, 0, 0) + lifecycleOwner().lifecycleScope.launch { + delay(unit.toMillis(duration)) + hide() + } + } + override fun isOverride(): Boolean = true + } + Reminder.enqueue(activity.lifeCycleOwner, reminder) + } +} + +internal fun FragmentActivity.softKeyboardHeightChanged(block: ((height: Int) -> Unit)): ()-> Unit { + val decor = window.decorView + var softKeyboardDisplayed = false + var preBottom = 0 + val listener = object : ViewTreeObserver.OnGlobalLayoutListener { + override fun onGlobalLayout() { + val decorH = decor.height + val content = decor.findViewById(id.content) ?: return + val out = Rect() + content.getWindowVisibleDisplayFrame(out) + val navigationBarHeight = if (haveNavigationBar(this@softKeyboardHeightChanged)) getNavigationBarHeight(this@softKeyboardHeightChanged) else 0 + if (decorH - navigationBarHeight == out.bottom) { //收起软件盘 + if (!softKeyboardDisplayed) { + return + } + softKeyboardDisplayed = false + block.invoke(0) + } else { //展开软件盘 + if (softKeyboardDisplayed && preBottom == out.bottom) { + return + } + preBottom = out.bottom + softKeyboardDisplayed = true + if (out.bottom != 0) { + //计算软件盘高度 + val softKeyboardH = decorH - out.bottom - navigationBarHeight + if (softKeyboardH > 0) { + block.invoke(softKeyboardH) + } + } + } + } + } + decor.viewTreeObserver.addOnGlobalLayoutListener(listener) + return { + decor.viewTreeObserver.removeOnGlobalLayoutListener(listener) + } +} + +private fun haveNavigationBar(activity: FragmentActivity): Boolean { + val decorView = activity.window.decorView //获取根view高度 + val decorViewHeight = decorView.height + val contentView = decorView.findViewById(id.content) ?: return false + val rect = Rect() + contentView.getWindowVisibleDisplayFrame(rect) + return decorViewHeight - rect.bottom > 0 +} + +private fun getNavigationBarHeight(activity: FragmentActivity): Int { + var result = 0 + val res: Resources = activity.resources + val resourceId: Int = res.getIdentifier("navigation_bar_height", "dimen", "android") + if (resourceId > 0) { + result = res.getDimensionPixelSize(resourceId) + } + return result +} diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt new file mode 100644 index 0000000000..93b17a5d3b --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt @@ -0,0 +1,214 @@ +package com.zhjt.mogo_core_function_devatools.feedback + +import android.content.Context +import android.text.TextUtils +import android.util.Log +import android.view.WindowManager +import android.widget.TextView +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.utilcode.kotlin.* +import com.mogo.eagle.core.utilcode.mogo.toast.TipToast +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason +import com.zhjt.mogo_core_function_devatools.badcase.toRecord +import com.zhjt.mogo_core_function_devatools.ext.toast +import com.zhjt.mogo_core_function_devatools.feedback.biz.FeedBackView +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase +import com.zhjt.mogo_core_function_devatools.feedback.biz.impl.FeedbackPresenter +import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.Channel +import record_cache.RecordPanelOuterClass +import java.lang.IllegalStateException +import kotlin.Result.Companion + +internal object FeedbackManager { + + const val TAG = "feedback" + private var hideFloat: (() -> Unit)? = null + private val presenter by lazy { FeedbackPresenter() } + + @OptIn(ExperimentalCoroutinesApi::class) + private var autoPilotCallback = Channel(Channel.RENDEZVOUS) + @Synchronized + get() = if (field.isClosedForReceive || field.isClosedForSend) { + field = Channel(Channel.RENDEZVOUS) + field + } else field + + + fun showFeedbackWindow(ctx: Context) { + CallerHmiManager.showFloatWindow("Feedback", FeedBackView(ctx).also { itx -> + itx.registerCallback(object : IFeedbackCallback { + override fun onClose() { + hideFloat?.invoke() + } + override fun onBadCaseItemClicked(reason: Reason) { + val oldData = itx.adapter.data ?: return + if (reason.isChecked) { + return + } + reason.isChecked = true + val badCase = oldData.firstOrNull() as? BadCase + badCase?.reasons?.filterNot { it.id == reason.id }?.forEach { + it.isChecked = false + } + itx.adapter.notifyItemChanged(0) + } + override fun onStartBadCaseRecord(record: TextView) { + if (!CallerAutoPilotManager.isConnected()) { + TipToast.shortTip("请检查车机与域控制器连接是否正常") + return + } + val data = itx.adapter.data ?: return + val badCase = data.firstOrNull() as? BadCase ?: return + val checked = badCase.reasons.find { it.isChecked } + if (checked == null) { + TipToast.shortTip("请选择一个Case") + return + } + record.scope.launch { + val taskId = presenter.getBadCaseTaskId() + val listener = object : IMoGoAutopilotIdentifyListener { + override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) { + super.onAutopilotRecordResult(recordPanel) + val newRecord = recordPanel.toRecord() + Log.d(TAG, "-- 收到工控机录制任务回调 -- $recordPanel") + if (newRecord.type == 1 && newRecord.id == taskId) { + if (newRecord.stat == 100 || newRecord.stat == 101) { + Log.d(TAG, "录制Bag完成, 触发结束录制全量日志 ...") + stopRecordLog(newRecord) + launch { + send(newRecord) + } + } + if (newRecord.stat == 300) { + Log.d(TAG, "录制Bag开始, 触发录制全量日志 ...") + startRecordLog(newRecord) + } + } + } + } + CallerAutopilotIdentifyListenerManager.addListener("Feedback", listener) + record.onDetach { + CallerAutopilotIdentifyListenerManager.removeListener("Feedback") + hideFloat = null + } + record.text = "结束录制" + record.setTag(R.id.feed_back_badcase_tag, 1) + record.setTag(R.id.feed_back_badcase_taskid_tag, taskId) + recordBag(1, taskId, 20) + Log.d(TAG, "延时20秒开始....") + delay(20000) //延时20秒 + Log.d(TAG, "延时20秒结束....") + stopRecordBag(1, taskId) + upload(record.context, badCase, checked) + }.also { + record.setTag(R.id.feed_back_badcase_job, it) + } + } + + override fun onStopBadCaseRecord(record: TextView) { + val data = itx.adapter.data ?: return + val badCase = data.firstOrNull() as? BadCase ?: return + val checked = badCase.reasons.find { it.isChecked } ?: throw IllegalStateException("这种状态不存在") + val taskId = (record.getTag(R.id.feed_back_badcase_taskid_tag) as? Int) ?: throw IllegalStateException("TaskId 不存在") + val oldJob = record.getTag(R.id.feed_back_badcase_job) as? Job + record.scope.launch { + stopRecordBag(1, taskId) + oldJob?.safeCancel() + upload(record.context, badCase, checked) + } + } + }) + }, WindowManager.LayoutParams().also { + it.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN + } + ).also { hideFloat = it } + } + + private fun startRecordLog(record: AutoPilotRecord) { + //val fileName = record.fileName + //添加全量日志开始录制 + CallerDevaToolsManager.startCatchLog(1,record.fileName) + } + + private fun stopRecordLog(newRecord: AutoPilotRecord) { + //val fileName = record.fileName + //添加全量日志结束录制 + CallerDevaToolsManager.startCatchLog() + } + + private suspend fun upload(ctx: Context, badCase: BadCase, checked: Reason) { + val result = receive() + val remark = badCase.remark.text + presenter.upload(mutableMapOf().also { itx -> + itx["carLicense"] = MoGoAiCloudClientConfig.getInstance().sn + itx["filename"] = result.fileName ?: "" + itx["filesize"] = result.total.toString() + itx["key"] = result.key ?: "" + itx["reason"] = checked.reason ?: "" + itx["duration"] = result.duration.toInt().toString() + itx["timestamp"] = result.timestamp + itx["channel"] = "1" + if (!TextUtils.isEmpty(remark)) { + itx["remark"] = remark.toString() + } + }).also { + if (it == null || it.code != 200) { + ctx.toast("上报失败") + } else { + ctx.toast("上报成功") + hideFloat?.invoke() + } + } + } + + private suspend fun send(record: AutoPilotRecord) = autoPilotCallback.send(record) + + private suspend fun receive(): AutoPilotRecord = autoPilotCallback.receive() + + private suspend fun recordBag(type: Int, id: Int, duration: Int) = suspendCancellableCoroutine { + val future = ThreadUtils.getIoPool().submit { + try { + CallerAutoPilotManager.recordPackage(type, id, duration) + it.resumeWith(Result.success(Unit)) + } catch (t: Throwable) { + it.resumeWith(Companion.failure(t)) + } + } + it.invokeOnCancellation { + try { + future.cancel(true) + } catch (t: Throwable) { + t.printStackTrace() + } + + } + } + + private suspend fun stopRecordBag(type: Int, id: Int) = suspendCancellableCoroutine { + val future = ThreadUtils.getIoPool().submit { + try { + CallerAutoPilotManager.stopRecord(type, id) + it.resumeWith(Result.success(Unit)) + } catch (t: Throwable) { + it.resumeWith(Companion.failure(t)) + } + } + it.invokeOnCancellation { + try { + future.cancel(true) + } catch (t: Throwable) { + t.printStackTrace() + } + } + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt new file mode 100644 index 0000000000..edd41f2892 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt @@ -0,0 +1,139 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz + +import android.content.Context +import android.graphics.Color +import android.graphics.Rect +import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.GradientDrawable +import android.util.AttributeSet +import android.util.Log +import android.view.* +import android.widget.EditText +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.Lifecycle.Event.ON_DESTROY +import androidx.lifecycle.lifecycleScope +import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.eagle.core.utilcode.kotlin.* +import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.ext.softKeyboardHeightChanged +import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager +import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.FeedbackAdapter +import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.BadCaseFBViewHolder +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback +import com.zhjt.mogo_core_function_devatools.feedback.biz.impl.FeedbackPresenter +import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback +import kotlinx.android.synthetic.main.layout_fb.view.* + + +internal class FeedBackView : ConstraintLayout { + + private var cb: IFeedbackCallback? = null + private var softKeyboardCb: (() -> Unit)? = null + private var editOutRect: Rect = Rect() + private val presenter by lazy { + FeedbackPresenter() + } + private var rvTransAnimator: ViewPropertyAnimator? = null + + private val scope by lazy { + lifecycleOwner.lifecycleScope + } + + internal val adapter by lazy { + FeedbackAdapter { itx -> + if (itx is BadCaseFBViewHolder) { + itx.itemView.findViewById(R.id.et).also { + val listener = object : ViewTreeObserver.OnPreDrawListener { + override fun onPreDraw(): Boolean { + it.viewTreeObserver.removeOnPreDrawListener(this) + it.getGlobalVisibleRect(editOutRect) + return true + } + } + it.viewTreeObserver.addOnPreDrawListener(listener) + } + } + } + } + + constructor(context: Context) : this(context, null) + constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { + LayoutInflater.from(context).inflate(R.layout.layout_fb, this, true).also { + observe(arrayOf(ON_DESTROY)) { itx -> + if (itx == ON_DESTROY) { + cb = null + softKeyboardCb?.invoke() + } + } + } + layoutParams = ViewGroup.LayoutParams(960.PX, 1600.PX) + close.onClick { + cb?.onClose() + } + + top_mask?.background = gradient(orientation = GradientDrawable.Orientation.TOP_BOTTOM, startColor = Color.parseColor("#151D41"), endColor = Color.parseColor("#05151D41")) + background = ColorDrawable(Color.parseColor("#F0151D41")) + rv?.also { + it.fixGestureConflictForViews(listOf(R.id.et)) + it.itemAnimator?.run { + changeDuration = 0 + addDuration = 0 + moveDuration = 0 + removeDuration = 0 + } + it.adapter = adapter + it.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) + loadFeedbackAndRefresh() + } + val activity = context as? FragmentActivity + activity?.also { itx -> + itx.softKeyboardHeightChanged { + Log.d(FeedbackManager.TAG, "-- onHeightChanged ---:H -> $it") + if (it == 0) { + transitionTo(0) + } else { + editOutRect.run { + transitionTo(-( it - top + height() + 240.PX)) + } + } + }.also { + softKeyboardCb = it + } + } + } + + private fun transitionTo(targetY: Int) { + rv?.also { itx -> + rvTransAnimator?.cancel() + itx.animate().translationY(targetY.toFloat()).setDuration(200).also { + rvTransAnimator = it + }.start() + } + } + + private fun loadFeedbackAndRefresh() { + scope.launchWhenCreated { + showLoading() + presenter.loadFeedBacks().also { + adapter.data = it + } + hideLoading() + } + } + + private fun showLoading() { + pb?.visibility = View.VISIBLE + } + + private fun hideLoading() { + pb?.visibility = View.GONE + } + + fun registerCallback(cb: IFeedbackCallback) { + this.cb = cb + this.adapter.setCallback(cb) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/IFeedbackPresenter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/IFeedbackPresenter.kt new file mode 100644 index 0000000000..31dfbea827 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/IFeedbackPresenter.kt @@ -0,0 +1,14 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz + +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.UploadResult +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback + + +internal interface IFeedbackPresenter { + + suspend fun loadFeedBacks(): List + + suspend fun getBadCaseTaskId(): Int + + suspend fun upload(params: Map): UploadResult? +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/FeedbackAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/FeedbackAdapter.kt new file mode 100644 index 0000000000..97f49bf744 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/FeedbackAdapter.kt @@ -0,0 +1,68 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz.adapter + +import android.util.Log +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.RecyclerView +import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager +import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.BadCaseFBViewHolder +import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.base.FeedbackViewHolder +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase +import com.zhjt.mogo_core_function_devatools.feedback.biz.diff.FeedbackDiffCallback +import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback + +internal class FeedbackAdapter(val onHolderAttached: (holder: FeedbackViewHolder<*>) -> Unit): RecyclerView.Adapter>() { + + companion object { + const val ITEM_TYPE_BAD_CASE = 0x0101 + } + + private var cb: IFeedbackCallback? = null + + var data: List? = null + @Synchronized + set(value) { + val result = DiffUtil.calculateDiff(FeedbackDiffCallback(field, value)) + result.dispatchUpdatesTo(this) + field = value + } + + override fun getItemViewType(position: Int): Int { + val data = data ?: return super.getItemViewType(position) + when(val item = data[position]) { + is BadCase -> { + Log.d(FeedbackManager.TAG, "item->$item") + return ITEM_TYPE_BAD_CASE + } + } + return super.getItemViewType(position) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FeedbackViewHolder { + when (viewType) { + ITEM_TYPE_BAD_CASE -> { + return BadCaseFBViewHolder(cb, parent) as FeedbackViewHolder + } + else -> { + throw IllegalStateException("不支持ViewType: $viewType") + } + } + } + + override fun onBindViewHolder(holder: FeedbackViewHolder, position: Int) { + val item = data?.get(position) ?: return + holder.onBind(item, position) + } + + override fun getItemCount(): Int = data?.size ?: 0 + + fun setCallback(cb: IFeedbackCallback) { + this.cb = cb + } + + override fun onViewAttachedToWindow(holder: FeedbackViewHolder) { + super.onViewAttachedToWindow(holder) + onHolderAttached.invoke(holder) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/BadCaseFBViewHolder.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/BadCaseFBViewHolder.kt new file mode 100644 index 0000000000..66c4aa06cd --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/BadCaseFBViewHolder.kt @@ -0,0 +1,161 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.GradientDrawable.Orientation.LEFT_RIGHT +import android.graphics.drawable.StateListDrawable +import android.text.Selection +import android.text.TextUtils +import android.text.TextUtils.TruncateAt.END +import android.util.StateSet +import android.util.TypedValue +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.EditText +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView +import androidx.core.content.ContextCompat +import com.google.android.flexbox.FlexboxLayout +import com.mogo.eagle.core.utilcode.kotlin.* +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason +import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.base.FeedbackViewHolder +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase +import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback + + +@SuppressLint("SetTextI18n") +internal class BadCaseFBViewHolder(cb: IFeedbackCallback?, parent: ViewGroup): FeedbackViewHolder(cb, + LayoutInflater + .from(parent.context) + .inflate(R.layout.layout_fb_badcase, parent, false)) { + + private val flex by lazy { + itemView.findViewById(R.id.flex) + } + + private val et by lazy { + itemView.findViewById(R.id.et) + } + + private val editParent by lazy { + itemView.findViewById(R.id.et_root) + } + + init { + itemView.findViewById(R.id.record).also { + it.background = gradient(radius = 16.PX, orientation = LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(35, 146, 252), endColor = Color.rgb(28, 75, 252)) + it.onClick { _ -> + val flag = (it.getTag(R.id.feed_back_badcase_tag) as? Int) ?: 0 + if (flag == 0) { + cb?.onStartBadCaseRecord(it) + } else { + cb?.onStopBadCaseRecord(it) + } + } + } + + editParent.also { + it.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX) + } + val words = itemView.findViewById(R.id.words_count) + et.onClick { + it.requestFocus() + it.isFocusable = true + it.isFocusableInTouchMode = true + editParent.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX, stroke = Color.parseColor("#5EBFFF"), strokeWidth = 2.PX) + } + et.watch( + 200, + onCountChanged = { + words.spannableText(listOf(it.toString(), "/200"), listOf(Color.parseColor("#5EBFFF"), Color.WHITE)) + }, + onTextChanged = { + data().remark.text = it?.toString() ?: "" + }, + onReachMaxCountAction = { + ToastUtils.showShort("已超过最大字符数") + } + ) + } + + override fun onBind(data: BadCase, position: Int) { + super.onBind(data, position) + flex.refresh(data) + val text = data.remark.text + if (!TextUtils.isEmpty(text)) { + et.setText(text) + Selection.setSelection(et.text, et.text.length) + editParent.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX, stroke = Color.parseColor("#5EBFFF"), strokeWidth = 2.PX) + } else { + editParent.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX) + } + } + + private fun FlexboxLayout.refresh(data: BadCase) { + val vh = (tag as? Map<*, *> ?: emptyMap()).toMutableMap() + if (vh.isEmpty()) { + data.reasons.forEach { itx -> + val view = getBadCaseView(context) + val check = view.findViewById(R.id.check) + check.background = StateListDrawable().also { + it.addState(intArrayOf(android.R.attr.state_selected), ContextCompat.getDrawable(itemView.context, R.drawable.icon_ap_badcase_check)) + it.addState(StateSet.WILD_CARD, ContextCompat.getDrawable(itemView.context, R.drawable.icon_ap_badcase_default)) + } + check.isSelected = itx.isChecked + val reason = view.findViewById(R.id.reason) + reason.text = itx.reason + vh[itx] = ViewHolder(check, reason) + view.onClick { + cb?.onBadCaseItemClicked(itx) + } + view.layoutParams = FlexboxLayout.LayoutParams(FlexboxLayout.LayoutParams.WRAP_CONTENT, FlexboxLayout.LayoutParams.WRAP_CONTENT).also { + it.flexBasisPercent = 0.5f + } + addView(view) + } + tag = vh + } else { + data.reasons.forEach { + (vh[it] as? ViewHolder)?.run { + check.isSelected = it.isChecked + reason.text = it.reason + } + } + } + } + + private fun getBadCaseView(context: Context): View { + return LinearLayout(context).also { itx -> + itx.orientation = LinearLayout.HORIZONTAL + itx.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) + itx.gravity = Gravity.CENTER_VERTICAL + + //ImageView -- check + val check = ImageView(context) + check.layoutParams = LinearLayout.LayoutParams(70.PX, 70.PX) + check.id = R.id.check + itx.addView(check) + + //TextView -- Reason + val reason = TextView(context) + reason.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT).also { + it.marginStart = 30.PX + it.marginEnd = 20.PX + } + reason.setTextColor(Color.WHITE) + reason.setTextSize(TypedValue.COMPLEX_UNIT_PX, 42.0f) + reason.maxLines = 1 + reason.ellipsize = END + reason.id = R.id.reason + itx.addView(reason) + } + } + + private data class ViewHolder(val check: ImageView, val reason: TextView) +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/base/FeedbackViewHolder.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/base/FeedbackViewHolder.kt new file mode 100644 index 0000000000..d058d78327 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/base/FeedbackViewHolder.kt @@ -0,0 +1,22 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.base + +import android.view.View +import androidx.annotation.CallSuper +import androidx.recyclerview.widget.RecyclerView +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback +import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback +import java.util.concurrent.atomic.AtomicReference + +internal open class FeedbackViewHolder(internal val cb: IFeedbackCallback?, view: View): RecyclerView.ViewHolder(view) { + + private val data by lazy { AtomicReference() } + + fun data(): T { + return data.get() + } + + @CallSuper + open fun onBind(data: T, position: Int) { + this.data.set(data) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/bean/Feedback.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/bean/Feedback.kt new file mode 100644 index 0000000000..7ee31743d4 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/bean/Feedback.kt @@ -0,0 +1,28 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz.bean + +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason + +internal sealed class Feedback { + + class BadCase(var remark: Remark, var reasons: List): Feedback() { + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + other as BadCase + if (reasons != other.reasons) return false + return true + } + + override fun hashCode(): Int { + return reasons.hashCode() + } + } +} + +/** + * 记录文本编辑框的状态 + * @param text: 文件编辑框中输入的文字 + * @param cursorPos: 光标位置 + */ +data class Remark(var text: CharSequence = "", var cursorPos: Int = 0) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/diff/FeedbackDiffCallback.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/diff/FeedbackDiffCallback.kt new file mode 100644 index 0000000000..71da2796f2 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/diff/FeedbackDiffCallback.kt @@ -0,0 +1,25 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz.diff + +import androidx.recyclerview.widget.DiffUtil +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase + +internal class FeedbackDiffCallback(private val oldData: List?, private val newData: List?): DiffUtil.Callback() { + + override fun getOldListSize(): Int { + return oldData?.size ?: 0 + } + + override fun getNewListSize(): Int = newData?.size ?: 0 + + override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean = oldData?.takeIf { it.size > oldItemPosition }?.equals(newData?.takeIf { it.size > newItemPosition }) ?: false + + override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { + val oldItem = oldData?.get(oldItemPosition) + val newItem = newData?.get(newItemPosition) + if (oldItem == null || newItem == null) { + return false + } + return oldItem == newItem + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/impl/FeedbackPresenter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/impl/FeedbackPresenter.kt new file mode 100644 index 0000000000..e6d89e9168 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/impl/FeedbackPresenter.kt @@ -0,0 +1,28 @@ +package com.zhjt.mogo_core_function_devatools.feedback.biz.impl + +import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCasePresenter +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.UploadResult +import com.zhjt.mogo_core_function_devatools.feedback.biz.IFeedbackPresenter +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase +import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Remark + +internal class FeedbackPresenter: IFeedbackPresenter { + + private val badCase by lazy { + BadCasePresenter() + } + + override suspend fun loadFeedBacks(): List = mutableListOf().also { + //添加BadCase数据 + it += BadCase(Remark(), badCase.loadBadCases(false)) + } + + override suspend fun getBadCaseTaskId(): Int { + return badCase.getTaskId() + } + + override suspend fun upload(params: Map): UploadResult? { + return badCase.upload(params) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/callback/IFeedbackCallback.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/callback/IFeedbackCallback.kt new file mode 100644 index 0000000000..6bc329121d --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/callback/IFeedbackCallback.kt @@ -0,0 +1,28 @@ +package com.zhjt.mogo_core_function_devatools.feedback.callback + +import android.view.View +import android.widget.TextView +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason + +internal interface IFeedbackCallback { + + /** + * 点击关闭弹窗按钮时回调 + */ + fun onClose() + + /** + * BadCase某一条目被点击了 + */ + fun onBadCaseItemClicked(reason: Reason) + + /** + * 点击开始录制 + */ + fun onStartBadCaseRecord(record: TextView) + + /** + * 点击停止录制 + */ + fun onStopBadCaseRecord(record: TextView) +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt index 2cb25a49a9..f0c5c94477 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt @@ -10,12 +10,12 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.constants.MoGoConfig -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel import com.mogo.eagle.core.utilcode.mogo.logger.Logger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA 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 @@ -103,14 +103,14 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl return false } - fun startCatchLog(duration: Int = 10) { + fun startCatchLog(duration: Int = 10, logPrefixName: String? = null) { if (catchingList.contains(MANUAL_CATCH_PKG_NAME)) { TipToast.shortTip("已经在抓取日志了,请稍后再试") } else { CallerLogger.d("$M_DEVA$TAG", "开始抓取日志==== duration : $duration") manualContent.type = START_CATCH_LOG manualContent.duration = duration - startCatchLog(manualContent) + startCatchLog(manualContent, logPrefixName) } } @@ -120,7 +120,7 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl stopCatchLog(manualContent) } - private fun startCatchLog(content: RemoteLogPushContent) { + private fun startCatchLog(content: RemoteLogPushContent, logPrefixName: String? = null) { catchingList.add(content.pkgName) var delay = (content.duration).toLong() handler.removeMessages(MSG_TRY_CLOSE_LOG) @@ -136,6 +136,7 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl mContext, MoGoAiCloudClientConfig.getInstance().sn, AppConfigInfo.toString(), + logPrefixName?.replace("_", "-"), content, this ) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt index a1ad4ca389..55205d11a9 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt @@ -1,17 +1,131 @@ package com.zhjt.mogo_core_function_devatools.scene +import com.mogo.eagle.core.data.deva.scene.SceneLogTAG +import com.mogo.eagle.core.data.deva.scene.SceneModule +import com.mogo.eagle.core.data.deva.scene.SceneModuleTAG +import com.mogo.eagle.core.data.deva.scene.SceneTAG +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.scene.Scene.Companion.scene +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_NETWORK +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OLD_ROUTE +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_V2X +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneLogCache -//todo 1. SceneLogCache增加模块名称,提供场景需要 -//todo 2. 对特定场景提供数据, 网约车,调度... + +//1. SceneLogCache增加模块名称,提供场景需要 +//2. 对特定场景提供数据, 网约车,调度... class SceneManager { companion object { + + private const val ADAS = "ADAS" + private const val DEVA = "DEVA" + private const val HMI = "HMI" + private const val OBU = "OBU" + private const val V2X = "V2X" + private const val ROUTE = "ROUTE" + private const val NET = "NET" + private const val BUS = "BUS" + private const val TAXI = "TAXI" + private const val TAXI_P = "TAXI-P" + val sceneManager: SceneManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { SceneManager() } } - fun init(){ + private var sceneCache: MutableMap = scene.getSceneCache() + private var sceneModuleTAG: SceneModuleTAG = SceneModuleTAG(mutableMapOf()) + private var sceneLogTAG: SceneLogTAG = SceneLogTAG(mutableMapOf()) + fun init() { + //过滤所需条件 + sceneModuleTAG.map[ADAS] = SceneModule(true, M_ADAS_IMPL) + sceneModuleTAG.map[DEVA] = SceneModule(true, M_DEVA) + sceneModuleTAG.map[HMI] = SceneModule(true, M_HMI) + sceneModuleTAG.map[OBU] = SceneModule(false, M_OBU) + sceneModuleTAG.map[V2X] = SceneModule(true, M_V2X) + sceneModuleTAG.map[ROUTE] = SceneModule(true, M_OLD_ROUTE) + sceneModuleTAG.map[NET] = SceneModule(true, M_NETWORK) + sceneModuleTAG.map[BUS] = SceneModule(false, M_BUS) + sceneModuleTAG.map[TAXI] = SceneModule(false, M_TAXI) + sceneModuleTAG.map[TAXI_P] = SceneModule(false, M_TAXI_P) + + sceneLogTAG.map[TAXI] = SceneTAG(false) + sceneLogTAG.map[BUS] = SceneTAG(false) + } + + fun getModuleLogTAG(): MutableMap { + return sceneModuleTAG.map + } + + fun getSceneLogTAG(): MutableMap { + return sceneLogTAG.map + } + + fun updateModuleTAG(moduleTag: MutableMap) { + moduleTag.iterator().forEach { map -> + val name = map.value.name + val logger = map.value.log + name?.let { + val sceneLogCache = sceneCache[it] + sceneLogCache?.let { logCache -> + logCache.logger = logger + sceneCache[it] = logCache + } + } + } + scene.updateSceneCache(sceneCache) + } + + fun updateSceneTAG(sceneTag: MutableMap) { + sceneTag.iterator().forEach { map -> + realUpdateSceneTAG(map.key, map.value.log) + } + updateSceneModuleTAG() + } + + private fun updateSceneModuleTAG() { + sceneModuleTAG.map.iterator().forEach { map -> + val sceneModule = map.value + val sceneLogCache = sceneCache[sceneModule.name] + sceneLogCache?.let { + sceneModule.log = it.logger + } + map.setValue(sceneModule) + } + //call back + CallerDevaToolsListenerManager.invokeDevaToolsModuleLogChanges(sceneModuleTAG.map) + } + + private fun realUpdateSceneTAG(name: String, logger: Boolean) { + when (name) { + TAXI -> { + sceneCache[M_TAXI]?.logger = logger + sceneCache[M_TAXI_P]?.logger = logger + sceneCache[M_NETWORK]?.logger = logger + sceneCache[M_ADAS_IMPL]?.logger = logger + sceneCache[M_HMI]?.logger = logger + sceneCache[M_DEVA]?.logger = logger + sceneCache[M_OLD_ROUTE]?.logger = logger + scene.updateSceneCache(sceneCache) + } + BUS -> { + sceneCache[M_BUS]?.logger = logger + sceneCache[M_NETWORK]?.logger = logger + sceneCache[M_ADAS_IMPL]?.logger = logger + sceneCache[M_HMI]?.logger = logger + sceneCache[M_DEVA]?.logger = logger + sceneCache[M_OLD_ROUTE]?.logger = logger + scene.updateSceneCache(sceneCache) + } + } } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt index 60444f2466..23694c81a2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt @@ -2,8 +2,8 @@ package com.zhjt.mogo_core_function_devatools.trace import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.eagle.core.data.chain.ChainConstant -import com.mogo.eagle.core.data.chain.ChainLogParam +import com.mogo.eagle.core.data.deva.chain.ChainConstant +import com.mogo.eagle.core.data.deva.chain.ChainLogParam import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.DeviceUtils diff --git a/core/function-impl/mogo-core-function-devatools/src/main/proto/badcase.proto b/core/function-impl/mogo-core-function-devatools/src/main/proto/badcase.proto index d76f5ad9a0..d3b6edaf65 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/proto/badcase.proto +++ b/core/function-impl/mogo-core-function-devatools/src/main/proto/badcase.proto @@ -6,12 +6,15 @@ option java_outer_classname = "BadCausesProto"; message BadCauses { int64 lastModified = 1; - repeated Cause data = 2 ; + repeated Cause drivenData = 2 ; //被动触发BadCase数据 + int32 taskId = 3; + repeated Cause drivingData = 4; //主动触发BadCase数据 } message Cause { string id = 1; string reason = 2; + string channel = 3; } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/flex_divider.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/flex_divider.xml new file mode 100644 index 0000000000..1b193db85f --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/flex_divider.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_collect.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_collect.xml index fbc2562dba..3e0e5ae2a7 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_collect.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_collect.xml @@ -103,7 +103,7 @@ android:id="@+id/pb" android:layout_width="wrap_content" android:layout_height="wrap_content" - style="@android:style/Widget.Holo.ProgressBar.Large" + style="@android:style/Widget.Holo.Light.ProgressBar.Inverse" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_item.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_item.xml index 339adbdf24..1c336dfac4 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_item.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_item.xml @@ -2,15 +2,16 @@ + android:gravity="center_vertical" + tools:ignore="HardcodedText,PxUsage,ContentDescription"> + android:layout_marginStart="113px" /> + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb_badcase.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb_badcase.xml new file mode 100644 index 0000000000..4ecd6f8bfa --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb_badcase.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/values/ids.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/values/ids.xml new file mode 100644 index 0000000000..eefb61e677 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/values/ids.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml new file mode 100644 index 0000000000..c29106e01a --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-hmi/src/main/AndroidManifest.xml index a606583b11..dbd54a7ca7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/AndroidManifest.xml @@ -46,5 +46,13 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloat.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloat.kt index 483800259c..a258e6358a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloat.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloat.kt @@ -169,6 +169,10 @@ class WarningFloat { this.config.isEnqueue = enqueue } + fun softInputMode(mode: Int) = apply { + this.config.softInputMode = mode + } + /** * 创建浮窗,包括Activity浮窗和系统浮窗,如若系统浮窗无权限,先进行权限申请 */ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloatWindowHelper.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloatWindowHelper.kt index 2060d4c113..040628e086 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloatWindowHelper.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningFloatWindowHelper.kt @@ -56,6 +56,7 @@ internal class WarningFloatWindowHelper( // 获取 WindowManager windowManager = context.getSystemService(Service.WINDOW_SERVICE) as WindowManager params = WindowManager.LayoutParams().apply { + // 设置窗口类型为应用子窗口,和PopupWindow同类型 type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL format = PixelFormat.RGBA_8888 @@ -73,6 +74,10 @@ internal class WarningFloatWindowHelper( x = config.locationPair.first y = config.locationPair.second } + //添加软键盘展示模式 + if (config.softInputMode != 0) { + softInputMode = config.softInputMode + } } } @@ -89,6 +94,7 @@ internal class WarningFloatWindowHelper( // 为了避免创建的时候闪一下,我们先隐藏视图,不能直接设置GONE,否则定位会出现问题 floatingView.visibility = View.INVISIBLE // 将frameLayout添加到系统windowManager中 + windowManager.addView(frameLayout, params) // 在浮窗绘制完成的时候,设置初始坐标、执行入场动画 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningNotificationConfig.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningNotificationConfig.kt index 51997f5177..79d025bdd4 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningNotificationConfig.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/WarningNotificationConfig.kt @@ -19,6 +19,9 @@ data class WarningNotificationConfig( var layoutId: Int? = null, var layoutView: View? = null, + // 软键盘模式 + var softInputMode: Int = 0, + // 当前浮窗的tag var floatTag: String? = null, // 是否正在执行动画 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/anim/DefaultAnimator.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/anim/DefaultAnimator.kt index d382563d0f..873fc64a48 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/anim/DefaultAnimator.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/notification/anim/DefaultAnimator.kt @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.hmi.notification.anim import android.animation.Animator import android.animation.ValueAnimator import android.graphics.Rect +import android.util.Log import android.view.View import android.view.WindowManager import com.mogo.eagle.core.data.enums.SidePattern @@ -49,7 +50,9 @@ open class DefaultAnimator : OnFloatAnimator { if (triple.third) params.x = value else params.y = value // 动画执行过程中页面关闭,出现异常 windowManager.updateViewLayout(view, params) + Log.d("XXX", "update ---> ${it.animatedValue}, ${it.animatedFraction}, $value") } catch (e: Exception) { + Log.d("XXX", "exception ---> $e") cancel() } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/BindingcarBroadcastReceiver.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/BindingcarBroadcastReceiver.kt new file mode 100644 index 0000000000..2a672a5411 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/BindingcarBroadcastReceiver.kt @@ -0,0 +1,41 @@ +package com.mogo.eagle.core.function.hmi.receiver + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showBindingcarDialog +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showBrakeLight +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showModifyBindingcarDialog +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showTurnLight + +/** + * 绑定车辆 + * + * @author lixiaopeng + */ +class BindingcarBroadcastReceiver : BroadcastReceiver() { + + companion object { + private const val TAG = "BindingcarBroadcastReceiver" + } + + override fun onReceive(context: Context, intent: Intent) { + try { + val type = intent.getIntExtra("type", 0) + showTurnLight(type) + } catch (e: Exception) { + e.printStackTrace() + } + } + + + private fun showTurnLight( //type 1获取车辆信息,2修改绑定信息 + type: Int + ) { + if (type == 1) { + showBindingcarDialog() + } else if (type == 2) { + showModifyBindingcarDialog() + } + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt index a5a3e6f644..397103c575 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt @@ -3,16 +3,8 @@ package com.mogo.eagle.core.function.hmi.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.eagle.core.data.constants.MogoServicePaths -import com.mogo.eagle.core.data.notice.NoticeNormalData -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showBrakeLight import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showTurnLight -import com.mogo.eagle.core.function.hmi.WaringConst -import com.mogo.eagle.core.utilcode.mogo.logger.Logger -import com.mogo.eagle.core.utilcode.util.SharedPrefs -import com.mogo.service.IMogoServiceApis /** * 转向灯,刹车 @@ -37,8 +29,8 @@ class TurnLightBroadcastReceiver : BroadcastReceiver() { private fun showTurnLight( //type 1,转向灯,2刹车 - type: Int, - lightInt: Int + type: Int, + lightInt: Int ) { if (type == 1) { showTurnLight(lightInt) //设置转向灯 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XLimitingVelocityBroadcastReceiver.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XLimitingVelocityBroadcastReceiver.kt index 3ffff859ef..e8d3961a3e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XLimitingVelocityBroadcastReceiver.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XLimitingVelocityBroadcastReceiver.kt @@ -3,13 +3,10 @@ package com.mogo.eagle.core.function.hmi.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.hmi.WaringConst import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI -import com.mogo.service.IMogoServiceApis /** * V2X 预警广播接收。用于跨应用,跨进程,内部也可以通过这种方式 控制限速标志 @@ -21,13 +18,10 @@ class V2XLimitingVelocityBroadcastReceiver : BroadcastReceiver() { companion object { private const val TAG = "V2XLimitingVelocityBroadcastReceiver" - private var mMogoServiceApis: IMogoServiceApis? = null } override fun onReceive(context: Context, intent: Intent) { try { - mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS) - .navigation(context) as IMogoServiceApis mContext = context val limitingVelocityIsShow = diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XTrafficLightBroadcastReceiver.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XTrafficLightBroadcastReceiver.kt index a68d67770c..b6f6bf2c32 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XTrafficLightBroadcastReceiver.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XTrafficLightBroadcastReceiver.kt @@ -3,11 +3,8 @@ package com.mogo.eagle.core.function.hmi.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.hmi.WaringConst -import com.mogo.service.IMogoServiceApis /** * V2X 预警广播接收。用于跨应用,跨进程,内部也可以通过这种方式 触发红绿灯场景 @@ -19,13 +16,10 @@ class V2XTrafficLightBroadcastReceiver : BroadcastReceiver() { companion object { private const val TAG = "V2XTrafficLightBroadcastReceiver" - private var mMogoServiceApis: IMogoServiceApis? = null } override fun onReceive(context: Context, intent: Intent) { try { - mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS) - .navigation(context) as IMogoServiceApis mContext = context val trafficLightIsShow = diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index fcb1237545..7d319d46b7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -6,6 +6,7 @@ import android.text.TextUtils import android.view.Gravity import android.view.View import android.view.WindowManager +import android.view.WindowManager.LayoutParams import android.view.animation.OvershootInterpolator import androidx.lifecycle.lifecycleScope import com.alibaba.android.arouter.facade.annotation.Route @@ -35,10 +36,13 @@ import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.WaringConst import com.mogo.eagle.core.function.hmi.notification.WarningFloat import com.mogo.eagle.core.function.hmi.notification.anim.DefaultAnimator +import com.mogo.eagle.core.function.hmi.ui.bindingcar.ModifyBindingCarDialog +import com.mogo.eagle.core.function.hmi.ui.bindingcar.ToBindingCarDialog import com.mogo.eagle.core.function.hmi.ui.camera.CameraListView import com.mogo.eagle.core.function.hmi.ui.notice.NoticeBannerView import com.mogo.eagle.core.function.hmi.ui.notice.NoticeNormalBannerView import com.mogo.eagle.core.function.hmi.ui.setting.DebugSettingView +import com.mogo.eagle.core.function.hmi.ui.tools.AdUpgradeDialog import com.mogo.eagle.core.function.hmi.ui.tools.AutoPilotAndCheckView import com.mogo.eagle.core.function.hmi.ui.widget.V2XNotificationView import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -80,8 +84,6 @@ class MoGoHmiFragment : MvpFragment private var toolsView: AutoPilotAndCheckView? = null - private var autoPilotToolsFloat: WarningFloat.Builder? = null - // 检测、自动驾驶速度设置 private var toolsViewFloat: WarningFloat.Builder? = null @@ -223,6 +225,11 @@ class MoGoHmiFragment : MvpFragment override fun showDebugPanelView() { toggleDebugView() } + + override fun showFeedbackView() { + dismissToolsFloatView() + CallerDevaToolsManager.showFeedbackView(it) + } }) } toolsViewFloat = WarningFloat.with(it) @@ -235,7 +242,7 @@ class MoGoHmiFragment : MvpFragment .setAnimator(object : DefaultAnimator() { override fun enterAnim( view: View, - params: WindowManager.LayoutParams, + params:LayoutParams, windowManager: WindowManager, sidePattern: SidePattern ): Animator? = @@ -819,6 +826,24 @@ class MoGoHmiFragment : MvpFragment } } + private var modifyBindingCarDialog: ModifyBindingCarDialog? = null + private var toBindingCarDialog: ToBindingCarDialog? = null + + override fun showToBindingcarDialog() { + if (toBindingCarDialog == null) { + toBindingCarDialog = ToBindingCarDialog(requireContext()) + } + toBindingCarDialog!!.showToBindingcarDialog() + } + + override fun showModifyBindingcarDialog() { + if (modifyBindingCarDialog == null) { + modifyBindingCarDialog = ModifyBindingCarDialog(requireContext()) + } + modifyBindingCarDialog!!.showModifyBindingcarDialog() + + } + override fun setTurnLightFunction(isOpen: Boolean) { HmiBuildConfig.isShowTurnLightView = isOpen } @@ -874,7 +899,8 @@ class MoGoHmiFragment : MvpFragment } - override fun showBadCaseFloat(tag: String, floatView: View): () -> Unit { + override fun showFloatWindow(tag: String, floatView: View, attrs: LayoutParams?): () -> Unit { + var floatWindow: WarningFloat.Builder? WarningFloat.with(context ?: Utils.getApp()) .setTag(tag) .setLayout(floatView) @@ -884,7 +910,7 @@ class MoGoHmiFragment : MvpFragment .setAnimator(object : DefaultAnimator() { override fun enterAnim( view: View, - params: WindowManager.LayoutParams, + params: LayoutParams, windowManager: WindowManager, sidePattern: SidePattern ): Animator? = @@ -895,7 +921,7 @@ class MoGoHmiFragment : MvpFragment override fun exitAnim( view: View, - params: WindowManager.LayoutParams, + params: LayoutParams, windowManager: WindowManager, sidePattern: SidePattern ): Animator? = @@ -904,17 +930,20 @@ class MoGoHmiFragment : MvpFragment }) .addWarningStatusListener(object : IMoGoWarningStatusListener { override fun onDismiss() { - autoPilotToolsFloat = null + floatWindow = null } }) .also { - autoPilotToolsFloat = it + floatWindow = it + if (((attrs?.softInputMode?: 0) and LayoutParams.SOFT_INPUT_MASK_ADJUST) != 0) { + it.softInputMode(attrs!!.softInputMode) + } } .show() return { - autoPilotToolsFloat?.let { + floatWindow?.let { WarningFloat.dismiss(it.config.floatTag, false) - autoPilotToolsFloat = null + floatWindow = null } } } @@ -925,4 +954,5 @@ class MoGoHmiFragment : MvpFragment } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/ModifyBindingCarDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/ModifyBindingCarDialog.kt new file mode 100644 index 0000000000..12912d60fe --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/ModifyBindingCarDialog.kt @@ -0,0 +1,75 @@ +package com.mogo.eagle.core.function.hmi.ui.bindingcar + +import android.content.Context +import android.widget.TextView +import androidx.lifecycle.LifecycleObserver +import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.toast.TipToast +import com.mogo.module.common.dialog.BaseFloatDialog +import com.mogo.service.IMogoServiceApis +import com.mogo.service.statusmanager.IMogoStatusChangedListener +import com.mogo.service.statusmanager.StatusDescriptor + + +/** + * @brief 修改车辆对话框 + * @author lixiaopeng + */ +class ModifyBindingCarDialog(context: Context) : BaseFloatDialog(context), LifecycleObserver{ + + private val TAG = "BindingCarDialog" + private var confirmTv: TextView? = null + private var cancleTv: TextView? = null + + private var mServiceApis: IMogoServiceApis? = null + private val statusChangedListenerForCheckNotice = IMogoStatusChangedListener { descriptor, isTrue -> + if (descriptor == StatusDescriptor.MAIN_PAGE_IS_BACKGROUND) { + dismiss() + } + } + + init { + setContentView(R.layout.dialog_modify_bindingcar) + setCanceledOnTouchOutside(true) + + confirmTv = findViewById(R.id.tv_bindingcar_confirm) + cancleTv = findViewById(R.id.tv_bindingcar_cancel) + + confirmTv?.setOnClickListener { + modifyBindingcar() + } + + cancleTv?.setOnClickListener { + dismiss() + } + } + + /** + * 修改绑定车机 TODO + */ + fun modifyBindingcar() { + CallerBindingcarManager.getBindingcarProvider().modifyCarInfo { + if (it.code == 200) { + TipToast.shortTip("修改绑定成功") + } else { + TipToast.shortTip("修改绑定失败") + } + } + dismiss() + } + + override fun dismiss() { + super.dismiss() + } + + fun showModifyBindingcarDialog() { + if (isShowing) { + return + } + + show() + } + + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/ToBindingCarDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/ToBindingCarDialog.kt new file mode 100644 index 0000000000..db27456c94 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/ToBindingCarDialog.kt @@ -0,0 +1,75 @@ +package com.mogo.eagle.core.function.hmi.ui.bindingcar + +import android.content.Context +import android.widget.TextView +import androidx.lifecycle.LifecycleObserver +import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.toast.TipToast +import com.mogo.module.common.dialog.BaseFloatDialog +import com.mogo.service.IMogoServiceApis +import com.mogo.service.statusmanager.IMogoStatusChangedListener +import com.mogo.service.statusmanager.StatusDescriptor + + +/** + * @brief 绑定车辆对话框 + * @author lixiaopeng + */ +class ToBindingCarDialog(context: Context) : BaseFloatDialog(context), LifecycleObserver{ + + private val TAG = "ToBindingCarDialog" + private var confirmTv: TextView? = null + private var cancleTv: TextView? = null + + private var mServiceApis: IMogoServiceApis? = null + private val statusChangedListenerForCheckNotice = IMogoStatusChangedListener { descriptor, isTrue -> + if (descriptor == StatusDescriptor.MAIN_PAGE_IS_BACKGROUND) { + dismiss() + } + } + + init { + setContentView(R.layout.dialog_to_bindingcar) + setCanceledOnTouchOutside(true) + + confirmTv = findViewById(R.id.tv_to_bindingcar_confirm) + cancleTv = findViewById(R.id.tv_to_bindingcar_cancel) + + confirmTv?.setOnClickListener { + toBindingcar() + } + + cancleTv?.setOnClickListener { + dismiss() + } + } + + /** + * 修改绑定车机 TODO + */ + fun toBindingcar() { + CallerBindingcarManager.getBindingcarProvider().modifyCarInfo { + if (it.code == 200) { + TipToast.shortTip("绑定成功") + } else { + TipToast.shortTip("绑定失败") + } + } + dismiss() + } + + override fun dismiss() { + super.dismiss() + } + + fun showToBindingcarDialog() { + if (isShowing) { + return + } + + show() + } + + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt index 6d2c91ec3c..6960ca946b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt @@ -95,7 +95,7 @@ class NoticeCheckDialog(context: Context) : BaseFloatDialog(context), LifecycleO } mServiceApis = MogoApisHandler.getInstance().apis - mServiceApis?.getStatusManagerApi()?.registerStatusChangedListener(TAG, StatusDescriptor.MAIN_PAGE_IS_BACKGROUND, statusChangedListenerForCheckNotice) + mServiceApis?.statusManagerApi?.registerStatusChangedListener(TAG, StatusDescriptor.MAIN_PAGE_IS_BACKGROUND, statusChangedListenerForCheckNotice) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index ce0d42f47a..dce53f699f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -11,9 +11,10 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.autopilot.* -import com.mogo.eagle.core.data.chain.ChainConstant +import com.mogo.eagle.core.data.deva.chain.ChainConstant import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.constants.MoGoConfig +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 @@ -424,6 +425,10 @@ class DebugSettingView @JvmOverloads constructor( } } } + + override fun moduleLogChanged(moduleTag: MutableMap) { + //todo 模块日志 tag 发生变化,需要更新对应 UI + } }) tbLogDebugView.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index 5c2eafcfff..72fc255bcd 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -13,10 +13,10 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.utils.KeyBoardUtil +import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import kotlinx.android.synthetic.main.view_auto_pilot_check.view.* -import kotlinx.android.synthetic.main.view_check_system.view.* /** * @author ChenFufeng @@ -37,6 +37,7 @@ class AutoPilotAndCheckView @JvmOverloads constructor( private var clickListener: ClickListener? = null private var keyBoardUtil: KeyBoardUtil? = null private var connectStatus = false + private var lastTime = 0L init { LayoutInflater.from(context).inflate(R.layout.view_auto_pilot_check, this, true) @@ -51,16 +52,14 @@ class AutoPilotAndCheckView @JvmOverloads constructor( keyBoardUtil?.setActionListener { inputContent -> inputContent.toIntOrNull()?.let { speed -> when { - !connectStatus -> { - ToastUtils.showShort("设置车速失败,请启动域控制器") - keyBoardUtil?.hideKeyboard() - } speed > 60 -> { // 设置失败键盘不消失,让用户直接修改 ToastUtils.showShort("超过最大限速值60,设置失败") } else -> { + llSpeedPosition.background = resources.getDrawable(R.drawable.pilot_speed_bg) keyBoardUtil?.hideKeyboard() + etInputSpeed.clearFocus() // 设置自动驾驶速度 val isSuccess = CallerAutoPilotManager.setAutoPilotSpeed(speed) when { @@ -85,21 +84,31 @@ class AutoPilotAndCheckView @JvmOverloads constructor( ivDebugPanel.setOnClickListener { clickListener?.showDebugPanelView() } - etInputSpeed.setOnTouchListener { v, _ -> - if (!connectStatus) { - ToastUtils.showShort("设置车速失败,请启动域控制器") - keyBoardUtil?.hideKeyboard() - return@setOnTouchListener true - } else { - if (etInputSpeed.hasFocusable()) { + ivDebugFeedback.onClick { + clickListener?.showFeedbackView() + } + etInputSpeed.setOnFocusChangeListener { v, hasFocus -> + when { + hasFocus -> { + llSpeedPosition.background = resources.getDrawable(R.drawable.pilot_speed_high_light_bg) if (keyBoardUtil == null) { keyBoardUtil = KeyBoardUtil(sKeyBoardView, etInputSpeed) } keyBoardUtil?.showKeyboard() } - if (!etInputSpeed.hasFocus()) { - etInputSpeed.requestFocus() - } + else -> llSpeedPosition.background = resources.getDrawable(R.drawable.pilot_speed_bg) + } + } + etInputSpeed.setOnTouchListener { v, event -> + var curTime = System.currentTimeMillis() + if (curTime - lastTime < 1000) { + return@setOnTouchListener true + } + if (!connectStatus) { + ToastUtils.showShort("设置车速失败,请启动域控制器") + keyBoardUtil?.hideKeyboard() + return@setOnTouchListener true + } else { return@setOnTouchListener false } } @@ -176,5 +185,6 @@ class AutoPilotAndCheckView @JvmOverloads constructor( fun go2CheckPage() fun onClose(v: View) fun showDebugPanelView() + fun showFeedbackView() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt index f71a762d9d..222aad6344 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt @@ -9,6 +9,9 @@ import android.view.animation.Animation import android.view.animation.LinearInterpolator import android.widget.ImageView import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Turning import com.mogo.eagle.core.function.hmi.R import kotlinx.android.synthetic.main.view_turn_light_status.view.* import kotlinx.coroutines.Dispatchers @@ -35,6 +38,9 @@ class TurnLightViewStatus @JvmOverloads constructor( private var isRightLight :Boolean = false private var isDisappare :Boolean = false + @Volatile + private var isVisualAngleChanged = false + /** * 转向灯动画 */ @@ -46,6 +52,13 @@ class TurnLightViewStatus @JvmOverloads constructor( isShowNormalBg = true } + if (directionLight == 1 || directionLight == 2) { + if (!isVisualAngleChanged) { + isVisualAngleChanged = true + CallerVisualAngleManager.changeVisualAngle(Turning) + } + } + //根据左右进行显示和隐藏,实际要判断每个来的时间和频度 if (directionLight == 1) { //左转向 if (!isLeftLight) { @@ -73,6 +86,8 @@ class TurnLightViewStatus @JvmOverloads constructor( } } else { //消失 + CallerVisualAngleManager.changeVisualAngle(Default()) + isVisualAngleChanged = false if (!isDisappare) { GlobalScope.launch(Dispatchers.Main) { animationDisappear() diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/NoticeGlobalTools.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/NoticeGlobalTools.kt index d1a736cdb4..f22a239803 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/NoticeGlobalTools.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/NoticeGlobalTools.kt @@ -1,10 +1,6 @@ package com.mogo.eagle.core.function.hmi.ui.utils -import android.content.Context import android.view.View -import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.service.IMogoServiceApis -import com.mogo.eagle.core.data.constants.MogoServicePaths /** * @author congtaowang @@ -12,15 +8,6 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths * * 描述 */ -private var apis: IMogoServiceApis? = null - -fun getApis(context: Context): IMogoServiceApis { - if (apis == null) { - apis = ARouter.getInstance().build(com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_SERVICE_APIS).navigation(context) as IMogoServiceApis; - } - return apis!! -} - fun View.gone() { if (this.visibility != View.GONE) { this.visibility = View.GONE diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/debug_icon_feedback.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/debug_icon_feedback.png new file mode 100644 index 0000000000..c1e9c6a265 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/debug_icon_feedback.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pilot_speed_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pilot_speed_bg.xml index e4fe7e8614..91520788bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pilot_speed_bg.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pilot_speed_bg.xml @@ -2,5 +2,4 @@ - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pilot_speed_high_light_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pilot_speed_high_light_bg.xml new file mode 100644 index 0000000000..e4fe7e8614 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pilot_speed_high_light_bg.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_modify_bindingcar.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_modify_bindingcar.xml new file mode 100644 index 0000000000..64c3ef0350 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_modify_bindingcar.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_to_bindingcar.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_to_bindingcar.xml new file mode 100644 index 0000000000..481c87c50b --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_to_bindingcar.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml index 738303d7d5..1cfef277b6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml @@ -67,8 +67,7 @@ android:background="@drawable/debug_icon_nor" app:layout_constraintStart_toEndOf="@id/viewCheckStatus" app:layout_constraintTop_toTopOf="@id/viewCheckStatus" - android:layout_marginStart="142px" - /> + android:layout_marginStart="142px" /> + + + + 车辆检测 调试面板 + 反馈 车速设置 系统运行 关机 @@ -38,4 +39,9 @@ 确认 取消 + + 绑定车机 + 是否修改车机绑定? + 是否绑定车机? + diff --git a/core/function-impl/mogo-core-function-main/build.gradle b/core/function-impl/mogo-core-function-main/build.gradle index ece45dd1c2..58076f0352 100644 --- a/core/function-impl/mogo-core-function-main/build.gradle +++ b/core/function-impl/mogo-core-function-main/build.gradle @@ -79,6 +79,7 @@ dependencies { api rootProject.ext.dependencies.mogo_core_function_obu_mogo api rootProject.ext.dependencies.mogo_core_function_hmi api rootProject.ext.dependencies.mogo_core_function_notice + api rootProject.ext.dependencies.mogo_core_function_bindingcar api rootProject.ext.dependencies.mogo_core_function_autopilot api rootProject.ext.dependencies.mogo_core_function_check api rootProject.ext.dependencies.mogo_core_function_map @@ -116,6 +117,7 @@ dependencies { api project(':core:function-impl:mogo-core-function-dispatch') api project(':core:mogo-core-function-call') api project(':core:function-impl:mogo-core-function-chat') + api project(':core:function-impl:mogo-core-function-bindingcar') } } diff --git a/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml index b068b0c04a..9ed171e1dc 100644 --- a/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml @@ -9,6 +9,7 @@ + websocket byte read header = " + messageType.toString()); +// CupidLogUtils.w("--->websocket byte read header = " + messageType.toString()); IMsg iMsg = myMessageFactory.createMessage(messageType); if (iMsg == null) { callError(ProtocolStatus.MESSAGE_TYPE_UNKNOWN, bytes); diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 100967c614..eaf250131e 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -13,6 +13,7 @@ import android.graphics.Rect; import android.location.Location; import android.os.Bundle; import android.os.Trace; +import android.text.TextUtils; import android.util.Log; import android.view.MotionEvent; import android.view.View; @@ -26,6 +27,7 @@ import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; @@ -51,6 +53,7 @@ import com.zhidaoauto.map.sdk.open.abs.OnMapLoadedListener; import com.zhidaoauto.map.sdk.open.abs.OnMapStyleListener; import com.zhidaoauto.map.sdk.open.abs.OnMapTouchListener; import com.zhidaoauto.map.sdk.open.abs.OnMapViewVisualAngleChangeListener; +import com.zhidaoauto.map.sdk.open.abs.OnRoadInfoListener; import com.zhidaoauto.map.sdk.open.camera.CameraPosition; import com.zhidaoauto.map.sdk.open.camera.CameraUpdateFactory; import com.zhidaoauto.map.sdk.open.camera.LatLngBounds; @@ -63,6 +66,7 @@ import com.zhidaoauto.map.sdk.open.marker.BitmapDescriptorFactory; import com.zhidaoauto.map.sdk.open.marker.Marker; import com.zhidaoauto.map.sdk.open.marker.OnMarkClickListener; import com.zhidaoauto.map.sdk.open.query.LonLatPoint; +import com.zhidaoauto.map.sdk.open.road.StopLine; import com.zhidaoauto.map.sdk.open.tools.MapTools; import com.zhidaoauto.map.sdk.open.view.MapAutoView; import com.zhidaoauto.map.sdk.open.view.MapAutoViewHelper; @@ -87,7 +91,9 @@ public class AMapViewWrapper implements IMogoMapView, OnMapTouchListener, OnMarkClickListener, OnMapStyleListener, - MapStyleController.IMapStyleAutoChangedListener, OnMapViewVisualAngleChangeListener { + MapStyleController.IMapStyleAutoChangedListener, + OnMapViewVisualAngleChangeListener, + OnRoadInfoListener { private static final String TAG = "AMapViewWrapper"; private final MapAutoView mMapView; @@ -112,6 +118,9 @@ public class AMapViewWrapper implements IMogoMapView, private boolean mIsFirstLocated = true; private boolean mIsDelayed = false; + + private volatile String mRoadId = null; + public AMapViewWrapper(MapAutoView mMapView) { startTime = System.currentTimeMillis(); CallerLogger.INSTANCE.i(TAG, "autoop--AMapViewWrapper: init"); @@ -157,9 +166,25 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.setOnCameraChangeListener(this); mMapView.setOnMapStyleListener(this); mMapView.setOnMapViewVisualAngleChangeListener(this); + mMapView.setOnRoadInfoListener(this, 1); CallerLogger.INSTANCE.d(TAG, "styleop - initListeners - setOnMapStyleListener - view " + mMapView); } + @Override + public void onRoadIdInfo(@androidx.annotation.Nullable String s) { + Log.d(TAG, "-- onRoadIdInfo --RoadId:" + s); + mRoadId = s; + } + + @Override + public void onStopLineInfo(@androidx.annotation.Nullable StopLine stopLine) { + Log.d(TAG, "-- onStopLineInfo:" + (stopLine != null ? stopLine.toString() : null) + "-> road_id:" + mRoadId); + if (stopLine != null && mRoadId != null && TextUtils.equals(mRoadId, stopLine.road_id)) { + MogoLocation location = CallerMapLocationListenerManager.INSTANCE.getCurrentLocation(); + //MapAutoApi.INSTANCE. + } + } + private Context getContext() { return mMapView.getContext(); } @@ -318,7 +343,6 @@ public class AMapViewWrapper implements IMogoMapView, public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) { MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper(); if (mapAutoViewHelper != null) { - CallerLogger.INSTANCE.d(TAG, " 用户更改视距 currentThread : " + Thread.currentThread().getName()); mVisualAngleMode = angelMode; if (angelMode == MODE_CLOSE_SIGHT) { if (mogoLatLng == null) { diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java index ed51456d90..af61fdbd8d 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java @@ -84,7 +84,6 @@ public class AMapWrapper implements IMogoMap { @Override public IMogoMarker addMarker(String tag, MogoMarkerOptions options) { - //Logger.i(TAG, "autoop-addMarker: " + tag + ",MogoMarkerOptions:" + options + ",AMap:" + (mAMap != null) + ",this:" + this); if (!checkAMap()) { return null; } diff --git a/modules.txt b/modules.txt index a9d71cb233..cb16026052 100644 --- a/modules.txt +++ b/modules.txt @@ -34,3 +34,4 @@ :core:function-impl:mogo-core-function-chat :core:function-impl:mogo-core-function-devatools :core:function-impl:mogo-core-function-main +:core:function-impl:mogo-core-function-bindingcar \ No newline at end of file diff --git a/modules/mogo-module-common/proguard-rules.pro b/modules/mogo-module-common/proguard-rules.pro index cd20bd521c..7c855f7ca0 100644 --- a/modules/mogo-module-common/proguard-rules.pro +++ b/modules/mogo-module-common/proguard-rules.pro @@ -22,7 +22,5 @@ #-----CommonModule----- -keep class com.mogo.module.common.entity.** {*;} --keep class com.mogo.module.common.map.Interrupter --keep class com.mogo.module.common.map.Scene -keep class com.mogo.module.common.wm.** {*;} -keep class com.mogo.module.common.MogoModulePaths diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/ModuleType.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/ModuleType.java deleted file mode 100644 index 5d39c13bfb..0000000000 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/ModuleType.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.mogo.module.common; - -/** - * @author congtaowang - * @since 2020-01-03 - *

- * 模块类型 - */ -public interface ModuleType { - - /** - * 卡片类型 - fragment - */ - int TYPE_CARD_FRAGMENT = 1; - - /** - * 卡片类型 - view - */ - @Deprecated - int TYPE_CARD_VIEW = 2; - - /** - * 服务类型的模块 - */ - int TYPE_SERVICE = 3; - - /** - * APP 列表模块 - */ - @Deprecated - int TYPE_APP_LIST = 4; - - /** - * 小智语音形象 - */ - @Deprecated - int TYPE_VOICE = 5; - - /** - * 地图模块 - */ - @Deprecated - int TYPE_MAP = 6; - - /** - * 导航模块 - */ - @Deprecated - int TYPE_NAVI = 7; - - /** - * 小智、天气、时间等 - */ - @Deprecated - int TYPE_EXTENSION = 8; - - /** - * 操作快捷入口 - */ - @Deprecated - int TYPE_ENTRANCE = 9; -} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/api/CallChatApi.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/api/CallChatApi.java deleted file mode 100644 index a5bb265f81..0000000000 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/api/CallChatApi.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.mogo.module.common.api; - -import android.content.Context; - -import com.mogo.module.common.entity.MarkerOnlineCar; - -public -/** - * @author congtaowang - * @since 2020/9/24 - * - * 车聊聊接口 - */ -class CallChatApi { - - private static final String TAG = "CallChatApi"; - - private static volatile CallChatApi sInstance; - - private CallChatApi() { - //mApiProvider = ARouter.getInstance().navigation( ICarsChattingProvider.class ); - } - - public static CallChatApi getInstance() { - if ( sInstance == null ) { - synchronized ( CallChatApi.class ) { - if ( sInstance == null ) { - sInstance = new CallChatApi(); - } - } - } - return sInstance; - } - - public synchronized void release() { - sInstance = null; - } - - private Object readResolve() { - // 阻止反序列化,必须实现 Serializable 接口 - return sInstance; - } - - public void showUserWindow( Context context, MarkerOnlineCar onlineCar ) throws Exception { -// if ( mApiProvider == null ) { -// return; -// } -// MogoDriverInfo driverInfo = new MogoDriverInfo(); -// driverInfo.setAge( onlineCar.getUserInfo().getAgeNumber() ); -// driverInfo.setCarTypeName( onlineCar.getCarInfo().getCarTypeName() ); -// driverInfo.setGender( onlineCar.getUserInfo().getGender() ); -// driverInfo.setLat( onlineCar.getLocation().getLat() ); -// driverInfo.setLon( onlineCar.getLocation().getLon() ); -// driverInfo.setLocationInfo( onlineCar.getLocation().getAddress() ); -// driverInfo.setSn( onlineCar.getUserInfo().getSn() ); -// driverInfo.setUserHead( onlineCar.getUserInfo().getUserHead() ); -// driverInfo.setUserName( onlineCar.getUserInfo().getUserName() ); -// if ( mApiProvider != null ) { -// mApiProvider.showUserWindow( TAG, driverInfo, context ); -// } - } - -} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/BaseFloatDialog.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/BaseFloatDialog.java index 4c047561dc..0c199daab8 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/BaseFloatDialog.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/BaseFloatDialog.java @@ -2,6 +2,7 @@ package com.mogo.module.common.dialog; import android.app.Dialog; import android.content.Context; +import android.os.Build; import android.view.WindowManager; import androidx.annotation.NonNull; @@ -31,12 +32,11 @@ public class BaseFloatDialog extends Dialog { } private void addFlag() { -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { -// getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY); -// } else { -// getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); -// } - getWindow().setType(WindowManager.LayoutParams.LAST_SUB_WINDOW); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY); + } else { + getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); + } getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION | WindowManager.LayoutParams.FLAG_LOCAL_FOCUS_MODE); diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/Interrupter.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/Interrupter.java deleted file mode 100644 index b9883148df..0000000000 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/Interrupter.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.module.common.map; - -/** - * @author congtaowang - * @since 2020-04-10 - *

- * 拦截器 - */ -public interface Interrupter { - - /** - * 是否拦截 - * @return true - 拦截, false - 不拦截 - */ - boolean interrupt(); -} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPoint.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPoint.java deleted file mode 100644 index 7d153e3bc9..0000000000 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPoint.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.mogo.module.common.map; - -/** - * @author congtaowang - * @since 2020-04-10 - *

- * 地图视图中心点 - */ -public class MapCenterPoint { - - public final double x; - public final double y; - - public MapCenterPoint( double x, double y ) { - this.x = x; - this.y = y; - } - -} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/Scene.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/Scene.java deleted file mode 100644 index c65f727241..0000000000 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/Scene.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.mogo.module.common.map; - -/** - * @author congtaowang - * @since 2020-04-10 - *

- * 描述 - */ -public interface Scene { - - /** - * 普通场景 - */ - int COMMON = 0; - - /** - * 选点 - */ - int CHOOSE_POINT = 1; - - /** - * 导航 - */ - int NAVI = 2; - - /** - * 导航 vs 道路事件 - */ - int NAVI_WITH_ROAD_EVENT = 21; - - /** - * 巡航 - */ - int AIMLESS = 3; - - /** - * 巡航 vs 道路事件 - */ - int AIMLESS_WITH_ROAD_EVENT = 31; - - /** - * 路线规划 - */ - int CALCULATE_PATH = 4; - - /** - * 分类搜索 - */ - int CATEGORY_SEARCH = 5; - - /** - * V2X触发了预警场景 - */ - int CATEGORY_V2X_EVENT = 6; -} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java index 72fda90c51..89f614f7bb 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java @@ -8,10 +8,8 @@ import android.view.View; import android.view.WindowManager; /** - * 采用windowManager实现接口(取消系统级弹窗) - * {@link DialogImpl} + * 采用windowManager实现接口 */ -@Deprecated class WindowManagerImpl implements IWindowManagerView { private WindowManager mWindowManager; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java index 29b3d0a5a6..e5c0a562af 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java @@ -97,7 +97,6 @@ public class WindowManagerView { return new WindowManagerView( mParams, new DialogImpl() ); } - @Deprecated public WindowManagerView showInWindowManager() { if ( mParams.mContentView == null ) { throw new NullPointerException( "WMViewParams#mContentView must not be null." ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 47985d6f28..7414b9232d 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -19,7 +19,6 @@ import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.ModuleNames; -import com.mogo.module.common.api.CallChatApi; import com.mogo.module.common.drawer.MarkerDrawer; import com.mogo.module.common.drawer.RoadConditionDrawer; import com.mogo.module.common.drawer.marker.IMarkerView; @@ -254,7 +253,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } marker.setIcon(OnlineCarMarkerView.getInstance().getSelectedBitmap(getCarVehicleType(marker))); MarkerOnlineCar onlineCar = (MarkerOnlineCar) ((MarkerShowEntity) marker.getObject()).getBindObj(); - CallChatApi.getInstance().showUserWindow(mContext, onlineCar); + //车聊聊显示用户信息界面 } catch (Exception e) { } } diff --git a/settings.gradle b/settings.gradle index a4e3c5175e..391339c25e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -44,7 +44,8 @@ include ':core:function-impl:mogo-core-function-monitoring' include ':core:function-impl:mogo-core-function-carcorder' // 调度业务 include ':core:function-impl:mogo-core-function-dispatch' - +// 绑定车机 +include ':core:function-impl:mogo-core-function-bindingcar' // 车聊聊业务 include ':core:function-impl:mogo-core-function-chat' diff --git a/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java b/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java index c2640b4b93..549dee35e9 100644 --- a/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java +++ b/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java @@ -6,7 +6,6 @@ import android.text.TextUtils; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.eagle.core.utilcode.util.AppUtils; import com.mogo.test.crashreport.CrashReportConstants; import com.mogo.test.crashreport.ITestCrashReportProvider; @@ -31,7 +30,6 @@ public class BuglyCrashReportProvider implements ITestCrashReportProvider { @Override public void init(Context context) { - Logger.d(TAG, "init"); String packageName = context.getPackageName(); String processName = getProcessName(android.os.Process.myPid()); CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(context); diff --git a/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java b/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java index 97e33d0826..c8385b0a3c 100644 --- a/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java +++ b/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java @@ -5,7 +5,6 @@ import android.content.Intent; import android.text.TextUtils; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.eagle.core.utilcode.util.AppUtils; import com.mogo.tts.base.IMogoTTS; import com.mogo.tts.base.IMogoTTSCallback; @@ -43,7 +42,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { private Context mContext; public synchronized void release() { - Logger.d( TAG, "release" ); if ( mCmdMap != null && !mCmdMap.isEmpty() && mVoiceClient != null ) { for ( String cmd : mCmdMap.keySet() ) { try { @@ -109,7 +107,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { if ( !mCmdMap.containsKey( cmd ) ) { return; } - Logger.d( TAG, "received command: %s", cmd ); Iterator< IMogoTTSCallback > iterator = null; try { @@ -291,7 +288,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { mVoiceClient.registerCustomWakeupCmd( cmd, cmdWords ); mCacheUnWakeupCommands.remove( cmd ); } - Logger.i( TAG, "cache un wakeup command2. %s", cmd ); mCacheUnWakeupCommands.put( cmd, cmdWords ); } @@ -307,7 +303,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { mVoiceClient.registerCustomWakeupCmd( cmd, cmdWords ); mCacheUnWakeupCommands.remove( cmd ); } - Logger.i( TAG, "cache un wakeup command. %s", cmd ); mCacheUnWakeupCommands.put( cmd, cmdWords ); } @@ -361,7 +356,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { intent.setAction( "pvetec.intent.action.txz.switch" ); intent.putExtra( "window_start_cancel", status ); intent.putExtra( "extra_switch_type", "window_start_cancel" ); - Logger.d( TAG, "status = %d", status ); context.sendBroadcast( intent ); } @@ -370,7 +364,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { return; } mHasFlush = true; - Logger.d( TAG, "flush cache voice command when voice service ready." ); final Map< String, String[] > tmp = new HashMap<>( mCacheUnWakeupCommands ); for ( String cmd : tmp.keySet() ) { registerUnWakeupCommand( cmd, tmp.get( cmd ) ); @@ -383,7 +376,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { return true; } else if ( AppUtils.isProcessRunning( context, AppUtils.getPackageUid( context, "com.txznet.txz" ) ) && AppUtils.isProcessRunning( context, AppUtils.getPackageUid( context, "com.txznet.adapter" ) ) ) { - Logger.d( TAG, "txz is voiceServiceReady" ); return true; } return false; @@ -460,7 +452,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { mVoiceClient.setCallBack( this ); initFlushStatus(); initSpeech( context ); - Logger.w( TAG, "voice is ready = %s", mHasFlush ); } } @@ -476,7 +467,6 @@ class ZhiTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsListener { intent.setAction( "pvetec.intent.action.txz.switch" ); intent.putExtra( "window_start_cancel", status ); intent.putExtra( "extra_switch_type", "window_start_cancel" ); - Logger.d( TAG, "status = %d", status ); context.sendBroadcast( intent ); } }