diff options
-rw-r--r-- | android/src/com/mapswithme/maps/routing/RoutingController.java | 2 | ||||
-rw-r--r-- | android/src/com/mapswithme/maps/routing/RoutingPlanController.java | 20 | ||||
-rw-r--r-- | drape_frontend/drape_engine.cpp | 7 | ||||
-rwxr-xr-x | drape_frontend/frontend_renderer.cpp | 8 | ||||
-rwxr-xr-x | drape_frontend/render_group.cpp | 5 | ||||
-rwxr-xr-x | drape_frontend/render_group.hpp | 2 | ||||
-rw-r--r-- | iphone/Maps/Classes/MapViewController.mm | 2 |
7 files changed, 37 insertions, 9 deletions
diff --git a/android/src/com/mapswithme/maps/routing/RoutingController.java b/android/src/com/mapswithme/maps/routing/RoutingController.java index 27d1682885..4dc809cfd4 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingController.java @@ -92,6 +92,7 @@ public class RoutingController private boolean mContainsCachedResult; private int mLastResultCode; private String[] mLastMissingMaps; + @Nullable private RoutingInfo mCachedRoutingInfo; @SuppressWarnings("FieldCanBeLocal") @@ -525,6 +526,7 @@ public class RoutingController return mEndPoint; } + @Nullable RoutingInfo getCachedRoutingInfo() { return mCachedRoutingInfo; diff --git a/android/src/com/mapswithme/maps/routing/RoutingPlanController.java b/android/src/com/mapswithme/maps/routing/RoutingPlanController.java index 4d136618e1..46b354457a 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingPlanController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingPlanController.java @@ -178,11 +178,24 @@ public class RoutingPlanController extends ToolbarController private void showAltitudeChartAndRoutingDetails() { + UiUtils.show(mAltitudeChartFrame); + mAltitudeChartShown = true; + showRoutingDetails(); + } + + private void showRoutingDetails() + { final View numbersFrame = mAltitudeChartFrame.findViewById(R.id.numbers); + final RoutingInfo rinfo = RoutingController.get().getCachedRoutingInfo(); + if (rinfo == null) + { + UiUtils.hide(numbersFrame); + return; + } + TextView numbersTime = (TextView) numbersFrame.findViewById(R.id.time); TextView numbersDistance = (TextView) numbersFrame.findViewById(R.id.distance); TextView numbersArrival = (TextView) numbersFrame.findViewById(R.id.arrival); - RoutingInfo rinfo = RoutingController.get().getCachedRoutingInfo(); numbersTime.setText(RoutingController.formatRoutingTime(mFrame.getContext(), rinfo.totalTimeInSeconds, R.dimen.text_size_routing_number)); numbersDistance.setText(rinfo.distToTarget + " " + rinfo.targetUnits); @@ -192,11 +205,8 @@ public class RoutingPlanController extends ToolbarController String arrivalTime = RoutingController.formatArrivalTime(rinfo.totalTimeInSeconds); numbersArrival.setText(arrivalTime); } - - UiUtils.show(mAltitudeChartFrame); - mAltitudeChartShown = true; } - + private void hideAltitudeChartAndRoutingDetails() { if (UiUtils.isHidden(mAltitudeChartFrame)) diff --git a/drape_frontend/drape_engine.cpp b/drape_frontend/drape_engine.cpp index 42b4b554a2..9f4f523fe0 100644 --- a/drape_frontend/drape_engine.cpp +++ b/drape_frontend/drape_engine.cpp @@ -95,7 +95,14 @@ DrapeEngine::~DrapeEngine() void DrapeEngine::Update(int w, int h) { + if (m_choosePositionMode) + { + m_threadCommutator->PostMessage(ThreadsCommutator::ResourceUploadThread, + make_unique_dp<ShowChoosePositionMarkMessage>(), + MessagePriority::High); + } RecacheGui(false); + RecacheMapShapes(); m_threadCommutator->PostMessage(ThreadsCommutator::RenderThread, diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 61182eee24..ca9ee768e1 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -1149,9 +1149,11 @@ void FrontendRenderer::RenderUserMarksLayer(ScreenBase const & modelView) for (auto const & group : m_userMarkRenderGroups) { ASSERT(group.get() != nullptr, ()); - if (m_userMarkVisibility.find(group->GetLayerId()) != m_userMarkVisibility.end() && - screenRect.IsIntersect(group->GetTileKey().GetGlobalRect())) - RenderSingleGroup(modelView, make_ref(group)); + if (m_userMarkVisibility.find(group->GetLayerId()) != m_userMarkVisibility.end()) + { + if (!group->CanBeClipped() || screenRect.IsIntersect(group->GetTileKey().GetGlobalRect())) + RenderSingleGroup(modelView, make_ref(group)); + } } } diff --git a/drape_frontend/render_group.cpp b/drape_frontend/render_group.cpp index ac5e7b63b2..aa4a9d4cbf 100755 --- a/drape_frontend/render_group.cpp +++ b/drape_frontend/render_group.cpp @@ -242,6 +242,11 @@ size_t UserMarkRenderGroup::GetLayerId() const return m_layerId; } +bool UserMarkRenderGroup::CanBeClipped() const +{ + return m_state.GetProgramIndex() != gpu::LINE_PROGRAM; +} + string DebugPrint(RenderGroup const & group) { ostringstream out; diff --git a/drape_frontend/render_group.hpp b/drape_frontend/render_group.hpp index c28fdd2ca1..8c99d1b86f 100755 --- a/drape_frontend/render_group.hpp +++ b/drape_frontend/render_group.hpp @@ -105,6 +105,8 @@ public: size_t GetLayerId() const; + bool CanBeClipped() const; + private: drape_ptr<dp::RenderBucket> m_renderBucket; unique_ptr<OpacityAnimation> m_animation; diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 12a28e9df5..54f55e7c2d 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -548,7 +548,7 @@ BOOL gIsFirstMyPositionMode = YES; } if (self.isAppWallAdActive) return; - self.appWallAd = [[MTRGNativeAppwallAd alloc] initWithSlotId:@(MY_TARGET_KEY)]; + self.appWallAd = [[MTRGNativeAppwallAd alloc] initWithSlotId:@(MY_TARGET_KEY).stringValue]; self.appWallAd.handleLinksInApp = YES; self.appWallAd.closeButtonTitle = L(@"close"); self.appWallAd.delegate = self; |