forked from organicmaps/organicmaps
[iOS] Added bookmarks cloud statistics
This commit is contained in:
parent
8e3edf4eec
commit
bf2e09602f
2 changed files with 74 additions and 2 deletions
|
@ -28,6 +28,7 @@ static NSString * const kStatApplicationColdStartupInfo = @"Application_ColdStar
|
|||
static NSString * const kStatApply = @"Apply";
|
||||
static NSString * const kStatAsk = @"Ask";
|
||||
static NSString * const kStatAttractions = @"Attractions";
|
||||
static NSString * const kStatAuth = @"auth";
|
||||
static NSString * const kStatAuthorization = @"Authorization";
|
||||
static NSString * const kStatAutoDownload = @"Auto download";
|
||||
static NSString * const kStatAutoZoom = @"Autozoom";
|
||||
|
@ -40,8 +41,13 @@ static NSString * const kStatBookmarkCreated = @"Bookmark. Bookmark created";
|
|||
static NSString * const kStatBookmarks = @"Bookmarks";
|
||||
static NSString * const kStatBookmarksAuthRequestError = @"Bookmarks_SyncProposal_error";
|
||||
static NSString * const kStatBookmarksAuthRequestSuccess = @"Bookmarks_SyncProposal_enabled";
|
||||
static NSString * const kStatBookmarksRestoreProposalError = @"Bookmarks_RestoreProposal_error";
|
||||
static NSString * const kStatBookmarksRestoreProposalSuccess = @"Bookmarks_RestoreProposal_success";
|
||||
static NSString * const kStatBookmarksSyncError = @"Bookmarks_sync_error";
|
||||
static NSString * const kStatBookmarksSyncProposalApproved = @"Bookmarks_SyncProposal_approved";
|
||||
static NSString * const kStatBookmarksSyncProposalShown = @"Bookmarks_SyncProposal_shown";
|
||||
static NSString * const kStatBookmarksSyncStarted = @"Bookmarks_sync_started";
|
||||
static NSString * const kStatBookmarksSyncSuccess = @"Bookmarks_sync_success";
|
||||
static NSString * const kStatBuildRoute = @"Build route";
|
||||
static NSString * const kStatButton = @"Button";
|
||||
static NSString * const kStatCallPhoneNumber = @"Call phone number";
|
||||
|
@ -83,6 +89,7 @@ static NSString * const kStatDeviceType = @"Device type";
|
|||
static NSString * const kStatDiscovery = @"discovery";
|
||||
static NSString * const kStatDiscoveryButtonItemShow = @"DiscoveryButton_Item_Show";
|
||||
static NSString * const kStatDiscoveryButtonOpen = @"DiscoveryButton_Open";
|
||||
static NSString * const kStatDisk = @"disk";
|
||||
static NSString * const kStatDownload = @"download";
|
||||
static NSString * const kStatDownloadGroup = @"download_group";
|
||||
static NSString * const kStatDownloadMap = @"Download map";
|
||||
|
@ -125,7 +132,7 @@ static NSString * const kStatEditorProblemReport = @"Editor_Problem_report";
|
|||
static NSString * const kStatEditorRegRequest = @"Editor_Reg_request";
|
||||
static NSString * const kStatEditorSecondTimeShareClick = @"Editor_SecondTimeShare_click";
|
||||
static NSString * const kStatEditorSecondTimeShareShow = @"Editor_SecondTimeShare_show";
|
||||
static NSString * const kStatError = @"Error";
|
||||
static NSString * const kStatError = @"error";
|
||||
static NSString * const kStatErrorCode = @"error_code";
|
||||
static NSString * const kStatErrorData = @"err_data";
|
||||
static NSString * const kStatErrorMessage = @"error_message";
|
||||
|
@ -194,6 +201,7 @@ static NSString * const kStatNever = @"Never";
|
|||
static NSString * const kStatNext = @"Next";
|
||||
static NSString * const kStatNightMode = @"NightMode";
|
||||
static NSString * const kStatNo = @"No";
|
||||
static NSString * const kStatNoBackup = @"no_backup";
|
||||
static NSString * const kStatNoConnection = @"no_connection";
|
||||
static NSString * const kStatNoSpace = @"no_space";
|
||||
static NSString * const kStatNone = @"none";
|
||||
|
|
|
@ -6,12 +6,26 @@
|
|||
|
||||
#include "coding/internal/file_data.hpp"
|
||||
|
||||
#include <utility>
|
||||
|
||||
namespace
|
||||
{
|
||||
using Observer = id<MWMBookmarksObserver>;
|
||||
using Observers = NSHashTable<Observer>;
|
||||
|
||||
using TLoopBlock = void (^)(Observer observer);
|
||||
|
||||
NSString * const CloudErrorToString(Cloud::SynchronizationResult result)
|
||||
{
|
||||
switch (result)
|
||||
{
|
||||
case Cloud::SynchronizationResult::Success: return nil;
|
||||
case Cloud::SynchronizationResult::AuthError: return kStatAuth;
|
||||
case Cloud::SynchronizationResult::NetworkError: return kStatNetwork;
|
||||
case Cloud::SynchronizationResult::DiskError: return kStatDisk;
|
||||
case Cloud::SynchronizationResult::UserInterrupted: return nil;
|
||||
}
|
||||
}
|
||||
} // namespace
|
||||
|
||||
@interface MWMBookmarksManager ()
|
||||
|
@ -111,7 +125,57 @@ using TLoopBlock = void (^)(Observer observer);
|
|||
+ (void)loadBookmarks
|
||||
{
|
||||
[MWMBookmarksManager manager];
|
||||
GetFramework().LoadBookmarks();
|
||||
|
||||
auto & bm = GetFramework().GetBookmarkManager();
|
||||
|
||||
auto onSynchronizationStarted = [](Cloud::SynchronizationType type)
|
||||
{
|
||||
if (type == Cloud::SynchronizationType::Backup)
|
||||
[Statistics logEvent:kStatBookmarksSyncStarted];
|
||||
};
|
||||
|
||||
auto onSynchronizationFinished = [](Cloud::SynchronizationType type, Cloud::SynchronizationResult result,
|
||||
std::string const & errorStr)
|
||||
{
|
||||
if (result == Cloud::SynchronizationResult::Success)
|
||||
{
|
||||
[Statistics logEvent:type == Cloud::SynchronizationType::Backup ? kStatBookmarksSyncSuccess :
|
||||
kStatBookmarksRestoreProposalSuccess];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSString * const errorType = CloudErrorToString(result);
|
||||
if (errorType != nil)
|
||||
{
|
||||
[Statistics logEvent:type == Cloud::SynchronizationType::Backup ? kStatBookmarksSyncError :
|
||||
kStatBookmarksRestoreProposalError
|
||||
withParameters:@{kStatType: errorType, kStatError: @(errorStr.c_str())}];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
auto onRestoreRequested = [](Cloud::RestoringRequestResult result, uint64_t backupTimestampInMs)
|
||||
{
|
||||
if (result == Cloud::RestoringRequestResult::NoBackup)
|
||||
{
|
||||
[Statistics logEvent:kStatBookmarksRestoreProposalError
|
||||
withParameters:@{kStatType: kStatNoBackup, kStatError: @("")}];
|
||||
}
|
||||
else if (result == Cloud::RestoringRequestResult::NotEnoughDiskSpace)
|
||||
{
|
||||
[Statistics logEvent:kStatBookmarksRestoreProposalError
|
||||
withParameters:@{kStatType: kStatDisk, kStatError: @("Not enough disk space")}];
|
||||
}
|
||||
};
|
||||
|
||||
auto onRestoredFilesPrepared = []()
|
||||
{
|
||||
//TODO: On this callback we have to block cancel button in restore dialog if such button exists.
|
||||
};
|
||||
|
||||
bm.SetCloudHandlers(std::move(onSynchronizationStarted), std::move(onSynchronizationFinished),
|
||||
std::move(onRestoreRequested), std::move(onRestoredFilesPrepared));
|
||||
bm.LoadBookmarks();
|
||||
}
|
||||
|
||||
+ (MWMGroupIDCollection)groupsIdList
|
||||
|
|
Loading…
Add table
Reference in a new issue