[android] Added statistics for catalog

This commit is contained in:
Dmitry Donskoy 2018-07-05 14:48:28 +03:00 committed by Vlad Mihaylenko
parent d56cf29480
commit 9730e7bfcb
6 changed files with 86 additions and 12 deletions

View file

@ -13,6 +13,7 @@ import android.view.ViewGroup;
import com.mapswithme.maps.R;
import com.mapswithme.maps.base.BaseMwmFragment;
import com.mapswithme.util.SharedPropertiesUtils;
import com.mapswithme.util.statistics.Statistics;
import java.util.Arrays;
import java.util.List;
@ -21,6 +22,10 @@ public class BookmarkCategoriesPagerFragment extends BaseMwmFragment
{
final static String ARG_CATEGORIES_PAGE = "arg_categories_page";
@SuppressWarnings("NullableProblems")
@NonNull
private BookmarksPagerAdapter mAdapter;
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
{
@ -38,8 +43,8 @@ public class BookmarkCategoriesPagerFragment extends BaseMwmFragment
FragmentManager fm = getActivity().getSupportFragmentManager();
List<BookmarksPageFactory> dataSet = getAdapterDataSet();
BookmarksPagerAdapter adapter = new BookmarksPagerAdapter(getContext(), fm, dataSet);
viewPager.setAdapter(adapter);
mAdapter = new BookmarksPagerAdapter(getContext(), fm, dataSet);
viewPager.setAdapter(mAdapter);
viewPager.setCurrentItem(saveAndGetInitialPage());
tabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(new PageChangeListener());
@ -72,6 +77,8 @@ public class BookmarkCategoriesPagerFragment extends BaseMwmFragment
public void onPageSelected(int position)
{
SharedPropertiesUtils.setLastVisibleBookmarkCategoriesPage(getActivity(), position);
BookmarksPageFactory factory = mAdapter.getItemFactory(position);
Statistics.INSTANCE.trackBookmarksTabEvent(factory.getAnalytics().getName());
}
}
}

View file

@ -20,6 +20,7 @@ import com.mapswithme.maps.bookmarks.data.BookmarkManager;
import com.mapswithme.util.DialogUtils;
import com.mapswithme.util.ConnectionState;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.statistics.Statistics;
import java.lang.ref.WeakReference;
@ -183,9 +184,14 @@ public class BookmarksCatalogFragment extends BaseWebViewMwmFragment
UiUtils.show(frag.mRetryBtn);
UiUtils.hide(frag.mWebView, frag.mProgressView);
if (ConnectionState.isConnected())
{
Statistics.INSTANCE.trackDownloadCatalogError(Statistics.ParamValue.UNKNOWN);
return;
Toast.makeText(frag.getContext(), R.string.common_check_internet_connection_dialog_title, Toast.LENGTH_SHORT)
.show();
}
Statistics.INSTANCE.trackDownloadCatalogError(Statistics.ParamValue.NO_INTERNET);
Toast.makeText(frag.getContext(), R.string.common_check_internet_connection_dialog_title,
Toast.LENGTH_SHORT).show();
}
private void retry()

View file

@ -8,7 +8,7 @@ import com.mapswithme.maps.R;
public enum BookmarksPageFactory
{
PRIVATE
PRIVATE(new Analytics(Constants.ANALYTICS_NAME_MY))
{
@NonNull
@Override
@ -23,7 +23,7 @@ public enum BookmarksPageFactory
return R.string.bookmarks_page_my;
}
},
CATALOG(new AdapterResourceProvider.Catalog())
CATALOG(new Analytics(Constants.ANALYTICS_NAME_DOWNLOADED), new AdapterResourceProvider.Catalog())
{
@NonNull
@Override
@ -40,16 +40,19 @@ public enum BookmarksPageFactory
};
@NonNull
private AdapterResourceProvider mResProvider;
private final AdapterResourceProvider mResProvider;
@NonNull
private final Analytics mAnalytics;
BookmarksPageFactory(@NonNull AdapterResourceProvider resourceProvider)
BookmarksPageFactory(@NonNull Analytics analytics, @NonNull AdapterResourceProvider provider)
{
mResProvider = resourceProvider;
mAnalytics = analytics;
mResProvider = provider;
}
BookmarksPageFactory()
BookmarksPageFactory(Analytics analytics)
{
this(new AdapterResourceProvider.Default());
this(analytics, new AdapterResourceProvider.Default());
}
@NonNull
@ -58,6 +61,12 @@ public enum BookmarksPageFactory
return mResProvider;
}
@NonNull
public Analytics getAnalytics()
{
return mAnalytics;
}
public static BookmarksPageFactory get(String value)
{
for (BookmarksPageFactory each : values())
@ -78,4 +87,26 @@ public enum BookmarksPageFactory
public abstract int getTitle();
public static class Analytics
{
@NonNull
private final String mName;
private Analytics(@NonNull String name)
{
mName = name;
}
@NonNull
public String getName()
{
return mName;
}
}
private static class Constants
{
private static final String ANALYTICS_NAME_MY = "my";
private static final String ANALYTICS_NAME_DOWNLOADED = "downloaded";
}
}

