Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladiMihaylenko <vxmihaylenko@gmail.com>2016-12-14 11:39:07 +0300
committerИлья Гречухин <i.grechuhin@gmail.com>2016-12-14 11:45:51 +0300
commit4e90440a94753a0d8e48c31095e91934814a5ed1 (patch)
tree0b1bea3cfe22fc180110859691a4dd5e461a2571 /iphone/Maps
parent11d277a24f0abd27365da09d892f70d113168add (diff)
[ios] Statistics for banners.
Diffstat (limited to 'iphone/Maps')
-rw-r--r--iphone/Maps/Classes/MWMPPPreviewBannerCell.h7
-rw-r--r--iphone/Maps/Classes/MWMPPPreviewBannerCell.mm33
-rw-r--r--iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm9
-rw-r--r--iphone/Maps/Classes/MWMPlacePageData.h1
-rw-r--r--iphone/Maps/Classes/MWMPlacePageData.mm18
-rw-r--r--iphone/Maps/Statistics/StatisticsStrings.h6
6 files changed, 46 insertions, 28 deletions
diff --git a/iphone/Maps/Classes/MWMPPPreviewBannerCell.h b/iphone/Maps/Classes/MWMPPPreviewBannerCell.h
index f39d936eda..0516bd3ef5 100644
--- a/iphone/Maps/Classes/MWMPPPreviewBannerCell.h
+++ b/iphone/Maps/Classes/MWMPPPreviewBannerCell.h
@@ -1,9 +1,8 @@
+@class MWMPlacePageData;
+
@interface MWMPPPreviewBannerCell : UITableViewCell
-- (void)configWithTitle:(NSString *)title
- content:(NSString *)content
- adURL:(NSURL *)adURL
- imageURL:(NSURL *)imageURL;
+- (void)configWithData:(MWMPlacePageData *)data;
- (void)configImageInOpenState;
- (void)configImageInPreviewState;
diff --git a/iphone/Maps/Classes/MWMPPPreviewBannerCell.mm b/iphone/Maps/Classes/MWMPPPreviewBannerCell.mm
index c0b1fdf80c..fd6fb43c18 100644
--- a/iphone/Maps/Classes/MWMPPPreviewBannerCell.mm
+++ b/iphone/Maps/Classes/MWMPPPreviewBannerCell.mm
@@ -1,7 +1,9 @@
#import "MWMPPPreviewBannerCell.h"
#import "Common.h"
#import "MapViewController.h"
+#import "MWMPlacePageData.h"
#import "MWMPlacePageLayoutImpl.h"
+#import "Statistics.h"
#import "UIColor+MapsMeColor.h"
#import "UIFont+MapsMeFonts.h"
@@ -23,7 +25,7 @@ CGFloat const kLineSpacing = 5;
@property(weak, nonatomic) IBOutlet UIImageView * icon;
@property(weak, nonatomic) IBOutlet UILabel * body;
@property(weak, nonatomic) IBOutlet UIButton * button;
-@property(nonatomic) NSURL * adURL;
+@property(weak, nonatomic) MWMPlacePageData * data;
@property(weak, nonatomic) IBOutlet NSLayoutConstraint * imageWidth;
@property(weak, nonatomic) IBOutlet NSLayoutConstraint * imageHeight;
@@ -34,23 +36,20 @@ CGFloat const kLineSpacing = 5;
@implementation MWMPPPreviewBannerCell
-- (void)configWithTitle:(NSString *)title
- content:(NSString *)content
- adURL:(NSURL *)adURL
- imageURL:(NSURL *)imageURL
+- (void)configWithData:(MWMPlacePageData *)data
{
- NSAssert(title.length, @"Title must be not empty!");
- self.adURL = adURL;
- auto full = [[NSMutableAttributedString alloc] initWithString:title attributes:
- @{NSForegroundColorAttributeName : [UIColor blackPrimaryText],
- NSFontAttributeName : [UIFont medium16]}];
+ self.data = data;
+ auto full = [[NSMutableAttributedString alloc] initWithString:data.bannerTitle attributes:
+ @{NSForegroundColorAttributeName : [UIColor blackPrimaryText],
+ NSFontAttributeName : [UIFont medium16]}];
[full appendAttributedString:[[NSAttributedString alloc] initWithString:@"\n"]];
+ auto content = data.bannerContent;
if (content.length)
{
auto attrContent = [[NSAttributedString alloc] initWithString:content attributes:
- @{NSForegroundColorAttributeName : [UIColor blackSecondaryText],
- NSFontAttributeName : [UIFont regular13]}];
+ @{NSForegroundColorAttributeName : [UIColor blackSecondaryText],
+ NSFontAttributeName : [UIFont regular13]}];
[full appendAttributedString:attrContent];
}
@@ -67,6 +66,7 @@ CGFloat const kLineSpacing = 5;
self.bodyLeftOffset.constant = kDefaultBodyLeftOffset;
self.button.hidden = !IPAD;
+ auto imageURL = data.bannerIconURL;
if (!imageURL)
return;
@@ -124,8 +124,13 @@ CGFloat const kLineSpacing = 5;
- (IBAction)tap
{
- if (self.adURL)
- [[MapViewController controller] openUrl:self.adURL];
+ MWMPlacePageData * data = self.data;
+ [Statistics logEvent:kStatPlacePageBannerClick withParameters:@{kStatTags : data.statisticsTags,
+ kStatBanner : data.bannerId,
+ kStatState : @1}];
+ auto bannerURL = data.bannerURL;
+ if (bannerURL)
+ [[MapViewController controller] openUrl:bannerURL];
}
@end
diff --git a/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm b/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm
index c32eb7b2a3..ceca24827f 100644
--- a/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm
+++ b/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm
@@ -4,6 +4,7 @@
#import "MWMPlacePageData.h"
#import "MWMPPPreviewBannerCell.h"
#import "MWMTableViewCell.h"
+#import "Statistics.h"
#import "UIColor+MapsmeColor.h"
#include "std/array.hpp"
@@ -228,11 +229,11 @@ array<NSString *, 8> const kPreviewCells = {{@"_MWMPPPTitle", @"_MWMPPPExternalT
case PreviewRows::Space:
return c;
case PreviewRows::Banner:
+ [Statistics logEvent:kStatPlacePageBannerShow withParameters:@{kStatTags : data.statisticsTags,
+ kStatBanner : data.bannerId,
+ kStatState : IPAD ? @1 : @0}];
auto bannerCell = static_cast<MWMPPPreviewBannerCell *>(c);
- [bannerCell configWithTitle:data.bannerTitle
- content:data.bannerContent
- adURL:data.bannerURL
- imageURL:data.bannerIconURL];
+ [bannerCell configWithData:data];
self.cachedBannerCell = bannerCell;
return bannerCell;
}
diff --git a/iphone/Maps/Classes/MWMPlacePageData.h b/iphone/Maps/Classes/MWMPlacePageData.h
index 2995ec0d82..3708a38a13 100644
--- a/iphone/Maps/Classes/MWMPlacePageData.h
+++ b/iphone/Maps/Classes/MWMPlacePageData.h
@@ -85,6 +85,7 @@ enum class OpeningHours
- (NSString *)bannerContent;
- (NSURL *)bannerIconURL;
- (NSURL *)bannerURL;
+- (NSString *)bannerId;
- (void)assignOnlinePriceToLabel:(UILabel *)label;
// API
diff --git a/iphone/Maps/Classes/MWMPlacePageData.mm b/iphone/Maps/Classes/MWMPlacePageData.mm
index 00af84d4b0..d3dab4ce17 100644
--- a/iphone/Maps/Classes/MWMPlacePageData.mm
+++ b/iphone/Maps/Classes/MWMPlacePageData.mm
@@ -227,22 +227,32 @@ using namespace place_page;
- (NSString *)bannerTitle
{
- return m_info.HasBanner() ? L(@(m_info.GetBannerTitleId().c_str())) : nil;
+ NSAssert(m_info.HasBanner(), @"Incorrect banner state!");
+ return L(@(m_info.GetBannerTitleId().c_str()));
}
- (NSString *)bannerContent
{
- return m_info.HasBanner() ? L(@(m_info.GetBannerMessageId().c_str())) : nil;
+ NSAssert(m_info.HasBanner(), @"Incorrect banner state!");
+ return L(@(m_info.GetBannerMessageId().c_str()));
}
- (NSURL *)bannerIconURL
{
- return m_info.HasBanner() ? [NSURL URLWithString:@(m_info.GetBannerIconId().c_str())] : nil;
+ NSAssert(m_info.HasBanner(), @"Incorrect banner state!");
+ return [NSURL URLWithString:@(m_info.GetBannerIconId().c_str())];
}
- (NSURL *)bannerURL
{
- return m_info.HasBanner() ? [NSURL URLWithString:@(m_info.GetBannerUrl().c_str())] : nil;
+ NSAssert(m_info.HasBanner(), @"Incorrect banner state!");
+ return [NSURL URLWithString:@(m_info.GetBannerUrl().c_str())];
+}
+
+- (NSString *)bannerId
+{
+ NSAssert(m_info.HasBanner(), @"Incorrect banner state!");
+ return @(m_info.GetBannerId().c_str());
}
- (void)assignOnlinePriceToLabel:(UILabel *)label
diff --git a/iphone/Maps/Statistics/StatisticsStrings.h b/iphone/Maps/Statistics/StatisticsStrings.h
index 94215cfde9..f5314d5748 100644
--- a/iphone/Maps/Statistics/StatisticsStrings.h
+++ b/iphone/Maps/Statistics/StatisticsStrings.h
@@ -18,8 +18,7 @@ static NSString * const kStatAuthorization = @"Authorization";
static NSString * const kStatAutoDownload = @"Auto download";
static NSString * const kStatAutoZoom = @"Autozoom";
static NSString * const kStatBack = @"Back";
-static NSString * const kStatBannerDescription = @"Banner description";
-static NSString * const kStatBannerTitle = @"Banner title";
+static NSString * const kStatBanner = @"banner";
static NSString * const kStatBicycle = @"Bicycle";
static NSString * const kStatBooking = @"Booking.com";
static NSString * const kStatBookmarks = @"Bookmarks";
@@ -153,6 +152,8 @@ static NSString * const kStatOther = @"Other";
static NSString * const kStatOut = @"Out";
static NSString * const kStatPedestrian = @"Pedestrian";
static NSString * const kStatPlacePage = @"Place page";
+static NSString * const kStatPlacePageBannerClick = @"Placepage_Banner_click";
+static NSString * const kStatPlacePageBannerShow = @"Placepage_Banner_show";
static NSString * const kPlacePageHotelBook = @"Placepage_Hotel_book";
static NSString * const kPlacePageHotelDetails = @"Placepage_Hotel_details";
static NSString * const kStatPlacePageNonBuilding = @"placepage_nonbuilding";
@@ -195,6 +196,7 @@ static NSString * const kStatSignup = @"Signup";
static NSString * const kStatSocial = @"Social";
static NSString * const kStatSource = @"Source";
static NSString * const kStatStart = @"Start";
+static NSString * const kStatState = @"state";
static NSString * const kStatSwapRoutingPoints = @"Swap routing points";
static NSString * const kStatTTS = @"TTS";
static NSString * const kStatTTSSettings = @"TTS settings";