[iOS] Statistic for the place page state changes

This commit is contained in:
Zoia Pribytkova 2019-08-20 18:02:48 +03:00 committed by Aleksandr Zatsepin
parent 41f662cfe0
commit c6c380cfba
4 changed files with 30 additions and 6 deletions

View file

@ -224,6 +224,8 @@ static NSString * const kStatKML = @"KML";
static NSString * const kStatKilometers = @"Kilometers";
static NSString * const kStatLandscape = @"Landscape";
static NSString * const kStatLanguage = @"Language";
static NSString * const kStatLat = @"lat";
static NSString * const kStatLon = @"lon";
static NSString * const kStatListSettings = @"list_settings";
static NSString * const kStatLocals = @"Locals";
static NSString * const kStatLocalsProvider = @"Locals.Maps.Me";
@ -299,6 +301,7 @@ static NSString * const kStatPlacePageBannerBlank = @"Placepage_Banner_blank";
static NSString * const kStatPlacePageBannerClick = @"Placepage_Banner_click";
static NSString * const kStatPlacePageBannerError = @"Placepage_Banner_error";
static NSString * const kStatPlacePageBannerShow = @"Placepage_Banner_show";
static NSString * const kStatPlacePageChangeState = @"Placepage_change_state";
static NSString * const kStatPlacePageDescriptionLinkClick = @"Placepage_Description_Outbound_click";
static NSString * const kStatPlacePageDescriptionMore = @"Placepage_Description_more";
static NSString * const kStatPlacePageDescriptionViewAll = @"Placepage_Description_View_all";
@ -455,6 +458,7 @@ static NSString * const kStatToolbarMenuClick = @"Toolbar_Menu_click";
static NSString * const kStatTracks = @"tracks";
static NSString * const kStatTraffic = @"Traffic";
static NSString * const kStatType = @"type";
static NSString * const kStatTypes = @"types";
static NSString * const kStatUGCReviewAuthDeclined = @"UGC_Auth_declined";
static NSString * const kStatUGCReviewAuthError = @"UGC_Auth_error";
static NSString * const kStatUGCReviewAuthExternalRequestSuccess =

View file

@ -287,6 +287,19 @@ void RegisterEventIfPossible(eye::MapObject::Event::Type const type, place_page:
[Statistics logEvent:kStatPlacepageSponsoredOpen withParameters:parameters];
}
- (void)logStateChangeEventWithValue:(NSNumber *)value {
MWMPlacePageData * data = self.data;
if (data == nil) return;
NSString *types = data.statisticsTags;
NSNumber *lat = [NSNumber numberWithFloat:data.latLon.m_lat];
NSNumber *lon = [NSNumber numberWithFloat:data.latLon.m_lon];
[Statistics logEvent:kStatPlacePageChangeState withParameters:@{kStatTypes: types,
kStatLat: lat,
kStatLon: lon,
kStatValue: value}];
}
#pragma mark - MWMLocationObserver
- (void)onHeadingUpdate:(location::CompassInfo const &)info

View file

@ -13,6 +13,8 @@ enum class NodeStatus;
- (void)onExpanded;
- (void)logStateChangeEventWithValue:(NSNumber *)value;
@end
@protocol MWMPlacePageLayoutDataSource<NSObject>

View file

@ -17,7 +17,8 @@ CGFloat const kMinOffset = 1;
typedef NS_ENUM(NSUInteger, MWMOffsetState) {
MWMOffsetStatePreview,
MWMOffsetStatePreviewPlus,
MWMOffsetStateOpen
MWMOffsetStateOpen,
MWMOffsetStateFullScreen
};
typedef NS_ENUM(NSUInteger, MWMScrollDirection) {
@ -109,7 +110,7 @@ typedef NS_ENUM(NSUInteger, MWMScrollDirection) {
if (delegate == nil) { return; }
[delegate onPlacePageTopBoundChanged:self.scrollView.contentOffset.y];
CGFloat previewOffset = [delegate isPreviewPlus] ? self.previewPlusContentOffset : self.previewContentOffset;
[self setAnimatedContentOffset:self.state == MWMOffsetStateOpen ? self.topContentOffset : previewOffset];
[self setAnimatedContentOffset:(self.state == MWMOffsetStateOpen || self.state == MWMOffsetStateFullScreen) ? self.topContentOffset : previewOffset];
}
- (void)updateContentLayout {
@ -236,7 +237,7 @@ typedef NS_ENUM(NSUInteger, MWMScrollDirection) {
} else if (actualOffset < previewOffset) {
(*targetContentOffset).y = 0;
} else {
self.state = MWMOffsetStateOpen;
self.state = MWMOffsetStateFullScreen;
}
}
@ -281,13 +282,17 @@ typedef NS_ENUM(NSUInteger, MWMScrollDirection) {
});
}
} else {
self.state = MWMOffsetStateOpen;
self.state = MWMOffsetStateFullScreen;
}
}
- (void)setState:(MWMOffsetState)state {
if (_state != state) {
NSNumber *value = [NSNumber numberWithUnsignedInteger:state];
[self.delegate logStateChangeEventWithValue:value];
}
_state = state;
BOOL isTop = state == MWMOffsetStateOpen;
BOOL isTop = (state == MWMOffsetStateOpen || self.state == MWMOffsetStateFullScreen);
self.placePageView.anchorImage.transform = isTop ? CGAffineTransformMakeRotation(M_PI)
: CGAffineTransformIdentity;
[self.previewLayoutHelper layoutInOpenState:isTop];
@ -307,7 +312,7 @@ typedef NS_ENUM(NSUInteger, MWMScrollDirection) {
}
CGFloat offset = 0;
if (self.state == MWMOffsetStateOpen) {
if (self.state == MWMOffsetStateOpen || self.state == MWMOffsetStateFullScreen) {
BOOL isPreviewPlus = [self.delegate isPreviewPlus];
self.state = isPreviewPlus ? MWMOffsetStatePreviewPlus : MWMOffsetStatePreview;
offset = isPreviewPlus ? self.previewPlusContentOffset : self.previewContentOffset;