View file

@ -42,4 +42,10 @@ public class BookmarksPagerAdapter extends FragmentStatePagerAdapter
{
return mFactories.size();
}
@NonNull
public BookmarksPageFactory getItemFactory(int position)
{
return mFactories.get(position);
}
}

View file

@ -14,6 +14,7 @@ import com.mapswithme.util.BottomSheetHelper;
import com.mapswithme.util.SharedPropertiesUtils;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.sharing.TargetUtils;
import com.mapswithme.util.statistics.Statistics;
public class CachedBookmarkCategoriesFragment extends BaseBookmarkCategoriesFragment implements
BookmarkManager.BookmarksCatalogListener
@ -127,6 +128,7 @@ public class CachedBookmarkCategoriesFragment extends BaseBookmarkCategoriesFrag
.putExtra(BookmarksCatalogFragment.EXTRA_BOOKMARKS_CATALOG_URL,
getCatalogUrl());
getActivity().startActivity(intent);
Statistics.INSTANCE.trackOpenCatalogScreen();
}
@NonNull

View file

@ -43,6 +43,7 @@ import com.my.tracker.MyTracker;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -307,6 +308,9 @@ public enum Statistics
public static final String UGC_AUTH_EXTERNAL_REQUEST_SUCCESS = "UGC_Auth_external_request_success";
public static final String UGC_AUTH_ERROR = "UGC_Auth_error";
public static final String MAP_LAYERS_ACTIVATE = "Map_Layers_activate";
public static final String BOOKMARKS_TAB_CLICK = "Bookmarks_Tab_click";
private static final String BOOKMARKS_DOWNLOADED_CATALOGUE_OPEN = "Bookmarks_Downloaded_Catalogue_open";
private static final String BOOKMARKS_DOWNLOADED_CATALOGUE_ERROR = "Bookmarks_Downloaded_Catalogue_error";
public static class Settings
{
@ -428,7 +432,7 @@ public enum Statistics
public static final String GOOGLE = "google";
public static final String MAPSME = "mapsme";
public static final String PHONE = "phone";
static final String UNKNOWN = "unknown";
public static final String UNKNOWN = "unknown";
static final String NETWORK = "network";
static final String DISK = "disk";
static final String AUTH = "auth";
@ -438,6 +442,7 @@ public enum Statistics
static final String DISK_NO_SPACE = "disk_no_space";
static final String BACKUP = "backup";
static final String RESTORE = "restore";
public static final String NO_INTERNET = "no_internet";
static final String SUBWAY = "subway";
static final String TRAFFIC = "traffic";
public static final String SUCCESS = "success";
@ -740,6 +745,23 @@ public enum Statistics
trackHotelEvent(PP_SPONSORED_BOOK, hotel, mapObject);
}
public void trackBookmarksTabEvent(@NonNull String param)
{
ParameterBuilder params = new ParameterBuilder().add(EventParam.VALUE, param);
trackEvent(EventName.BOOKMARKS_TAB_CLICK, params);
}
public void trackOpenCatalogScreen()
{
trackEvent(EventName.BOOKMARKS_DOWNLOADED_CATALOGUE_OPEN, Collections.emptyMap());
}
public void trackDownloadCatalogError(@NonNull String value)
{
ParameterBuilder params = new ParameterBuilder().add(EventParam.ERROR, value);
trackEvent(EventName.BOOKMARKS_DOWNLOADED_CATALOGUE_ERROR, params);
}
public void trackPPBanner(@NonNull String eventName, @NonNull MwmNativeAd ad, @BannerState int state)
{
trackEvent(eventName, Statistics.params()