forked from organicmaps/organicmaps
[statistics] Bookmarks sort and search statistics added.
This commit is contained in:
parent
5731aaef9a
commit
f3ca2d2dc2
6 changed files with 119 additions and 0 deletions
|
@ -296,6 +296,7 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
|
|||
{
|
||||
if (!isAdded() || !mToolbarController.hasQuery() || mLastQueryTimestamp != timestamp)
|
||||
return;
|
||||
trackBookmarksSearch();
|
||||
mLastQueryTimestamp = 0;
|
||||
mToolbarController.showProgress(false);
|
||||
updateSearchResults(bookmarkIds);
|
||||
|
@ -506,6 +507,8 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
|
|||
return;
|
||||
|
||||
case BookmarkListAdapter.TYPE_BOOKMARK:
|
||||
if (getAdapter().isSearchResults())
|
||||
trackBookmarksSearchResultSelected();
|
||||
final Bookmark bookmark = (Bookmark) adapter.getItem(position);
|
||||
i.putExtra(MwmActivity.EXTRA_TASK,
|
||||
new Factory.ShowBookmarkTask(bookmark.getCategoryId(), bookmark.getBookmarkId()));
|
||||
|
@ -717,6 +720,16 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
|
|||
Statistics.INSTANCE.trackBookmarkListSharingOptions();
|
||||
}
|
||||
|
||||
private void trackBookmarksSearch()
|
||||
{
|
||||
Statistics.INSTANCE.trackBookmarksSearch(Statistics.ParamValue.BOOKMARKS_LIST);
|
||||
}
|
||||
|
||||
private void trackBookmarksSearchResultSelected()
|
||||
{
|
||||
Statistics.INSTANCE.trackBookmarksSearchResultSelected(Statistics.ParamValue.BOOKMARKS_LIST);
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data)
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.mapswithme.maps.R;
|
|||
import com.mapswithme.maps.base.BaseMwmDialogFragment;
|
||||
import com.mapswithme.maps.bookmarks.data.BookmarkManager;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.statistics.Statistics;
|
||||
|
||||
public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
|
||||
implements RadioGroup.OnCheckedChangeListener
|
||||
|
@ -129,6 +130,7 @@ public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
|
|||
{
|
||||
if (mListener != null)
|
||||
mListener.onResetSorting();
|
||||
trackBookmarksListResetSort();
|
||||
dismiss();
|
||||
}
|
||||
|
||||
|
@ -136,6 +138,7 @@ public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
|
|||
{
|
||||
if (mListener != null)
|
||||
mListener.onSort(sortingType);
|
||||
trackBookmarksListSort(sortingType);
|
||||
dismiss();
|
||||
}
|
||||
|
||||
|
@ -158,4 +161,29 @@ public class ChooseBookmarksSortingTypeFragment extends BaseMwmDialogFragment
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private String getStatisticsSortingType(@BookmarkManager.SortingType int sortingType)
|
||||
{
|
||||
switch (sortingType)
|
||||
{
|
||||
case BookmarkManager.SORT_BY_TYPE:
|
||||
return Statistics.ParamValue.BY_TYPE;
|
||||
case BookmarkManager.SORT_BY_DISTANCE:
|
||||
return Statistics.ParamValue.BY_DISTANCE;
|
||||
case BookmarkManager.SORT_BY_TIME:
|
||||
return Statistics.ParamValue.BY_DATE;
|
||||
}
|
||||
throw new AssertionError("Invalid sorting type");
|
||||
}
|
||||
|
||||
private void trackBookmarksListSort(@BookmarkManager.SortingType int sortingType)
|
||||
{
|
||||
Statistics.INSTANCE.trackBookmarksListSort(getStatisticsSortingType(sortingType));
|
||||
}
|
||||
|
||||
private void trackBookmarksListResetSort()
|
||||
{
|
||||
Statistics.INSTANCE.trackBookmarksListSort(Statistics.ParamValue.BY_DEFAULT);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -211,6 +211,24 @@ public enum Statistics
|
|||
trackEvent(EventName.BM_BOOKMARKS_LIST_SETTINGS_CLICK, builder);
|
||||
}
|
||||
|
||||
public void trackBookmarksListSort(@NonNull String value)
|
||||
{
|
||||
ParameterBuilder builder = new ParameterBuilder().add(EventParam.OPTION, value);
|
||||
trackEvent(EventName.BM_BOOKMARKS_LIST_SORT, builder);
|
||||
}
|
||||
|
||||
public void trackBookmarksSearch(@NonNull String value)
|
||||
{
|
||||
ParameterBuilder builder = new ParameterBuilder().add(EventParam.FROM, value);
|
||||
trackEvent(EventName.BM_BOOKMARKS_SEARCH, builder);
|
||||
}
|
||||
|
||||
public void trackBookmarksSearchResultSelected(@NonNull String value)
|
||||
{
|
||||
ParameterBuilder builder = new ParameterBuilder().add(EventParam.FROM, value);
|
||||
trackEvent(EventName.BM_BOOKMARKS_SEARCH_RESULT_SELECTED, builder);
|
||||
}
|
||||
|
||||
private void trackEditSettingsScreenOptionClick(@NonNull String value)
|
||||
{
|
||||
ParameterBuilder builder = new ParameterBuilder().add(OPTION, value);
|
||||
|
@ -307,6 +325,9 @@ public enum Statistics
|
|||
public static final String BM_EDIT_SETTINGS_CONFIRM = "Bookmarks_Bookmark_Settings_confirm";
|
||||
public static final String BM_BOOKMARKS_LIST_SETTINGS_CLICK = "Bookmarks_BookmarksList_settings_click";
|
||||
public static final String BM_BOOKMARKS_LIST_ITEM_SETTINGS = "Bookmarks_BookmarksListItem_settings";
|
||||
public static final String BM_BOOKMARKS_LIST_SORT = "Bookmarks_BookmarksList_sort";
|
||||
public static final String BM_BOOKMARKS_SEARCH = "Bookmarks_Search";
|
||||
public static final String BM_BOOKMARKS_SEARCH_RESULT_SELECTED = "Bookmarks_Search_result_selected";
|
||||
public static final String BM_GROUP_CREATED = "Bookmark. Group created";
|
||||
public static final String BM_GROUP_CHANGED = "Bookmark. Group changed";
|
||||
public static final String BM_COLOR_CHANGED = "Bookmark. Color changed";
|
||||
|
@ -659,6 +680,11 @@ public enum Statistics
|
|||
public static final String DELETE_GROUP = "delete_group";
|
||||
public static final String OFFSCREEEN = "Offscreen";
|
||||
public static final String MAPSME_GUIDES = "MapsMeGuides";
|
||||
public static final String BY_DEFAULT = "Default";
|
||||
public static final String BY_DATE = "Date";
|
||||
public static final String BY_DISTANCE = "Distance";
|
||||
public static final String BY_TYPE = "Type";
|
||||
public static final String BOOKMARKS_LIST = "BookmarksList";
|
||||
static final String PARTNER = "Partner";
|
||||
}
|
||||
|
||||
|
|
|
@ -397,6 +397,9 @@ using namespace std;
|
|||
handler:^(UIAlertAction *_Nonnull action) {
|
||||
auto &bm = GetFramework().GetBookmarkManager();
|
||||
bm.SetLastSortingType(self.categoryId, type);
|
||||
auto const option = [BookmarksVC statisticsSortingOption:type];
|
||||
[Statistics logEvent:kStatBookmarksListSort
|
||||
withParameters:@{kStatOption: option}];
|
||||
[self sort:type];
|
||||
}]];
|
||||
}
|
||||
|
@ -404,6 +407,8 @@ using namespace std;
|
|||
[actionSheet addAction:[UIAlertAction actionWithTitle:L(@"sort_default")
|
||||
style:UIAlertActionStyleDefault
|
||||
handler:^(UIAlertAction *_Nonnull action) {
|
||||
[Statistics logEvent:kStatBookmarksListSort
|
||||
withParameters:@{kStatOption: kStatSortByDefault}];
|
||||
[self sortDefault];
|
||||
}]];
|
||||
|
||||
|
@ -603,6 +608,18 @@ using namespace std;
|
|||
UNREACHABLE();
|
||||
}
|
||||
|
||||
+ (NSString *)statisticsSortingOption:(BookmarkManager::SortingType)type {
|
||||
switch (type) {
|
||||
case BookmarkManager::SortingType::ByTime:
|
||||
return kStatSortByDate;
|
||||
case BookmarkManager::SortingType::ByDistance:
|
||||
return kStatSortByDistance;
|
||||
case BookmarkManager::SortingType::ByType:
|
||||
return kStatSortByType;
|
||||
}
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
#pragma mark - UISearchBarDelegate
|
||||
|
||||
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
|
||||
|
@ -666,6 +683,8 @@ using namespace std;
|
|||
}
|
||||
|
||||
[self.tableView reloadData];
|
||||
|
||||
[Statistics logEvent:kStatBookmarksSearch withParameters:@{kStatFrom : kStatBookmarksList}];
|
||||
};
|
||||
|
||||
[self showSpinner:YES];
|
||||
|
@ -706,6 +725,8 @@ using namespace std;
|
|||
// Remove cell selection
|
||||
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
[[self currentSections][indexPath.section] didSelectRow:indexPath.row];
|
||||
if (self.searchSections != nil)
|
||||
[Statistics logEvent:kStatBookmarksSearchResultSelected withParameters:@{kStatFrom : kStatBookmarksList}];
|
||||
[self.searchBar resignFirstResponder];
|
||||
[self.navigationController popToRootViewControllerAnimated:NO];
|
||||
}
|
||||
|
|
|
@ -57,6 +57,14 @@ static NSString * const kStatBookmarksSyncSuccess = @"Bookmarks_sync_success";
|
|||
static NSString * const kStatBookmarksListItemSettings = @"Bookmarks_BookmarksListItem_settings";
|
||||
static NSString * const kStatBookmarksListItemMoreClick = @"Bookmarks_BookmarksListItem_More_click";
|
||||
static NSString * const kStatBookmarksListSettingsClick = @"Bookmarks_BookmarksList_settings_click";
|
||||
static NSString * const kStatBookmarksListSort = @"Bookmarks_BookmarksList_sort";
|
||||
static NSString * const kStatSortByDefault = @"Default";
|
||||
static NSString * const kStatSortByDate = @"Date";
|
||||
static NSString * const kStatSortByDistance = @"Distance";
|
||||
static NSString * const kStatSortByType = @"Type";
|
||||
static NSString * const kStatBookmarksSearch = @"Bookmarks_Search";
|
||||
static NSString * const kStatBookmarksSearchResultSelected = @"Bookmarks_Search_result_selected";
|
||||
static NSString * const kStatBookmarksList = @"BookmarksList";
|
||||
static NSString * const kStatBuildRoute = @"Build route";
|
||||
static NSString * const kStatButton = @"button";
|
||||
static NSString * const kStatCallPhoneNumber = @"Call phone number";
|
||||
|
|
|
@ -75,6 +75,28 @@ m2::RectD GetRectAroundPosition(m2::PointD const & position)
|
|||
return MercatorBounds::RectByCenterXYAndSizeInMeters(position, kMaxPositionRadiusM);
|
||||
}
|
||||
|
||||
string GetStatisticsMode(SearchParams const & params)
|
||||
{
|
||||
switch (params.m_mode)
|
||||
{
|
||||
case Mode::Everywhere:
|
||||
case Mode::Viewport:
|
||||
return "Main";
|
||||
case Mode::Downloader:
|
||||
return "Downloader";
|
||||
case Mode::Bookmarks:
|
||||
if (params.m_bookmarksGroupId != bookmarks::kInvalidGroupId)
|
||||
return "BookmarksList";
|
||||
return "Bookmarks";
|
||||
break;
|
||||
case Mode::Count:
|
||||
CHECK(false, ());
|
||||
return "";
|
||||
break;
|
||||
}
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
void SendStatistics(SearchParams const & params, m2::RectD const & viewport, Results const & res)
|
||||
{
|
||||
|
||||
|
@ -100,6 +122,7 @@ void SendStatistics(SearchParams const & params, m2::RectD const & viewport, Res
|
|||
{"query", params.m_query},
|
||||
{"locale", params.m_inputLocale},
|
||||
{"results", resultString},
|
||||
{"from", GetStatisticsMode(params)}
|
||||
};
|
||||
alohalytics::LogEvent("searchEmitResultsAndCoords", stats);
|
||||
GetPlatform().GetMarketingService().SendMarketingEvent(marketing::kSearchEmitResultsAndCoords, {});
|
||||
|
|
Loading…
Add table
Reference in a new issue