diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java index 0d7bc02124..e158a7b58c 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java +++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java @@ -392,7 +392,7 @@ public class PlacePageView extends RelativeLayout break; case BOOKING: - onBookingClick(true); + onBookingClick(true /* book */, mMapObject); break; } } @@ -464,7 +464,7 @@ public class PlacePageView extends RelativeLayout refreshPreview(); } - private void onBookingClick(final boolean book) + private void onBookingClick(final boolean book, final MapObject hotelPos) { // TODO (trashkalmar): Set correct text Utils.checkConnection(getActivity(), R.string.common_check_internet_connection_dialog, new Utils.Proc() @@ -480,18 +480,16 @@ public class PlacePageView extends RelativeLayout return; Map params = new HashMap<>(); - params.put("provider", "Booking.com"); - - MapObject myPos = LocationHelper.INSTANCE.getMyPosition(); - params.put("lat", (myPos == null ? "N/A" : String.valueOf(myPos.getLat()))); - params.put("lon", (myPos == null ? "N/A" : String.valueOf(myPos.getLon()))); + params.put("provider", "Booking.Com"); + params.put("hotel_lat", (hotelPos == null ? "N/A" : String.valueOf(hotelPos.getLat()))); + params.put("hotel_lon", (hotelPos == null ? "N/A" : String.valueOf(hotelPos.getLon()))); params.put("hotel", info.getId()); String event = (book ? Statistics.EventName.PP_SPONSORED_BOOK : Statistics.EventName.PP_SPONSORED_DETAILS); - Statistics.INSTANCE.trackEvent(event, params); - org.alohalytics.Statistics.logEvent(event, params); + final Location location = LocationHelper.INSTANCE.getLastKnownLocation(); + Statistics.INSTANCE.trackEvent(event, location, params); try { @@ -1014,7 +1012,7 @@ public class PlacePageView extends RelativeLayout addPlace(); break; case R.id.ll__more: - onBookingClick(false); + onBookingClick(false /* book */, mMapObject); break; case R.id.iv__bookmark_color: saveBookmarkTitle(); diff --git a/android/src/com/mapswithme/util/statistics/Statistics.java b/android/src/com/mapswithme/util/statistics/Statistics.java index 06df76da20..5172f9e926 100644 --- a/android/src/com/mapswithme/util/statistics/Statistics.java +++ b/android/src/com/mapswithme/util/statistics/Statistics.java @@ -2,13 +2,16 @@ package com.mapswithme.util.statistics; import android.app.Activity; import android.content.Context; +import android.location.Location; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.support.annotation.NonNull; import android.util.Log; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import com.facebook.appevents.AppEventsLogger; @@ -260,6 +263,25 @@ public enum Statistics } } + public void trackEvent(@NonNull String name, Location location, @NonNull Map params) + { + if (mEnabled) + { + List eventDictionary = new ArrayList(); + for (Map.Entry entry : params.entrySet()) + { + eventDictionary.add(entry.getKey().toString()); + eventDictionary.add(entry.getValue()); + } + + org.alohalytics.Statistics.logEvent(name, eventDictionary.toArray(new String[0]), location); + + params.put("lat", (location == null ? "N/A" : String.valueOf(location.getLatitude()))); + params.put("lon", (location == null ? "N/A" : String.valueOf(location.getLongitude()))); + FlurryAgent.logEvent(name, params); + } + } + public void trackEvent(@NonNull String name, @NonNull ParameterBuilder builder) { trackEvent(name, builder.get());