From 77f2c39a6467c6b895b0667d2333ad5fe870b5f9 Mon Sep 17 00:00:00 2001 From: Alexander Boriskov Date: Wed, 18 Mar 2020 12:39:31 +0300 Subject: [PATCH] [iOS] Redesign of ads banners in PP and Search https://jira.mail.ru/browse/MAPSME-13357 --- iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m | 2 +- iphone/Maps/Core/Theme/AdsStyleSheet.swift | 26 ++++++- iphone/Maps/Core/Theme/Colors.swift | 8 +- iphone/Maps/UI/Ads/AdBannerView.swift | 10 ++- iphone/Maps/UI/Ads/AdBannerView.xib | 56 ++++++-------- .../PlacePagePreviewViewController.swift | 3 +- iphone/Maps/UI/PlacePage/PlacePage.storyboard | 76 +++++++++++-------- 7 files changed, 106 insertions(+), 75 deletions(-) diff --git a/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m b/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m index 22d3f3ac67..e8ff1dd00a 100644 --- a/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m +++ b/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m @@ -19,7 +19,7 @@ - (void)setAdView:(UIView *)view iconView:(UIImageView *)iconImageView actionButtons:(NSArray *)buttons { self.associatedView = (MPNativeView *)view; - ((MWMAdBanner *)view).mpNativeAd = self; + ((AdBannerView *)view).mpNativeAd = self; if (!self.hasAttachedToView) { id adapter = self.adAdapter; if ([adapter isKindOfClass:[FacebookNativeAdAdapter class]]) diff --git a/iphone/Maps/Core/Theme/AdsStyleSheet.swift b/iphone/Maps/Core/Theme/AdsStyleSheet.swift index c95cb95641..7fd35862af 100644 --- a/iphone/Maps/Core/Theme/AdsStyleSheet.swift +++ b/iphone/Maps/Core/Theme/AdsStyleSheet.swift @@ -6,6 +6,26 @@ class AdsStyleSheet: IStyleSheet { s.backgroundColor = colors.bannerBackground } + theme.add(styleName: "AdBannerTitle", forType: .light) { (s) -> (Void) in + s.font = fonts.bold12 + s.fontColor = colors.blackSecondaryText + } + + theme.add(styleName: "AdBannerTitle", forType: .dark) { (s) -> (Void) in + s.font = fonts.bold12 + s.fontColor = colors.primaryDark + } + + theme.add(styleName: "AdBannerSubtitle", forType: .light) { (s) -> (Void) in + s.font = fonts.regular12 + s.fontColor = colors.blackSecondaryText + } + + theme.add(styleName: "AdBannerSubtitle", forType: .dark) { (s) -> (Void) in + s.font = fonts.regular12 + s.fontColor = colors.pressBackground + } + theme.add(styleName: "AdBannerPrivacyImage") { (s) -> (Void) in s.cornerRadius = 4 s.clip = true @@ -14,13 +34,13 @@ class AdsStyleSheet: IStyleSheet { theme.add(styleName: "AdBannerButton") { (s) -> (Void) in s.font = fonts.medium14 s.backgroundColor = colors.bannerButtonBackground - s.fontColor = colors.blackSecondaryText + s.fontColor = UIColor.white s.clip = true - s.cornerRadius = 8 + s.cornerRadius = 10 } theme.add(styleName: "AdCallToActionButton", from: "AdBannerButton") { (s) -> (Void) in - s.cornerRadius = 10 + s.font = fonts.medium12 } theme.add(styleName: "RemoveAdsOptionsButton") { (s) -> (Void) in diff --git a/iphone/Maps/Core/Theme/Colors.swift b/iphone/Maps/Core/Theme/Colors.swift index c6053e2345..d9e4baa776 100644 --- a/iphone/Maps/Core/Theme/Colors.swift +++ b/iphone/Maps/Core/Theme/Colors.swift @@ -34,7 +34,7 @@ class DayColors: IColors { var blackOpaque = UIColor(0, 0, 0, alpha04) var toastBackground = UIColor(255, 255, 255, alpha87) var statusBarBackground = UIColor(255, 255, 255, alpha36) - var bannerBackground = UIColor(249, 251, 231, alpha100) + var bannerBackground = UIColor(242, 245, 212, alpha100) var border = UIColor(0, 0, 0, alpha04) var discountBackground = UIColor(240, 100, 60, alpha100) var discountText = UIColor(60, 64, 68, alpha100) @@ -49,7 +49,7 @@ class DayColors: IColors { var ratingYellow = UIColor(245, 176, 39, alpha100) var ratingLightGreen = UIColor(124, 179, 66, alpha100) var ratingGreen = UIColor(67, 160, 71, alpha100) - var bannerButtonBackground = UIColor(0, 0, 0, alpha12) + var bannerButtonBackground = UIColor(60, 140, 60, alpha70) var facebookButtonBackground = UIColor(59, 89, 152, alpha100); var facebookButtonBackgroundDisabled = UIColor(59, 89, 152, alpha70); var allPassSubscriptionTitle = UIColor(0, 0, 0, alpha100) @@ -100,7 +100,7 @@ class NightColors: IColors { var blackOpaque = UIColor(255, 255, 255, alpha04) var toastBackground = UIColor(0, 0, 0, alpha87) var statusBarBackground = UIColor(0, 0, 0, alpha32) - var bannerBackground = UIColor(71, 75, 79, alpha100) + var bannerBackground = UIColor(255, 255, 255, alpha54) var border = UIColor(255, 255, 255, alpha04) var discountBackground = UIColor(240, 100, 60, alpha100) var discountText = UIColor(60, 64, 68, alpha100) @@ -115,7 +115,7 @@ class NightColors: IColors { var ratingYellow = UIColor(245, 176, 39, alpha100) var ratingLightGreen = UIColor(124, 179, 66, alpha100) var ratingGreen = UIColor(67, 160, 71, alpha100) - var bannerButtonBackground = UIColor(255, 255, 255, alpha12) + var bannerButtonBackground = UIColor(89, 115, 128, alpha70) var facebookButtonBackground = UIColor(59, 89, 152, alpha100); var facebookButtonBackgroundDisabled = UIColor(59, 89, 152, alpha70); var allPassSubscriptionTitle = UIColor(0, 0, 0, alpha100) diff --git a/iphone/Maps/UI/Ads/AdBannerView.swift b/iphone/Maps/UI/Ads/AdBannerView.swift index 474b17f8f2..a40a62f63b 100644 --- a/iphone/Maps/UI/Ads/AdBannerView.swift +++ b/iphone/Maps/UI/Ads/AdBannerView.swift @@ -36,7 +36,7 @@ private func attributedTitle(title: String, indent: CGFloat) -> NSAttributedStri return NSAttributedString(string: title, attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.font: UIFont.bold12(), - NSAttributedString.Key.foregroundColor: UIColor.blackSecondaryText() + NSAttributedString.Key.foregroundColor: UIColor.isNightMode() ? UIColor.pressBackground() : UIColor.blackSecondaryText() ]) } @@ -232,7 +232,6 @@ class AdBannerView: UIView { adCallToActionButtons.forEach { $0.setTitle(ad.ctaText, for: .normal) } } mpNativeAd?.setAdView(self, iconView: adIconImageView, actionButtons: adCallToActionButtons) - adTitleLabel.attributedText = attributedTitle(title: ad.title, indent: adPrivacyImage.width + DAAImageWidth.constant) adBodyLabel.text = ad.text @@ -260,4 +259,11 @@ class AdBannerView: UIView { super.willMove(toSuperview: newSuperview) mpNativeAd?.nativeViewWillMove(toSuperview: newSuperview) } + + + override func applyTheme() { + super.applyTheme() + adTitleLabel.attributedText = attributedTitle(title: adTitleLabel.attributedText?.string ?? "", + indent: adPrivacyImage.width + DAAImageWidth.constant) + } } diff --git a/iphone/Maps/UI/Ads/AdBannerView.xib b/iphone/Maps/UI/Ads/AdBannerView.xib index e1d1335bb4..22fde1cde9 100644 --- a/iphone/Maps/UI/Ads/AdBannerView.xib +++ b/iphone/Maps/UI/Ads/AdBannerView.xib @@ -10,22 +10,22 @@ - - + + - + - + - + @@ -35,7 +35,7 @@ - + @@ -48,9 +48,6 @@ - - - @@ -69,28 +66,28 @@ - + + @@ -452,8 +463,8 @@ - - + + @@ -475,6 +486,7 @@ + @@ -3065,13 +3077,13 @@