diff --git a/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm b/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm index 2835e98aeb..fca837e012 100644 --- a/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm +++ b/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm @@ -1,3 +1,4 @@ +#import #import "MWMMapDownloadDialog.h" #import "CLLocation+Mercator.h" #import "MWMAlertViewController.h" @@ -19,6 +20,8 @@ #include "platform/local_country_file_utils.hpp" +#include "partners_api/megafon_countries.hpp" + namespace { CGSize constexpr kInitialDialogSize = {200, 200}; @@ -37,6 +40,16 @@ BOOL canAutoDownload(storage::TCountryId const & countryId) return NO; return !platform::migrate::NeedMigrate(); } + +BOOL shouldShowBanner(std::string const & mwmId) +{ + return ads::HasMegafonDownloaderBanner(GetFramework().GetStorage(), mwmId, languages::GetCurrentNorm()); +} + +NSString * getBannerURL() +{ + return @(ads::GetMegafonDownloaderBannerUrl().c_str()); +} } // namespace using namespace storage; @@ -48,6 +61,9 @@ using namespace storage; @property(weak, nonatomic) IBOutlet NSLayoutConstraint * nodeTopOffset; @property(weak, nonatomic) IBOutlet UIButton * downloadButton; @property(weak, nonatomic) IBOutlet UIView * progressWrapper; +@property(weak, nonatomic) IBOutlet UIView * bannerView; +@property(weak, nonatomic) IBOutlet NSLayoutConstraint * bannerHiddenConstraint; +@property(weak, nonatomic) IBOutlet NSLayoutConstraint * bannerVisibleConstraint; @property(weak, nonatomic) MapViewController * controller; @@ -236,6 +252,7 @@ using namespace storage; - (void)showDownloadRequest { + [self hideBanner]; self.downloadButton.hidden = NO; self.progressWrapper.hidden = YES; [self addToSuperview]; @@ -243,6 +260,7 @@ using namespace storage; - (void)showDownloading:(CGFloat)progress { + [self showBannerIfNeeded]; self.nodeSize.textColor = [UIColor blackSecondaryText]; self.nodeSize.text = [NSString stringWithFormat:@"%@ %@%%", L(@"downloader_downloading"), @(static_cast(progress * 100))]; @@ -254,6 +272,7 @@ using namespace storage; - (void)showInQueue { + [self showBannerIfNeeded]; self.nodeSize.textColor = [UIColor blackSecondaryText]; self.nodeSize.text = L(@"downloader_queued"); self.downloadButton.hidden = YES; @@ -271,6 +290,23 @@ using namespace storage; [self configDialog]; } +- (void)showBannerIfNeeded +{ + if (shouldShowBanner(m_countryId)) + { + self.bannerHiddenConstraint.active = NO; + self.bannerVisibleConstraint.active = YES; + self.bannerView.hidden = NO; + } +} + +- (void)hideBanner +{ + self.bannerHiddenConstraint.active = YES; + self.bannerVisibleConstraint.active = NO; + self.bannerView.hidden = YES; +} + #pragma mark - MWMFrameworkStorageObserver - (void)processCountryEvent:(TCountryId const &)countryId @@ -317,6 +353,13 @@ using namespace storage; #pragma mark - Actions +- (IBAction)bannerAction +{ + NSURL * bannerURL = [NSURL URLWithString:getBannerURL()]; + SFSafariViewController * safari = [[SFSafariViewController alloc] initWithURL:bannerURL]; + [self.controller presentViewController:safari animated:YES completion:nil]; +} + - (IBAction)downloadAction { MapViewController * controller = self.controller; diff --git a/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.xib b/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.xib index 167e442dd0..e4e1d93b36 100644 --- a/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.xib +++ b/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.xib @@ -1,29 +1,23 @@ - + - + - - - HelveticaNeue - HelveticaNeue-Medium - - - + - - + + @@ -98,11 +155,15 @@ + + + + @@ -124,8 +185,17 @@ + + + + + + + + + @@ -133,7 +203,10 @@ - + + + + diff --git a/iphone/Maps/Images.xcassets/ic_brand_megafon_green.imageset/Contents.json b/iphone/Maps/Images.xcassets/ic_brand_megafon_green.imageset/Contents.json new file mode 100644 index 0000000000..ea6c4db3c3 --- /dev/null +++ b/iphone/Maps/Images.xcassets/ic_brand_megafon_green.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ic_brand_megafon_green.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/ic_brand_megafon_green.imageset/ic_brand_megafon_green.pdf b/iphone/Maps/Images.xcassets/ic_brand_megafon_green.imageset/ic_brand_megafon_green.pdf new file mode 100644 index 0000000000..dfd8ad3173 Binary files /dev/null and b/iphone/Maps/Images.xcassets/ic_brand_megafon_green.imageset/ic_brand_megafon_green.pdf differ