diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 3551471686..9039d30f68 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -1238,25 +1238,25 @@ public class MwmActivity extends BaseMwmFragmentActivity @Override public void onSubwayLayerSelected() { - mToggleMapLayerController.toggleMode(Mode.SUBWAY); + toggleLayer(Mode.SUBWAY, Statistics.ParamValue.MAP); } @Override public void onTrafficLayerSelected() { - mToggleMapLayerController.toggleMode(Mode.TRAFFIC); + toggleLayer(Mode.TRAFFIC, Statistics.ParamValue.MAP); } @Override public void onIsolinesLayerSelected() { - mToggleMapLayerController.toggleMode(Mode.ISOLINES); + toggleLayer(Mode.ISOLINES, Statistics.ParamValue.MAP); } @Override public void onGuidesLayerSelected() { - mToggleMapLayerController.toggleMode(Mode.GUIDES); + toggleLayer(Mode.GUIDES, Statistics.ParamValue.MAP); } private void onIsolinesStateChanged(@NonNull IsolinesState type) @@ -2661,6 +2661,13 @@ public class MwmActivity extends BaseMwmFragmentActivity this, BookmarkCategoriesActivity.REQ_CODE_DOWNLOAD_BOOKMARK_CATEGORY, url); } + private void toggleLayer(@NonNull Mode mode, @NonNull String from) + { + boolean isEnabled = mode.isEnabled(getApplicationContext()); + Statistics.INSTANCE.trackMapLayerClick(mode, from, isEnabled); + mToggleMapLayerController.toggleMode(mode); + } + private class CurrentPositionClickListener implements OnClickListener { @Override @@ -2904,25 +2911,25 @@ public class MwmActivity extends BaseMwmFragmentActivity @Override public void onSubwayLayerOptionSelected() { - onSubwayLayerSelected(); + toggleLayer(Mode.SUBWAY, Statistics.ParamValue.MENU); } @Override public void onTrafficLayerOptionSelected() { - onTrafficLayerSelected(); + toggleLayer(Mode.TRAFFIC, Statistics.ParamValue.MENU); } @Override public void onIsolinesLayerOptionSelected() { - onIsolinesLayerSelected(); + toggleLayer(Mode.ISOLINES, Statistics.ParamValue.MENU); } @Override public void onGuidesLayerOptionSelected() { - onGuidesLayerSelected(); + toggleLayer(Mode.GUIDES, Statistics.ParamValue.MENU); } } } diff --git a/android/src/com/mapswithme/maps/maplayer/MapLayerCompositeController.java b/android/src/com/mapswithme/maps/maplayer/MapLayerCompositeController.java index 571298fde6..355ade1704 100644 --- a/android/src/com/mapswithme/maps/maplayer/MapLayerCompositeController.java +++ b/android/src/com/mapswithme/maps/maplayer/MapLayerCompositeController.java @@ -12,6 +12,7 @@ import com.mapswithme.maps.maplayer.traffic.widget.TrafficButtonController; import com.mapswithme.maps.tips.Tutorial; import com.mapswithme.maps.tips.TutorialClickListener; import com.mapswithme.util.InputUtils; +import com.mapswithme.util.statistics.Statistics; import java.util.ArrayList; import java.util.Collections; @@ -328,8 +329,10 @@ public class MapLayerCompositeController implements MapLayerController { if (mCurrentLayer.getMode().isEnabled(mActivity)) { + Mode mode = getCurrentLayer().getMode(); + Statistics.INSTANCE.trackMapLayerClick(mode, Statistics.ParamValue.MAP, false); turnOff(); - toggleMode(getCurrentLayer().getMode()); + toggleMode(mode); } else { diff --git a/android/src/com/mapswithme/util/statistics/Statistics.java b/android/src/com/mapswithme/util/statistics/Statistics.java index eca422f10d..def646d68e 100644 --- a/android/src/com/mapswithme/util/statistics/Statistics.java +++ b/android/src/com/mapswithme/util/statistics/Statistics.java @@ -29,6 +29,7 @@ import com.mapswithme.maps.downloader.MapManager; import com.mapswithme.maps.editor.Editor; import com.mapswithme.maps.editor.OsmOAuth; import com.mapswithme.maps.location.LocationHelper; +import com.mapswithme.maps.maplayer.Mode; import com.mapswithme.maps.purchase.ValidationStatus; import com.mapswithme.maps.routing.RoutePointInfo; import com.mapswithme.maps.routing.RoutingOptions; @@ -52,6 +53,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import static com.mapswithme.util.BatteryState.CHARGING_STATUS_PLUGGED; @@ -126,6 +128,7 @@ import static com.mapswithme.util.statistics.Statistics.EventParam.METHOD; import static com.mapswithme.util.statistics.Statistics.EventParam.MODE; import static com.mapswithme.util.statistics.Statistics.EventParam.MWM_NAME; import static com.mapswithme.util.statistics.Statistics.EventParam.MWM_VERSION; +import static com.mapswithme.util.statistics.Statistics.EventParam.NAME; import static com.mapswithme.util.statistics.Statistics.EventParam.NETWORK; import static com.mapswithme.util.statistics.Statistics.EventParam.OBJECT_LAT; import static com.mapswithme.util.statistics.Statistics.EventParam.OBJECT_LON; @@ -140,6 +143,7 @@ import static com.mapswithme.util.statistics.Statistics.EventParam.RESTAURANT_LO import static com.mapswithme.util.statistics.Statistics.EventParam.SERVER_ID; import static com.mapswithme.util.statistics.Statistics.EventParam.SERVER_IDS; import static com.mapswithme.util.statistics.Statistics.EventParam.STATE; +import static com.mapswithme.util.statistics.Statistics.EventParam.TURN_ON; import static com.mapswithme.util.statistics.Statistics.EventParam.TYPE; import static com.mapswithme.util.statistics.Statistics.EventParam.VALUE; import static com.mapswithme.util.statistics.Statistics.EventParam.VENDOR; @@ -539,6 +543,7 @@ public enum Statistics static final String UGC_AUTH_EXTERNAL_REQUEST_SUCCESS = "UGC_Auth_external_request_success"; static final String UGC_AUTH_ERROR = "UGC_Auth_error"; static final String MAP_LAYERS_ACTIVATE = "Map_Layers_activate"; + static final String MAP_LAYERS_CLICK = "Map_Layers_click"; // Purchases. public static final String INAPP_PURCHASE_PREVIEW_PAY = "InAppPurchase_Preview_pay"; @@ -616,6 +621,7 @@ public enum Statistics public static final String VERSION = "version"; public static final String TAB = "tab"; public static final String ENABLED = "Enabled"; + public static final String TURN_ON = "turn_on"; public static final String RATING = "Rating"; public static final String LANGUAGE = "language"; public static final String NAME = "Name"; @@ -742,7 +748,7 @@ public enum Statistics public static final String OFFSCREEEN = "Offscreen"; public static final String MAPSME_GUIDES = "MapsMeGuides"; public static final String TINKOFF_INSURANCE = "Tinkoff_Insurance"; - public static final String TINKOFF_ALL_AIRLINES= "Tinkoff_AllAirlines"; + public static final String TINKOFF_ALL_AIRLINES = "Tinkoff_AllAirlines"; public static final String SKYENG = "Skyeng"; public static final String MTS = "MTS"; public static final String WIKIPEDIA = "wikipedia"; @@ -750,7 +756,8 @@ public enum Statistics public static final String FULL = "full"; static final String CRASH_REPORTS = "crash_reports"; static final String PERSONAL_ADS = "personal_ads"; - static final String MAP = "map"; + public static final String MAP = "map"; + public static final String MENU = "menu"; static final String GOOGLE = "google"; static final String PHONE = "phone"; static final String ADD_DESC = "add_description"; @@ -1018,6 +1025,13 @@ public enum Statistics trackEvent(EventName.MAP_LAYERS_ACTIVATE, builder); } + public void trackMapLayerClick(@NonNull Mode mode, @NonNull String from, boolean turnOn) + { + ParameterBuilder builder = params().add(NAME, mode.name().toLowerCase(Locale.ENGLISH)) + .add(FROM, from).add(TURN_ON, turnOn); + trackEvent(EventName.MAP_LAYERS_CLICK, builder); + } + public void trackEditorSuccess(boolean newObject) { trackEvent(newObject ? EventName.EDITOR_SUCCESS_CREATE : EventName.EDITOR_SUCCESS_EDIT,