From 5292178c28722e0bba072a6a76dee55130fce2c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B0=D1=86=D0=B5=D0=BF=D0=B8=D0=BD?= Date: Tue, 1 Aug 2017 18:40:27 +0300 Subject: [PATCH] [android] Added saving/restoring the route if app was in navigaton/planing mode --- android/src/com/mapswithme/maps/MwmActivity.java | 15 +++++++++++++++ .../maps/routing/RoutingController.java | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index ee493b0786..54a9bb0d4d 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -520,6 +520,7 @@ public class MwmActivity extends BaseMwmFragmentActivity // } //}); //getWindow().getDecorView().addOnLayoutChangeListener(mVisibleRectMeasurer); + mTasks.add(new RestoreRouteTask()); } private void initViews() @@ -952,6 +953,9 @@ public class MwmActivity extends BaseMwmFragmentActivity if (mFilterController != null) mFilterController.onSaveState(outState); + if (!isChangingConfigurations()) + RoutingController.get().saveRoute(); + super.onSaveInstanceState(outState); } @@ -2314,4 +2318,15 @@ public class MwmActivity extends BaseMwmFragmentActivity return true; } } + + private static class RestoreRouteTask implements MapTask + { + + @Override + public boolean run(MwmActivity target) + { + RoutingController.get().restoreRoute(); + return true; + } + } } diff --git a/android/src/com/mapswithme/maps/routing/RoutingController.java b/android/src/com/mapswithme/maps/routing/RoutingController.java index 3cf446ac08..cdbb57ee08 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingController.java @@ -361,6 +361,21 @@ public class RoutingController implements TaxiManager.TaxiListener }).show(); } + public void restoreRoute() + { + if (Framework.nativeHasSavedRoutePoints()) + { + Framework.nativeLoadRoutePoints(); + prepare(getStartPoint(), getEndPoint()); + } + } + + public void saveRoute() + { + if (isNavigating() || (isPlanning() && isBuilt())) + Framework.nativeSaveRoutePoints(); + } + public void prepare(@Nullable MapObject endPoint) { prepare(endPoint, false);