From 2b0aa4ef2ae3968c21a4752a3f565aa78ef8e3e8 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: Wed, 6 Dec 2017 18:11:44 +0300 Subject: [PATCH] [android] Added showing PP from discovery screen --- .../src/com/mapswithme/maps/MwmActivity.java | 37 +++++++++++++++---- .../maps/discovery/DiscoveryActivity.java | 2 + .../maps/discovery/DiscoveryFragment.java | 24 +++++++++--- 3 files changed, 49 insertions(+), 14 deletions(-) diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 9a61fb041c..5a40734a55 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -1053,16 +1053,37 @@ public class MwmActivity extends BaseMwmFragmentActivity if (destination == null) return; - addTask(new MapTask() + String action = data.getAction(); + if (TextUtils.isEmpty(action)) + return; + + MapTask task; + if (action.equals(DiscoveryActivity.ACTION_ROUTE_TO)) { - @Override - public boolean run(MwmActivity target) + task = new MapTask() { - RoutingController.get().setRouterType(Framework.ROUTER_TYPE_PEDESTRIAN); - RoutingController.get().prepare(true, destination); - return false; - } - }); + @Override + public boolean run(MwmActivity target) + { + RoutingController.get().setRouterType(Framework.ROUTER_TYPE_PEDESTRIAN); + RoutingController.get().prepare(true, destination); + return false; + } + }; + } + else + { + task = new MapTask() + { + @Override + public boolean run(MwmActivity target) + { + Framework.nativeShowFeatureByLatLon(destination.getLat(), destination.getLon()); + return false; + } + }; + } + addTask(task); } @Override diff --git a/android/src/com/mapswithme/maps/discovery/DiscoveryActivity.java b/android/src/com/mapswithme/maps/discovery/DiscoveryActivity.java index d1df701519..0c563e8e50 100644 --- a/android/src/com/mapswithme/maps/discovery/DiscoveryActivity.java +++ b/android/src/com/mapswithme/maps/discovery/DiscoveryActivity.java @@ -7,6 +7,8 @@ import com.mapswithme.maps.base.BaseMwmFragmentActivity; public class DiscoveryActivity extends BaseMwmFragmentActivity { public static final String EXTRA_DISCOVERY_OBJECT = "extra_discovery_object"; + public static final String ACTION_ROUTE_TO = "action_route_to"; + public static final String ACTION_SHOW_ON_MAP = "action_show_on_map"; @Override protected Class getFragmentClass() diff --git a/android/src/com/mapswithme/maps/discovery/DiscoveryFragment.java b/android/src/com/mapswithme/maps/discovery/DiscoveryFragment.java index 557bf0e8bd..b20eb49222 100644 --- a/android/src/com/mapswithme/maps/discovery/DiscoveryFragment.java +++ b/android/src/com/mapswithme/maps/discovery/DiscoveryFragment.java @@ -301,20 +301,32 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements UICallb @Override public void onItemSelected(@NonNull Items.SearchItem item) { - // TODO: Show point on the map. Coming soon. + Intent intent = new Intent(DiscoveryActivity.ACTION_SHOW_ON_MAP); + setResult(item, intent); } @Override public void onActionButtonSelected(@NonNull Items.SearchItem item) { - Intent intent = new Intent(); - String title = TextUtils.isEmpty(item.getTitle()) ? "" : item.getTitle(); - String subtitle = TextUtils.isEmpty(item.getSubtitle()) ? "" : item.getSubtitle(); - MapObject poi = MapObject.createMapObject(FeatureId.EMPTY, MapObject.SEARCH, title, subtitle, - item.getLat(), item.getLon()); + Intent intent = new Intent(DiscoveryActivity.ACTION_ROUTE_TO); + setResult(item, intent); + } + + private void setResult(@NonNull Items.SearchItem item, @NonNull Intent intent) + { + MapObject poi = createMapObject(item); intent.putExtra(DiscoveryActivity.EXTRA_DISCOVERY_OBJECT, poi); getContext().setResult(Activity.RESULT_OK, intent); getContext().finish(); } + + @NonNull + private static MapObject createMapObject(@NonNull Items.SearchItem item) + { + String title = TextUtils.isEmpty(item.getTitle()) ? "" : item.getTitle(); + String subtitle = TextUtils.isEmpty(item.getSubtitle()) ? "" : item.getSubtitle(); + return MapObject.createMapObject(FeatureId.EMPTY, MapObject.SEARCH, title, subtitle, + item.getLat(), item.getLon()); + } } }