forked from organicmaps/organicmaps
[android] Supported user actions call for UserActionsLogger
This commit is contained in:
parent
525dcd30b7
commit
e3b67a1be4
8 changed files with 115 additions and 20 deletions
|
@ -67,6 +67,7 @@ import com.mapswithme.maps.location.CompassData;
|
|||
import com.mapswithme.maps.location.LocationHelper;
|
||||
import com.mapswithme.maps.maplayer.MapLayerCompositeController;
|
||||
import com.mapswithme.maps.maplayer.Mode;
|
||||
import com.mapswithme.maps.metrics.UserActionsLogger;
|
||||
import com.mapswithme.maps.tips.TipsApi;
|
||||
import com.mapswithme.maps.maplayer.subway.OnSubwayLayerToggleListener;
|
||||
import com.mapswithme.maps.maplayer.subway.SubwayManager;
|
||||
|
@ -2743,6 +2744,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
Statistics.INSTANCE.trackToolbarClick(getItem());
|
||||
RoutingController.get().cancel();
|
||||
getActivity().closeMenu(() -> getActivity().showSearch(getActivity().mSearchController.getQuery()));
|
||||
UserActionsLogger.logDiscoveryShownEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2806,6 +2808,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
{
|
||||
Statistics.INSTANCE.trackToolbarClick(getItem());
|
||||
getActivity().closeMenu(getActivity()::showBookmarks);
|
||||
UserActionsLogger.logBookmarksCatalogShownEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2836,6 +2839,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
{
|
||||
Statistics.INSTANCE.trackToolbarClick(getItem());
|
||||
getActivity().showDiscovery();
|
||||
UserActionsLogger.logDiscoveryShownEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ import com.mapswithme.maps.gallery.ItemSelectedListener;
|
|||
import com.mapswithme.maps.gallery.Items;
|
||||
import com.mapswithme.maps.gallery.impl.BaseItemSelectedListener;
|
||||
import com.mapswithme.maps.gallery.impl.Factory;
|
||||
import com.mapswithme.maps.gallery.impl.GalleryBasedItemSelectedListener;
|
||||
import com.mapswithme.maps.search.SearchResult;
|
||||
import com.mapswithme.maps.widget.PlaceholderView;
|
||||
import com.mapswithme.maps.widget.ToolbarController;
|
||||
|
@ -389,22 +390,24 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
private <I extends Items.Item> ItemSelectedListener<I> createOnlineProductItemListener(@NonNull GalleryType galleryType,
|
||||
@NonNull ItemType itemType)
|
||||
{
|
||||
return new BaseItemSelectedListener<I>(getActivity(), itemType)
|
||||
return new GalleryBasedItemSelectedListener<I>(getActivity(), itemType)
|
||||
{
|
||||
@Override
|
||||
public void onItemSelected(@NonNull I item, int position)
|
||||
public void onItemSelectedInternal(@NonNull I item, int position)
|
||||
{
|
||||
super.onItemSelected(item, position);
|
||||
super.onItemSelectedInternal(item, position);
|
||||
Statistics.INSTANCE.trackGalleryProductItemSelected(galleryType, DISCOVERY, position, EXTERNAL);
|
||||
getType().getItemClickEvent().log();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMoreItemSelected(@NonNull I item)
|
||||
public void onMoreItemSelectedInternal(@NonNull I item)
|
||||
{
|
||||
super.onMoreItemSelected(item);
|
||||
super.onMoreItemSelectedInternal(item);
|
||||
Statistics.INSTANCE.trackGalleryEvent(Statistics.EventName.PP_SPONSOR_MORE_SELECTED,
|
||||
galleryType,
|
||||
DISCOVERY);
|
||||
getType().getMoreClickEvent().log();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -423,7 +426,7 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
}
|
||||
}
|
||||
|
||||
private static class SearchBasedListener extends BaseItemSelectedListener<Items.SearchItem>
|
||||
private static class SearchBasedListener extends GalleryBasedItemSelectedListener<Items.SearchItem>
|
||||
{
|
||||
@NonNull
|
||||
private final DiscoveryFragment mFragment;
|
||||
|
@ -441,14 +444,14 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onMoreItemSelected(@NonNull Items.SearchItem item)
|
||||
public void onMoreItemSelectedInternal(@NonNull Items.SearchItem item)
|
||||
{
|
||||
mFragment.showSimilarItems(item, getType());
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
public void onItemSelected(@NonNull Items.SearchItem item, int position)
|
||||
public void onItemSelectedInternal(@NonNull Items.SearchItem item, int position)
|
||||
{
|
||||
mFragment.showOnMap(item);
|
||||
Statistics.INSTANCE.trackGalleryProductItemSelected(mType, DISCOVERY, position, PLACEPAGE);
|
||||
|
@ -478,7 +481,7 @@ public class DiscoveryFragment extends BaseMwmToolbarFragment implements Discove
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onMoreItemSelected(@NonNull Items.SearchItem item)
|
||||
public void onMoreItemSelectedInternal(@NonNull Items.SearchItem item)
|
||||
{
|
||||
getFragment().showFilter();
|
||||
Statistics.INSTANCE.trackGalleryEvent(Statistics.EventName.PP_SPONSOR_MORE_SELECTED,
|
||||
|
|
|
@ -1,13 +1,31 @@
|
|||
package com.mapswithme.maps.discovery;
|
||||
|
||||
import com.mapswithme.maps.metrics.UserActionsLogger;
|
||||
|
||||
public enum DiscoveryUserEvent
|
||||
{
|
||||
HOTELS_CLICKED,
|
||||
ATTRACTIONS_CLICKED,
|
||||
CAFES_CLICKED,
|
||||
LOCALS_CLICKED,
|
||||
|
||||
MORE_HOTELS_CLICKED,
|
||||
MORE_ATTRACTIONS_CLICKED,
|
||||
MORE_CAFES_CLICKED,
|
||||
MORE_LOCALS_CLICKED
|
||||
MORE_LOCALS_CLICKED,
|
||||
|
||||
/* Must be last */
|
||||
STUB
|
||||
{
|
||||
@Override
|
||||
public void log()
|
||||
{
|
||||
/* Do nothing */
|
||||
}
|
||||
};
|
||||
|
||||
public void log()
|
||||
{
|
||||
UserActionsLogger.logDiscoveryItemClickedEvent(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,10 +11,13 @@ public enum ItemType
|
|||
{
|
||||
VIATOR,
|
||||
|
||||
ATTRACTIONS(R.string.discovery_button_subtitle_attractions)
|
||||
ATTRACTIONS(R.string.discovery_button_subtitle_attractions,
|
||||
DiscoveryUserEvent.MORE_ATTRACTIONS_CLICKED,
|
||||
DiscoveryUserEvent.ATTRACTIONS_CLICKED)
|
||||
{
|
||||
@Override
|
||||
public void onResultReceived(@NonNull DiscoveryResultReceiver callback, @NonNull SearchResult[] results)
|
||||
public void onResultReceived(@NonNull DiscoveryResultReceiver callback,
|
||||
@NonNull SearchResult[] results)
|
||||
{
|
||||
callback.onAttractionsReceived(results);
|
||||
}
|
||||
|
@ -26,10 +29,11 @@ public enum ItemType
|
|||
}
|
||||
},
|
||||
|
||||
CAFES(R.string.food)
|
||||
CAFES(R.string.food, DiscoveryUserEvent.MORE_CAFES_CLICKED, DiscoveryUserEvent.CAFES_CLICKED)
|
||||
{
|
||||
@Override
|
||||
public void onResultReceived(@NonNull DiscoveryResultReceiver callback, @NonNull SearchResult[] results)
|
||||
public void onResultReceived(@NonNull DiscoveryResultReceiver callback,
|
||||
@NonNull SearchResult[] results)
|
||||
{
|
||||
callback.onCafesReceived(results);
|
||||
}
|
||||
|
@ -41,28 +45,51 @@ public enum ItemType
|
|||
}
|
||||
},
|
||||
|
||||
HOTELS
|
||||
HOTELS(R.string.discovery_button_subtitle_attractions, DiscoveryUserEvent.MORE_HOTELS_CLICKED,
|
||||
DiscoveryUserEvent.HOTELS_CLICKED)
|
||||
{
|
||||
@Override
|
||||
public void onResultReceived(@NonNull DiscoveryResultReceiver callback, @NonNull SearchResult[] results)
|
||||
public void onResultReceived(@NonNull DiscoveryResultReceiver callback,
|
||||
@NonNull SearchResult[] results)
|
||||
{
|
||||
callback.onHotelsReceived(results);
|
||||
}
|
||||
},
|
||||
|
||||
LOCAL_EXPERTS;
|
||||
LOCAL_EXPERTS(R.string.discovery_button_subtitle_attractions,
|
||||
DiscoveryUserEvent.MORE_LOCALS_CLICKED,
|
||||
DiscoveryUserEvent.LOCALS_CLICKED);
|
||||
|
||||
@StringRes
|
||||
private final int mSearchCategory;
|
||||
@NonNull
|
||||
private final DiscoveryUserEvent mMoreClickEvent;
|
||||
@NonNull
|
||||
private final DiscoveryUserEvent mItemClickEvent;
|
||||
|
||||
ItemType(@StringRes int searchCategory)
|
||||
ItemType(@StringRes int searchCategory, @NonNull DiscoveryUserEvent moreClickEvent,
|
||||
@NonNull DiscoveryUserEvent itemClickEvent)
|
||||
{
|
||||
mSearchCategory = searchCategory;
|
||||
mMoreClickEvent = moreClickEvent;
|
||||
mItemClickEvent = itemClickEvent;
|
||||
}
|
||||
|
||||
ItemType()
|
||||
{
|
||||
this(UiUtils.NO_ID);
|
||||
this(UiUtils.NO_ID, DiscoveryUserEvent.STUB, DiscoveryUserEvent.STUB);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public DiscoveryUserEvent getMoreClickEvent()
|
||||
{
|
||||
return mMoreClickEvent;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public DiscoveryUserEvent getItemClickEvent()
|
||||
{
|
||||
return mItemClickEvent;
|
||||
}
|
||||
|
||||
@StringRes
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
package com.mapswithme.maps.gallery.impl;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.mapswithme.maps.discovery.ItemType;
|
||||
import com.mapswithme.maps.gallery.Items;
|
||||
|
||||
public class GalleryBasedItemSelectedListener<I extends Items.Item> extends BaseItemSelectedListener<I>
|
||||
{
|
||||
public GalleryBasedItemSelectedListener(@NonNull Activity context, @NonNull ItemType type)
|
||||
{
|
||||
super(context, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void onMoreItemSelected(@NonNull I item)
|
||||
{
|
||||
onMoreItemSelectedInternal(item);
|
||||
getType().getMoreClickEvent().log();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void onItemSelected(@NonNull I item, int position)
|
||||
{
|
||||
onItemSelectedInternal(item, position);
|
||||
getType().getItemClickEvent().log();
|
||||
}
|
||||
|
||||
protected void onMoreItemSelectedInternal(@NonNull I item)
|
||||
{
|
||||
super.onMoreItemSelected(item);
|
||||
}
|
||||
|
||||
protected void onItemSelectedInternal(@NonNull I item, int position)
|
||||
{
|
||||
super.onItemSelected(item, position);
|
||||
}
|
||||
}
|
|
@ -25,6 +25,7 @@ import com.mapswithme.maps.R;
|
|||
import com.mapswithme.maps.bookmarks.OnItemClickListener;
|
||||
import com.mapswithme.maps.maplayer.subway.OnSubwayLayerToggleListener;
|
||||
import com.mapswithme.maps.maplayer.traffic.OnTrafficLayerToggleListener;
|
||||
import com.mapswithme.maps.metrics.UserActionsLogger;
|
||||
import com.mapswithme.maps.widget.recycler.SpanningLinearLayoutManager;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -207,6 +208,7 @@ public class ToggleMapLayerDialog extends DialogFragment
|
|||
{
|
||||
OnSubwayLayerToggleListener listener = (OnSubwayLayerToggleListener) getActivity();
|
||||
listener.onSubwayLayerSelected();
|
||||
UserActionsLogger.logLayerUsedEvent(Mode.SUBWAY);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,6 +219,7 @@ public class ToggleMapLayerDialog extends DialogFragment
|
|||
{
|
||||
OnTrafficLayerToggleListener listener = (OnTrafficLayerToggleListener) getActivity();
|
||||
listener.onTrafficLayerSelected();
|
||||
UserActionsLogger.logLayerUsedEvent(Mode.TRAFFIC);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.mapswithme.maps.metrics;
|
||||
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.mapswithme.maps.discovery.DiscoveryUserEvent;
|
||||
|
|
|
@ -22,6 +22,7 @@ import com.mapswithme.maps.MwmApplication;
|
|||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.maps.activity.CustomNavigateUpListener;
|
||||
import com.mapswithme.maps.base.BaseMwmToolbarFragment;
|
||||
import com.mapswithme.maps.metrics.UserActionsLogger;
|
||||
import com.mapswithme.maps.widget.ToolbarController;
|
||||
import com.mapswithme.maps.widget.recycler.TagItemDecoration;
|
||||
import com.mapswithme.maps.widget.recycler.TagLayoutManager;
|
||||
|
@ -226,6 +227,7 @@ public class FilterFragment extends BaseMwmToolbarFragment
|
|||
mListener.onFilterApply(filter, params);
|
||||
Statistics.INSTANCE.trackFilterEvent(Statistics.EventName.SEARCH_FILTER_APPLY,
|
||||
Statistics.EventParam.HOTEL);
|
||||
UserActionsLogger.logBookingFilterUsedEvent();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Add table
Reference in a new issue