[iOS] integrate with tips api

This commit is contained in:
Aleksey Belouosv 2018-08-30 17:51:30 +03:00 committed by Vlad Mihaylenko
parent a2c0932d9e
commit bc962b27d9
4 changed files with 37 additions and 20 deletions

View file

@ -68,6 +68,6 @@ class Info;
- (id<MWMBookingInfoHolder>)bookingInfoHolder;
- (void)showTutorial;
- (void)showTutorialIfNeeded;
@end

View file

@ -20,6 +20,7 @@
#include "storage/storage_helpers.hpp"
#include "map/place_page_info.hpp"
#include "metrics/eye.hpp"
namespace
{
@ -40,6 +41,7 @@ extern NSString * const kAlohalyticsTapEventKey;
@property(weak, nonatomic) MapViewController * ownerController;
@property(nonatomic) BOOL disableStandbyOnRouteFollowing;
@property(nonatomic) eye::Tip::Type tutorialType;
@end
@ -370,48 +372,50 @@ extern NSString * const kAlohalyticsTapEventKey;
#pragma mark - MWMBookingInfoHolder
- (id<MWMBookingInfoHolder>)bookingInfoHolder { return self.placePageManager; }
- (MWMTutorialViewController *)randomTutorial {
- (MWMTutorialViewController *)tutorialWithType:(eye::Tip::Type)tutorialType {
MWMTutorialViewController * tutorial;
auto tutorialType = (MWMTutorialType)(arc4random() % 4);
switch (tutorialType) {
case MWMTutorialTypeSearch:
tutorial = [MWMTutorialViewController tutorial:tutorialType
case eye::Tip::Type::BookingHotels:
tutorial = [MWMTutorialViewController tutorial:MWMTutorialTypeSearch
target:self.menuController.searchButton
delegate:self];
break;
case MWMTutorialTypeDiscovery:
tutorial = [MWMTutorialViewController tutorial:tutorialType
case eye::Tip::Type::DiscoverButton:
tutorial = [MWMTutorialViewController tutorial:MWMTutorialTypeDiscovery
target:self.menuController.discoveryButton
delegate:self];
break;
case MWMTutorialTypeBookmarks:
tutorial = [MWMTutorialViewController tutorial:tutorialType
case eye::Tip::Type::BookmarksCatalog:
tutorial = [MWMTutorialViewController tutorial:MWMTutorialTypeBookmarks
target:self.menuController.bookmarksButton
delegate:self];
break;
case MWMTutorialTypeSubway:
case eye::Tip::Type::MapsLayers:
tutorial = [MWMTutorialViewController tutorial:MWMTutorialTypeSubway
target:self.trafficButton.view
target:(UIControl *)self.trafficButton.view
delegate:self];
break;
case eye::Tip::Type::Count:
break;
}
return tutorial;
}
- (void)showTutorial {
// static bool show = true;
// if (!show) return;
- (void)showTutorialIfNeeded {
auto tutorialType = GetFramework().GetTipsApi().GetTip();
if (!tutorialType.is_initialized()) return;
auto tutorial = [self randomTutorial];
self.tutorialType = tutorialType.get();
auto tutorial = [self tutorialWithType:tutorialType.get()];
[self.ownerController addChildViewController:tutorial];
tutorial.view.frame = self.ownerController.view.bounds;
tutorial.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.ownerController.view addSubview:tutorial.view];
[tutorial didMoveToParentViewController:self.ownerController];
// show = false;
}
- (void)didPressCancel:(MWMTutorialViewController *)viewController {
eye::Eye::Event::TipShown(self.tutorialType, eye::Tip::Event::GotitClicked);
[viewController fadeOutWithCompletion:^{
[viewController willMoveToParentViewController:nil];
[viewController.view removeFromSuperview];
@ -420,6 +424,7 @@ extern NSString * const kAlohalyticsTapEventKey;
}
- (void)didPressTarget:(MWMTutorialViewController *)viewController {
eye::Eye::Event::TipShown(self.tutorialType, eye::Tip::Event::ActionClicked);
[viewController fadeOutWithCompletion:^{
[viewController willMoveToParentViewController:nil];
[viewController.view removeFromSuperview];

View file

@ -246,7 +246,6 @@ BOOL gIsFirstMyPositionMode = YES;
[self.welcomePageController show];
[self showViralAlertIfNeeded];
[self checkAuthorization];
[self.controlsManager showTutorial];
}
- (void)viewDidLoad
@ -256,6 +255,19 @@ BOOL gIsFirstMyPositionMode = YES;
[self processMyPositionStateModeEvent:MWMMyPositionModePendingPosition];
[MWMKeyboard addObserver:self];
self.welcomePageController = [MWMWelcomePageController controllerWithParent:self];
if (!self.welcomePageController)
[self.controlsManager showTutorialIfNeeded];
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(willBecomeActive)
name:UIApplicationWillEnterForegroundNotification
object:nil];
}
- (void)willBecomeActive
{
if (!self.welcomePageController)
[self.controlsManager showTutorialIfNeeded];
}
- (void)mwm_refreshUI

View file

@ -146,9 +146,9 @@ extension TutorialViewController {
private static func subwayTutorialBlur() -> TutorialViewController {
let result = TutorialViewController(nibName: "SubwayTutorialBlur", bundle: nil)
// result.customAction = {
// MapViewController.shared().openCatalog(animated: true)
// }
result.customAction = {
MWMTrafficManager.setTransitEnabled(true)
}
return result
}
}