diff --git a/WordPress/Classes/Extensions/UIImage+Assets.swift b/WordPress/Classes/Extensions/UIImage+Assets.swift deleted file mode 100644 index 33dcd15f3fbd..000000000000 --- a/WordPress/Classes/Extensions/UIImage+Assets.swift +++ /dev/null @@ -1,16 +0,0 @@ -import Foundation - -// MARK: - WordPress Named Assets -// -@objc -public extension UIImage { - /// Returns the Gravatar's "Unapproved" Image. - /// - static var gravatarUnapprovedImage: UIImage { - return UIImage(named: "gravatar-unapproved")! - } - - static var siteIconPlaceholder: UIImage { - return UIImage(named: "blavatar-default")! - } -} diff --git a/WordPress/Classes/Extensions/UIImage+Extensions.swift b/WordPress/Classes/Extensions/UIImage+Extensions.swift new file mode 100644 index 000000000000..520c4d337092 --- /dev/null +++ b/WordPress/Classes/Extensions/UIImage+Extensions.swift @@ -0,0 +1,45 @@ +import Foundation +import UIKit + +extension UIImage { + // Adapted from https://gist.github.com/mxcl/76f40027b1ef515e4e6b41292b54fe92 + func blur(radius: Float) -> UIImage? { + let ciContext = CIContext(options: nil) + + guard + let cgImage = self.cgImage, + let ciFilter = CIFilter(name: "CIGaussianBlur") + else { + return self + } + + let inputImage = CIImage(cgImage: cgImage) + + ciFilter.setValue(inputImage, forKey: kCIInputImageKey) + ciFilter.setValue(radius, forKey: "inputRadius") + + guard + let resultImage = ciFilter.value(forKey: kCIOutputImageKey) as? CIImage, + let outputImage = ciContext.createCGImage(resultImage, from: inputImage.extent) + else { + return self + } + + return UIImage(cgImage: outputImage) + } +} + +// MARK: - WordPress Named Assets +// +@objc +public extension UIImage { + /// Returns the Gravatar's "Unapproved" Image. + /// + static var gravatarUnapprovedImage: UIImage { + return UIImage(named: "gravatar-unapproved")! + } + + static var siteIconPlaceholder: UIImage { + return UIImage(named: "blavatar-default")! + } +} diff --git a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/Contents.json b/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/Contents.json index 447660493508..6ab904c73a1e 100644 --- a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/Contents.json +++ b/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/Contents.json @@ -1,19 +1,8 @@ { "images" : [ { - "filename" : "background-light_Normal.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "background-light_Normal@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "background-light_Normal@3x.png", - "idiom" : "universal", - "scale" : "3x" + "filename" : "jetpack-firstrun-background.svg", + "idiom" : "universal" } ], "info" : { diff --git a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal.png b/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal.png deleted file mode 100644 index f51cf2110f38..000000000000 Binary files a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal.png and /dev/null differ diff --git a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal@2x.png b/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal@2x.png deleted file mode 100644 index 85974dca1675..000000000000 Binary files a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal@2x.png and /dev/null differ diff --git a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal@3x.png b/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal@3x.png deleted file mode 100644 index d50dccae67dd..000000000000 Binary files a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/background-light_Normal@3x.png and /dev/null differ diff --git a/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/jetpack-firstrun-background.svg b/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/jetpack-firstrun-background.svg new file mode 100644 index 000000000000..1771e700f4c9 --- /dev/null +++ b/WordPress/Jetpack/AppImages.xcassets/Prologue/JPBackground.imageset/jetpack-firstrun-background.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WordPress/Jetpack/Classes/NUX/JetpackPrologueStyleGuide.swift b/WordPress/Jetpack/Classes/NUX/JetpackPrologueStyleGuide.swift index e413d6eb042a..95512e2fc0c6 100644 --- a/WordPress/Jetpack/Classes/NUX/JetpackPrologueStyleGuide.swift +++ b/WordPress/Jetpack/Classes/NUX/JetpackPrologueStyleGuide.swift @@ -29,7 +29,9 @@ struct JetpackPrologueStyleGuide { static let whiteWithAlpha07 = UIColor.white.withAlphaComponent(0.7) // Background image with gradient for the new Jetpack prologue screen - static let prologueBackgroundImage: UIImage? = UIImage(named: "JPBackground") + static var prologueBackgroundImage: UIImage? { + UIImage(named: "JPBackground")?.blur(radius: 155) + } // Blur effect for the prologue buttons static let prologueButtonsBlurEffect: UIBlurEffect? = UIBlurEffect(style: .regular) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index f758b5f2fbab..4ff13bdb7592 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -490,6 +490,7 @@ 0C391E642A312DB20040EA91 /* BlazeCampaignViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C391E632A312DB20040EA91 /* BlazeCampaignViewModelTests.swift */; }; 0C3C50422BA3A024002A37B4 /* PostNoticePublishSuccessView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C3C50412BA3A024002A37B4 /* PostNoticePublishSuccessView.swift */; }; 0C3C50432BA3A024002A37B4 /* PostNoticePublishSuccessView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C3C50412BA3A024002A37B4 /* PostNoticePublishSuccessView.swift */; }; + 0C4CE8492C2F418000B9EEAC /* AppImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 433840C622C2BA5B00CB13F8 /* AppImages.xcassets */; }; 0C5751102B011468001074E5 /* RemoteConfigDebugView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C57510F2B011468001074E5 /* RemoteConfigDebugView.swift */; }; 0C5751112B011468001074E5 /* RemoteConfigDebugView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C57510F2B011468001074E5 /* RemoteConfigDebugView.swift */; }; 0C63266F2A3D1305000B8C57 /* GutenbergFilesAppMediaSourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C63266E2A3D1305000B8C57 /* GutenbergFilesAppMediaSourceTests.swift */; }; @@ -2585,7 +2586,7 @@ 73E40D8921238BF50012ABA6 /* Tracks.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FA22821C99F6180016CA7C /* Tracks.swift */; }; 73E40D8C21238C520012ABA6 /* Tracks+ServiceExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73E40D8B21238C520012ABA6 /* Tracks+ServiceExtension.swift */; }; 73E4E376227A033A0007D752 /* PostChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73E4E375227A033A0007D752 /* PostChart.swift */; }; - 73E8E592212CD635000B26A5 /* UIImage+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Assets.swift */; }; + 73E8E592212CD635000B26A5 /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Extensions.swift */; }; 73EDC70A212E5D6700E5E3ED /* RemoteNotificationStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73EDC709212E5D6700E5E3ED /* RemoteNotificationStyles.swift */; }; 73F6DD42212BA54700CE447D /* RichNotificationContentFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73F6DD41212BA54700CE447D /* RichNotificationContentFormatter.swift */; }; 73F6DD44212C714F00CE447D /* RichNotificationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73F6DD43212C714F00CE447D /* RichNotificationViewModel.swift */; }; @@ -3041,7 +3042,6 @@ 8096217A28E55C9400940A5D /* WordPressShare.js in Resources */ = {isa = PBXBuildFile; fileRef = E1AFA8C21E8E34230004A323 /* WordPressShare.js */; }; 8096217B28E55C9400940A5D /* ShareExtension.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 74F5CD371FE0646F00764E7C /* ShareExtension.storyboard */; }; 8096217C28E55C9400940A5D /* NoResults.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 98B33C87202283860071E1E2 /* NoResults.storyboard */; }; - 8096217D28E55C9400940A5D /* AppImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 433840C622C2BA5B00CB13F8 /* AppImages.xcassets */; }; 8096217E28E55C9400940A5D /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; 8096218E28E55F8600940A5D /* JetpackDraftActionExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 8096218528E55C9400940A5D /* JetpackDraftActionExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 8096219328E5613700940A5D /* AppImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 433840C622C2BA5B00CB13F8 /* AppImages.xcassets */; }; @@ -3136,7 +3136,7 @@ 80F6D04128EE866A00953C1A /* Notifiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73BFDA89211D054800907245 /* Notifiable.swift */; }; 80F6D04228EE866A00953C1A /* NotificationTextContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EFF208920EADCB6009C4699 /* NotificationTextContent.swift */; }; 80F6D04328EE866A00953C1A /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690151F828FF000200E30 /* FeatureFlag.swift */; }; - 80F6D04428EE866A00953C1A /* UIImage+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Assets.swift */; }; + 80F6D04428EE866A00953C1A /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Extensions.swift */; }; 80F6D04528EE866A00953C1A /* BuildConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690141F828FF000200E30 /* BuildConfiguration.swift */; }; 80F6D04628EE866A00953C1A /* Tracks+ServiceExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73E40D8B21238C520012ABA6 /* Tracks+ServiceExtension.swift */; }; 80F6D04728EE866A00953C1A /* UNNotificationContent+RemoteNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73768B6A212B4E4F005136A1 /* UNNotificationContent+RemoteNotification.swift */; }; @@ -3885,7 +3885,7 @@ B5882C471D5297D1008E0EAA /* NotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5882C461D5297D1008E0EAA /* NotificationTests.swift */; }; B5899ADE1B419C560075A3D6 /* NotificationSettingDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5899ADD1B419C560075A3D6 /* NotificationSettingDetailsViewController.swift */; }; B5899AE41B422D990075A3D6 /* NotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5899AE31B422D990075A3D6 /* NotificationSettings.swift */; }; - B58C4ECA207C5E1A00E32E4D /* UIImage+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Assets.swift */; }; + B58C4ECA207C5E1A00E32E4D /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Extensions.swift */; }; B5969E2220A49E86005E9DF1 /* UIAlertController+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5969E2120A49E86005E9DF1 /* UIAlertController+Helpers.swift */; }; B59B18751CC7FB8D0055EB7C /* PersonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59B18741CC7FB8D0055EB7C /* PersonViewController.swift */; }; B59D40A61DB522DF003D2D79 /* NSAttributedStringTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59D40A51DB522DF003D2D79 /* NSAttributedStringTests.swift */; }; @@ -5855,7 +5855,7 @@ FABB238B2602FC2C00C8785C /* ReaderSpacerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E66EB6F81C1B7A76003DABC5 /* ReaderSpacerView.swift */; }; FABB238D2602FC2C00C8785C /* WPStyleGuide+SiteCreation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B560914B208A671E00399AE4 /* WPStyleGuide+SiteCreation.swift */; }; FABB238E2602FC2C00C8785C /* NotificationSettingsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5EFB1C11B31B98E007608A3 /* NotificationSettingsService.swift */; }; - FABB23922602FC2C00C8785C /* UIImage+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Assets.swift */; }; + FABB23922602FC2C00C8785C /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Extensions.swift */; }; FABB23942602FC2C00C8785C /* LoginEpilogueUserInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6158AC91ECDF518005FA441 /* LoginEpilogueUserInfo.swift */; }; FABB23962602FC2C00C8785C /* StatsTableFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 983DBBA922125DD300753988 /* StatsTableFooter.swift */; }; FABB23972602FC2C00C8785C /* BlogSyncFacade.m in Sources */ = {isa = PBXBuildFile; fileRef = 85D239A21AE5A5FC0074768D /* BlogSyncFacade.m */; }; @@ -10444,7 +10444,7 @@ B5882C461D5297D1008E0EAA /* NotificationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationTests.swift; sourceTree = ""; }; B5899ADD1B419C560075A3D6 /* NotificationSettingDetailsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSettingDetailsViewController.swift; sourceTree = ""; }; B5899AE31B422D990075A3D6 /* NotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = NotificationSettings.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - B58C4EC9207C5E1900E32E4D /* UIImage+Assets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Assets.swift"; sourceTree = ""; }; + B58C4EC9207C5E1900E32E4D /* UIImage+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Extensions.swift"; sourceTree = ""; }; B5969E2120A49E86005E9DF1 /* UIAlertController+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIAlertController+Helpers.swift"; sourceTree = ""; }; B59B18741CC7FB8D0055EB7C /* PersonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonViewController.swift; sourceTree = ""; }; B59D40A51DB522DF003D2D79 /* NSAttributedStringTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringTests.swift; sourceTree = ""; }; @@ -19493,7 +19493,7 @@ 1707CE411F3121750020B7FE /* UICollectionViewCell+Tint.swift */, E1823E6B1E42231C00C19F53 /* UIEdgeInsets.swift */, 0C3090212B12A5C90071C551 /* UIButton+Extensions.swift */, - B58C4EC9207C5E1900E32E4D /* UIImage+Assets.swift */, + B58C4EC9207C5E1900E32E4D /* UIImage+Extensions.swift */, FF70A3211FD5840500BC270D /* UIImage+Export.swift */, FADC40A72A8BC2A200C19997 /* UIImage+Gravatar.swift */, B5E94D141FE04815000E7C20 /* UIImageView+SiteIcon.swift */, @@ -24277,7 +24277,7 @@ 4A690C182BA794C800A8E0C5 /* PrivacyInfo.xcprivacy in Resources */, 8096217B28E55C9400940A5D /* ShareExtension.storyboard in Resources */, 8096217C28E55C9400940A5D /* NoResults.storyboard in Resources */, - 8096217D28E55C9400940A5D /* AppImages.xcassets in Resources */, + 0C4CE8492C2F418000B9EEAC /* AppImages.xcassets in Resources */, 8058730B28F7B70B00340C11 /* InfoPlist.strings in Resources */, 8096217E28E55C9400940A5D /* ColorPalette.xcassets in Resources */, ); @@ -26317,7 +26317,7 @@ C3FF78E828354A91008FA600 /* SiteDesignSectionLoader.swift in Sources */, 4A690C122BA3F4AD00A8E0C5 /* WPUserAgent.swift in Sources */, 803BB989295B80D300B3F6D6 /* RootViewPresenter+EditorNavigation.swift in Sources */, - B58C4ECA207C5E1A00E32E4D /* UIImage+Assets.swift in Sources */, + B58C4ECA207C5E1A00E32E4D /* UIImage+Extensions.swift in Sources */, E6158ACA1ECDF518005FA441 /* LoginEpilogueUserInfo.swift in Sources */, C3234F5427EBBACA004ADB29 /* SiteIntentVertical.swift in Sources */, 983DBBAB22125DD500753988 /* StatsTableFooter.swift in Sources */, @@ -27959,7 +27959,7 @@ 7335AC5E21220C630012EF2D /* Notifiable.swift in Sources */, 7335AC6321220E6E0012EF2D /* NotificationTextContent.swift in Sources */, 83A1B19E28AFE86A00E737AC /* FeatureFlag.swift in Sources */, - 73E8E592212CD635000B26A5 /* UIImage+Assets.swift in Sources */, + 73E8E592212CD635000B26A5 /* UIImage+Extensions.swift in Sources */, 83A1B1A328AFE89F00E737AC /* BuildConfiguration.swift in Sources */, 73E40D8C21238C520012ABA6 /* Tracks+ServiceExtension.swift in Sources */, 73768B6B212B4E4F005136A1 /* UNNotificationContent+RemoteNotification.swift in Sources */, @@ -28238,7 +28238,7 @@ 80F6D04128EE866A00953C1A /* Notifiable.swift in Sources */, 80F6D04228EE866A00953C1A /* NotificationTextContent.swift in Sources */, 80F6D04328EE866A00953C1A /* FeatureFlag.swift in Sources */, - 80F6D04428EE866A00953C1A /* UIImage+Assets.swift in Sources */, + 80F6D04428EE866A00953C1A /* UIImage+Extensions.swift in Sources */, 80F6D04528EE866A00953C1A /* BuildConfiguration.swift in Sources */, 80F6D04628EE866A00953C1A /* Tracks+ServiceExtension.swift in Sources */, 80F6D04728EE866A00953C1A /* UNNotificationContent+RemoteNotification.swift in Sources */, @@ -29776,7 +29776,7 @@ 019105872BE8BD6000CDFB16 /* StatsGhostSingleValueCell.swift in Sources */, 8091019429078CFE00FCB4EA /* JetpackFullscreenOverlayViewController.swift in Sources */, FA347AEE26EB6E300096604B /* GrowAudienceCell.swift in Sources */, - FABB23922602FC2C00C8785C /* UIImage+Assets.swift in Sources */, + FABB23922602FC2C00C8785C /* UIImage+Extensions.swift in Sources */, FABB23942602FC2C00C8785C /* LoginEpilogueUserInfo.swift in Sources */, 086F2483284F52DF00032F39 /* Tooltip.swift in Sources */, FA6C32BD2BF21B1C00BBDDB4 /* AppStoreInfoViewModel.swift in Sources */,