diff --git a/android/src/com/mapswithme/maps/search/SearchAdapter.java b/android/src/com/mapswithme/maps/search/SearchAdapter.java index 8172787144..09efc726dd 100644 --- a/android/src/com/mapswithme/maps/search/SearchAdapter.java +++ b/android/src/com/mapswithme/maps/search/SearchAdapter.java @@ -60,14 +60,7 @@ class SearchAdapter extends RecyclerView.Adapter processClick(mResult, mOrder)); } @Override @@ -166,21 +159,21 @@ class SearchAdapter extends RecyclerView.AdapterGetTypes()); - - m2::PointD const center = m_currentPlacePageInfo->GetMercator(); - if (m_drapeEngine != nullptr) + if (m_drapeEngine) { + if (scale < 0) + scale = GetFeatureViewportScale(m_currentPlacePageInfo->GetTypes()); + m2::PointD const center = m_currentPlacePageInfo->GetMercator(); m_drapeEngine->SetModelViewCenter(center, scale, animation, true /* trackVisibleViewport */); + } ActivateMapSelection(); } @@ -1994,14 +1994,13 @@ void Framework::ActivateMapSelection() m_searchMarks.SetSelected(featureId); - CHECK_NOT_EQUAL(m_currentPlacePageInfo->GetSelectedObject(), df::SelectionShape::OBJECT_EMPTY, ("Empty selections are impossible.")); - if (m_drapeEngine != nullptr) + auto const selObj = m_currentPlacePageInfo->GetSelectedObject(); + CHECK_NOT_EQUAL(selObj, df::SelectionShape::OBJECT_EMPTY, ("Empty selections are impossible.")); + if (m_drapeEngine) { - m_drapeEngine->SelectObject(m_currentPlacePageInfo->GetSelectedObject(), m_currentPlacePageInfo->GetMercator(), - featureId, - m_currentPlacePageInfo->GetBuildInfo().m_needAnimationOnSelection, - m_currentPlacePageInfo->GetBuildInfo().m_isGeometrySelectionAllowed, - true); + auto const & bi = m_currentPlacePageInfo->GetBuildInfo(); + m_drapeEngine->SelectObject(selObj, m_currentPlacePageInfo->GetMercator(), featureId, + bi.m_needAnimationOnSelection, bi.m_isGeometrySelectionAllowed, true); } if (m_onPlacePageOpen)