diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index c98ca55e01..007db54ea2 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -437,7 +437,7 @@ namespace android m_mask = mask; } - void Framework::ShowSearchResult(search::Result const & r, size_t index) + void Framework::ShowSearchResult(search::Result const & r, int index) { m_doLoadState = false; m_work.ShowSearchResult(r, index); diff --git a/android/jni/com/mapswithme/maps/Framework.hpp b/android/jni/com/mapswithme/maps/Framework.hpp index b0d2144e3b..e650d37b13 100644 --- a/android/jni/com/mapswithme/maps/Framework.hpp +++ b/android/jni/com/mapswithme/maps/Framework.hpp @@ -90,7 +90,7 @@ namespace android /// Show rect from another activity. Ensure that no LoadState will be called, /// when maim map activity will become active. - void ShowSearchResult(search::Result const & r, size_t index); + void ShowSearchResult(search::Result const & r, int index); bool Search(search::SearchParams const & params); string GetLastSearchQuery() { return m_searchQuery; } diff --git a/android/jni/com/mapswithme/maps/SearchActivity.cpp b/android/jni/com/mapswithme/maps/SearchActivity.cpp index 6df437deab..262741d954 100644 --- a/android/jni/com/mapswithme/maps/SearchActivity.cpp +++ b/android/jni/com/mapswithme/maps/SearchActivity.cpp @@ -162,8 +162,14 @@ public: // // ... // n -- last - if (CheckPosition(position)) - g_framework->ShowSearchResult(m_results.GetResult(position), position - 1); + const int positionInResults = position - 1; + if (CheckPosition(positionInResults)) + { + if (position == 0) // all result, first arguemnt does not matter + g_framework->ShowSearchResult(m_results.GetResult(0), positionInResults); + else + g_framework->ShowSearchResult(m_results.GetResult(positionInResults), positionInResults); + } } search::Result const * GetResult(int position, int resultID) diff --git a/android/src/com/mapswithme/maps/MapObjectFragment.java b/android/src/com/mapswithme/maps/MapObjectFragment.java index 3d1802ec5b..496b332ccf 100644 --- a/android/src/com/mapswithme/maps/MapObjectFragment.java +++ b/android/src/com/mapswithme/maps/MapObjectFragment.java @@ -451,6 +451,12 @@ public class MapObjectFragment extends Fragment @Override public MapObjectType getType() { return mType; } + + @Override + public String getPoiTypeName() + { + return null; + } }; } diff --git a/android/src/com/mapswithme/maps/SearchActivity.java b/android/src/com/mapswithme/maps/SearchActivity.java index 6e8bcae617..342d61f10b 100644 --- a/android/src/com/mapswithme/maps/SearchActivity.java +++ b/android/src/com/mapswithme/maps/SearchActivity.java @@ -164,7 +164,7 @@ public class SearchActivity extends MapsWithMeBaseListActivity implements Locati else if (m_count < 0) return 0; else - return (m_count == 0 ? 1 : m_count); + return (m_count == 0 ? 1 : m_count + 1); // first additional item is "Show all result for" } @Override @@ -319,6 +319,21 @@ public class SearchActivity extends MapsWithMeBaseListActivity implements Locati } else { + // title item with "Show all" text + if (position == 0) + { + holder.m_name.setText("TODO show all text"); + holder.m_country.setText(null); + holder.m_amenity.setText(null); + holder.m_distance.setText(null); + holder.m_flag.clear(); + + return convertView; + } + // 0 index is for multiple result + // so real result are from 1 + --position; + // Show search results. final SearchResult r = m_context.getResult(position, m_resultID); diff --git a/map/framework.cpp b/map/framework.cpp index 6f1b231d10..2cd5ba444e 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1221,16 +1221,16 @@ bool Framework::GetCurrentPosition(double & lat, double & lon) const else return false; } -void Framework::ShowSearchResult(search::Result const & res, size_t index) +void Framework::ShowSearchResult(search::Result const & res, int index) { - search::Results searchRes; - GetSearchEngine()->GetResults(searchRes); - m_bmManager.AdditionalPoiLayerSetVisible(); m_bmManager.AdditionalPoiLayerClear(); if (index == -1) // That means show all results { + search::Results searchRes; + GetSearchEngine()->GetResults(searchRes); + LOG(LDEBUG, ("MwmSearch", "All result,", index)); m2::RectD resultsRect(searchRes.GetResult(0).GetFeatureCenter(), @@ -1250,6 +1250,7 @@ void Framework::ShowSearchResult(search::Result const & res, size_t index) else // single result { m_bmManager.AdditionalPoiLayerAddPoi(Bookmark(res.GetFeatureCenter(), res.GetString(), "api_pin")); + LOG(LDEBUG, ("MwmSearch", "Single result,", index)); int scale; diff --git a/map/framework.hpp b/map/framework.hpp index 27f5ed3d74..496d7be574 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -278,7 +278,7 @@ public: void PrepareSearch(bool hasPt, double lat = 0.0, double lon = 0.0); bool Search(search::SearchParams const & params); bool GetCurrentPosition(double & lat, double & lon) const; - void ShowSearchResult(search::Result const & res, size_t index); + void ShowSearchResult(search::Result const & res, int index); /// Calculate distance and direction to POI for the given position. /// @param[in] point POI's position;