diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt index 5be0c6cfe7..124e75efbc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt @@ -64,12 +64,14 @@ class SpeedPanelView @JvmOverloads constructor( private val timerTask = object : TimerTask() { override fun run() { if (mLatLng != null) { - mSpeedLimmit = mMogoServiceApis.mapServiceApi.mapUIController.getSpeedLimmit(mLatLng!!.longitude, mLatLng!!.latitude, mLatLng!!.bearing) - UiThreadHandler.post { - val speed = (mLatLng!!.speed * 3.6f).toInt() - mSpeedChartView.setArcColor(Color.parseColor(if (speed > mSpeedLimmit) "#DB3137" else "#3E77F6")) - mSpeedChartView.setValues(speed) - setBackgroundResource(if (speed > mSpeedLimmit) R.drawable.yi_biao_pan_bg_speeding else R.drawable.yi_biao_pan_bg_nor) + if (mMogoServiceApis.mapServiceApi != null && mMogoServiceApis.mapServiceApi.mapUIController != null) { + mSpeedLimmit = mMogoServiceApis.mapServiceApi.mapUIController.getSpeedLimmit(mLatLng!!.longitude, mLatLng!!.latitude, mLatLng!!.bearing) + UiThreadHandler.post { + val speed = (mLatLng!!.speed * 3.6f).toInt() + mSpeedChartView.setArcColor(Color.parseColor(if (speed > mSpeedLimmit) "#DB3137" else "#3E77F6")) + mSpeedChartView.setValues(speed) + setBackgroundResource(if (speed > mSpeedLimmit) R.drawable.yi_biao_pan_bg_speeding else R.drawable.yi_biao_pan_bg_nor) + } } } } diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java index aaf81a9329..0d21bb9335 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java @@ -67,12 +67,16 @@ public class SmallMapFragment extends BaseFragment @Override public void showPanel() { - mSmallMapDirectionView.setVisibility(View.VISIBLE); + if (mSmallMapDirectionView != null) { + mSmallMapDirectionView.setVisibility(View.VISIBLE); + } } @Override public void hidePanel() { - mSmallMapDirectionView.setVisibility(View.GONE); + if (mSmallMapDirectionView != null) { + mSmallMapDirectionView.setVisibility(View.GONE); + } } @Override @@ -103,20 +107,26 @@ public class SmallMapFragment extends BaseFragment @Override public void onResume() { super.onResume(); - mSmallMapDirectionView.onResume(); + if (mSmallMapDirectionView != null) { + mSmallMapDirectionView.onResume(); + } } @Override public void onPause() { super.onPause(); - mSmallMapDirectionView.onPause(); + if (mSmallMapDirectionView != null) { + mSmallMapDirectionView.onPause(); + } } @Override public void onDestroy() { super.onDestroy(); - mSmallMapDirectionView.onDestroy(); + if (mSmallMapDirectionView != null) { + mSmallMapDirectionView.onDestroy(); + } CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(TAG); } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java index ae9e1df56d..b7d1635cdb 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java @@ -32,15 +32,17 @@ public class SpeedLimitDataManager implements IMogoCarLocationChangedListener2 { @Override public void run() { if (mLocation != null){ - int speedLimmit = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getSpeedLimmit(mLocation.getLongitude(),mLocation.getLatitude(),mLocation.getBearing()); - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if (speedLimmit > 0){ - CallerHmiManager.INSTANCE.showLimitingVelocity(speedLimmit); + if (MogoApisHandler.getInstance().getApis().getMapServiceApi() != null && MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController() != null) { + int speedLimmit = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getSpeedLimmit(mLocation.getLongitude(), mLocation.getLatitude(), mLocation.getBearing()); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (speedLimmit > 0) { + CallerHmiManager.INSTANCE.showLimitingVelocity(speedLimmit); + } } - } - }); + }); + } } } }; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 1259d5830b..795024249e 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -355,12 +355,18 @@ public class MogoMapUIController implements IMogoMapUIController { @Override public long getTileId(double lon, double lat) { - return mDelegate.getTileId(lon, lat); + if (mDelegate != null) { + return mDelegate.getTileId(lon, lat); + } + return 0; } @Override public int getSpeedLimmit(double lon, double lat, float angle) { - return mDelegate.getSpeedLimmit(lon,lat,angle); + if (mDelegate != null) { + return mDelegate.getSpeedLimmit(lon,lat,angle); + } + return 0; } @Override diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 1e119e105c..cb1d311f83 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -422,18 +422,20 @@ public class TopViewAnimHelper { public void removeAllViewExceptVrNav() { Logger.d(TAG, "remove all view except vr nav"); isTopViewOut = true; - int lastCount = topContainer.getChildCount(); - for (int i = 0; i < lastCount; i++) { - View child = topContainer.getChildAt(i); - viewCaches.remove(child); - IMogoTopViewStatusListener listener = statusListenerMap.remove(child); - if (listener != null) { - listener.beforeViewRemoveAnim(child); - listener.onViewRemoved(child); + if(topContainer != null) { + int lastCount = topContainer.getChildCount(); + for (int i = 0; i < lastCount; i++) { + View child = topContainer.getChildAt(i); + viewCaches.remove(child); + IMogoTopViewStatusListener listener = statusListenerMap.remove(child); + if (listener != null) { + listener.beforeViewRemoveAnim(child); + listener.onViewRemoved(child); + } } + topContainer.setTranslationY(0); + topContainer.removeAllViews(); } - topContainer.setTranslationY(0); - topContainer.removeAllViews(); hideNaviView(); }