diff --git a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureDescriptionView.swift b/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureDescriptionView.swift deleted file mode 100644 index 73f0bf11c339..000000000000 --- a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureDescriptionView.swift +++ /dev/null @@ -1,62 +0,0 @@ -import UIKit - -class StatsRevampV2FeatureDescriptionView: UIView, NibLoadable { - - // MARK: - Properties - - @IBOutlet weak var descriptionLabel: UILabel! - @IBOutlet weak var noteTextView: UITextView! - @IBOutlet weak var cardImageView: UIImageView! - @IBOutlet weak var noteAccessibilityLabel: UILabel! - - // MARK: - Init - - open override func awakeFromNib() { - super.awakeFromNib() - configureView() - } -} - -private extension StatsRevampV2FeatureDescriptionView { - - func configureView() { - configureCard() - configureDescription() - configureNote() - } - - func configureCard() { - cardImageView.layer.cornerRadius = Style.cardCornerRadius - } - - func configureDescription() { - descriptionLabel.font = Style.labelFont - descriptionLabel.textColor = Style.textColor - descriptionLabel.text = Strings.featureDescription - } - - func configureNote() { - noteTextView.layer.borderWidth = Style.noteBorderWidth - noteTextView.layer.cornerRadius = Style.noteCornerRadius - noteTextView.layer.borderColor = Style.noteBorderColor - noteTextView.textContainerInset = Style.noteInsets - noteTextView.font = UIFont.preferredFont(forTextStyle: .caption1) - noteTextView.textColor = Style.textColor - noteTextView.text = Strings.noteText - } - - enum Strings { - static let featureDescription: String = NSLocalizedString("Insights help you understand how your content is performing and what’s resonating with your audience.", comment: "Description of updated Stats Insights displayed in the Feature Introduction view.") - static let noteText: String = NSLocalizedString("Learn more in My Site > Stats > Insights.", comment: "Note displayed in the Feature Introduction view for the updated Stats Insights feature.") - } - - enum Style { - static let labelFont = WPStyleGuide.fontForTextStyle(.body) - static let textColor: UIColor = .textSubtle - static let noteInsets = UIEdgeInsets(top: 12, left: 12, bottom: 12, right: 12) - static let noteCornerRadius: CGFloat = 6 - static let noteBorderWidth: CGFloat = 1 - static let noteBorderColor = UIColor.textQuaternary.cgColor - static let cardCornerRadius: CGFloat = 10 - } -} diff --git a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureDescriptionView.xib b/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureDescriptionView.xib deleted file mode 100644 index 8abc55ec947b..000000000000 --- a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureDescriptionView.xib +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureIntroduction.swift b/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureIntroduction.swift deleted file mode 100644 index 73b4a5b49fb2..000000000000 --- a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2FeatureIntroduction.swift +++ /dev/null @@ -1,96 +0,0 @@ -import UIKit - -class StatsRevampV2FeatureIntroduction: FeatureIntroductionViewController { - - var presenter: StatsRevampV2IntroductionPresenter? - - init() { - let featureDescriptionView = StatsRevampV2FeatureDescriptionView.loadFromNib() - featureDescriptionView.translatesAutoresizingMaskIntoConstraints = false - - let headerImage = UIImage.gridicon(.statsAlt, size: HeaderStyle.iconSize).withTintColor(.clear) - - super.init(headerTitle: HeaderStrings.title, headerSubtitle: "", headerImage: headerImage, featureDescriptionView: featureDescriptionView, primaryButtonTitle: ButtonStrings.showMe, secondaryButtonTitle: ButtonStrings.remindMe) - - featureIntroductionDelegate = self - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func viewDidLoad() { - super.viewDidLoad() - - // Add the gradient after the image has been added to the view so the gradient is the correct size. - addHeaderImageGradient() - - captureAnalyticsEvent(.statsInsightsAnnouncementShown) - } -} - -extension StatsRevampV2FeatureIntroduction: FeatureIntroductionDelegate { - func primaryActionSelected() { - presenter?.primaryButtonSelected() - - captureAnalyticsEvent(.statsInsightsAnnouncementConfirmed) - } - - func secondaryActionSelected() { - presenter?.secondaryButtonSelected() - - captureAnalyticsEvent(.statsInsightsAnnouncementDismissed) - } - - func closeButtonWasTapped() { - presenter?.dismissButtonSelected() - - captureAnalyticsEvent(.statsInsightsAnnouncementDismissed) - } -} - -private extension StatsRevampV2FeatureIntroduction { - - func addHeaderImageGradient() { - // Based on https://stackoverflow.com/a/54096829 - let gradient = CAGradientLayer() - - gradient.colors = [ - HeaderStyle.startGradientColor.cgColor, - HeaderStyle.endGradientColor.cgColor - ] - - // Create a gradient from top to bottom. - gradient.startPoint = CGPoint(x: 0.5, y: 0) - gradient.endPoint = CGPoint(x: 0.5, y: 1) - gradient.frame = headerImageView.bounds - - // Add a mask to the gradient so the colors only apply to the image (and not the imageView). - let mask = CALayer() - mask.contents = headerImageView.image?.cgImage - mask.frame = gradient.bounds - gradient.mask = mask - - // Add the gradient as a sublayer to the imageView's layer. - headerImageView.layer.addSublayer(gradient) - } - - private func captureAnalyticsEvent(_ event: WPAnalyticsEvent) { - WPAnalytics.track(event) - } - - enum ButtonStrings { - static let showMe = NSLocalizedString("Try it now", comment: "Button title to take user to the new Stats Insights screen.") - static let remindMe = NSLocalizedString("Remind me later", comment: "Button title dismiss the Stats Insights feature announcement screen.") - } - - enum HeaderStrings { - static let title = NSLocalizedString("Insights update", comment: "Title displayed on the feature introduction view that announces the updated Stats Insight screen.") - } - - enum HeaderStyle { - static let iconSize = CGSize(width: 40, height: 40) - static let startGradientColor: UIColor = .muriel(name: .blue, .shade5) - static let endGradientColor: UIColor = .muriel(name: .blue, .shade50) - } -} diff --git a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2IntroductionPresenter.swift b/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2IntroductionPresenter.swift deleted file mode 100644 index 45fc6ba0cf73..000000000000 --- a/WordPress/Classes/ViewRelated/Feature Introduction/Stats Revamp v2/StatsRevampV2IntroductionPresenter.swift +++ /dev/null @@ -1,78 +0,0 @@ -import Foundation -import UIKit - -/// Presents the StatsRevampV2IntroductionPresenter with an actionable button. -/// The screen also has a button to dismiss the screen itself. -/// - Primary button: take the user to the new Stats Insights screen - -class StatsRevampV2IntroductionPresenter: NSObject { - - weak var presentingViewController: UIViewController? = nil - - // MARK: - Properties - - static var hasPresented: Bool { - get { - UserPersistentStoreFactory.instance().bool(forKey: Constants.statsRevampV2FeatureIntroDisplayedKey) - } - set { - UserPersistentStoreFactory.instance().set(newValue, forKey: Constants.statsRevampV2FeatureIntroDisplayedKey) - } - } - - private lazy var navigationController: UINavigationController = { - let vc = StatsRevampV2FeatureIntroduction() - vc.presenter = self - return UINavigationController(rootViewController: vc) - }() - - // MARK: - Present Feature Introduction - - func present(from presentingViewController: UIViewController) { - StatsRevampV2IntroductionPresenter.hasPresented = true - self.presentingViewController = presentingViewController - - presentingViewController.present(navigationController, animated: true) - } - - // MARK: - Action Handling - - func primaryButtonSelected() { - presentingViewController?.dismiss(animated: true) - - guard let blog = RootViewCoordinator.sharedPresenter.currentOrLastBlog() else { - return - } - - RootViewCoordinator.sharedPresenter.mySitesCoordinator.showStats(for: blog, timePeriod: .insights) - } - - // "Remind Me" prompt - func secondaryButtonSelected() { - StatsRevampV2IntroductionPresenter.hasPresented = false - presentingViewController?.dismiss(animated: true) - } - - func dismissButtonSelected() { - presentingViewController?.dismiss(animated: true) - } - - struct Constants { - static let statsRevampV2FeatureIntroDisplayedKey = "stats_revamp_v2_feature_intro_displayed" - } -} - -extension WPTabBarController { - @objc public func showStatsRevampV2FeatureIntroduction() { - guard FeatureFlag.statsNewInsights.enabled, - let blog = currentOrLastBlog(), - blog.isAccessibleThroughWPCom(), - presentedViewController == nil, - selectedViewController?.presentedViewController == nil, - !StatsRevampV2IntroductionPresenter.hasPresented else { - return - } - - StatsRevampV2IntroductionPresenter().present(from: selectedViewController ?? self) - } -} diff --git a/WordPress/Classes/ViewRelated/System/WPTabBarController.m b/WordPress/Classes/ViewRelated/System/WPTabBarController.m index 7e420ec5b941..a79be8cb8c63 100644 --- a/WordPress/Classes/ViewRelated/System/WPTabBarController.m +++ b/WordPress/Classes/ViewRelated/System/WPTabBarController.m @@ -535,7 +535,6 @@ - (void)viewDidAppear:(BOOL)animated [self startWatchingQuickTours]; [self trackTabAccessOnViewDidAppear]; - [self showStatsRevampV2FeatureIntroduction]; } - (void)viewDidLayoutSubviews diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index a12ea7665144..f64ebadec9ac 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2433,12 +2433,6 @@ AE2F3129270B6DE200B2A9C2 /* NSMutableAttributedString+ApplyAttributesToQuotes.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2F3127270B6DE200B2A9C2 /* NSMutableAttributedString+ApplyAttributesToQuotes.swift */; }; AE3047AA270B66D300FE9266 /* Scanner+QuotedTextTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE3047A9270B66D300FE9266 /* Scanner+QuotedTextTests.swift */; }; AEE0828A2681C23C00DCF54B /* GutenbergRefactoredGalleryUploadProcessorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEE082892681C23C00DCF54B /* GutenbergRefactoredGalleryUploadProcessorTests.swift */; }; - B0088A91283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0088A90283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift */; }; - B0088A92283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0088A90283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift */; }; - B0088A94283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0088A93283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift */; }; - B0088A95283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0088A93283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift */; }; - B0088A97283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B0088A96283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib */; }; - B0088A98283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B0088A96283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib */; }; B030FE0A27EBF0BC000F6F5E /* SiteCreationIntentTracksEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B030FE0927EBF0BC000F6F5E /* SiteCreationIntentTracksEventTests.swift */; }; B03B9234250BC593000A40AF /* SuggestionService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B03B9233250BC593000A40AF /* SuggestionService.swift */; }; B03B9236250BC5FD000A40AF /* Suggestion.swift in Sources */ = {isa = PBXBuildFile; fileRef = B03B9235250BC5FD000A40AF /* Suggestion.swift */; }; @@ -2450,8 +2444,6 @@ B084E62027E3B7A4007BF7A8 /* SiteIntentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B089140C27E1255D00CF468B /* SiteIntentViewController.swift */; }; B089140D27E1255D00CF468B /* SiteIntentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B089140C27E1255D00CF468B /* SiteIntentViewController.swift */; }; B0960C8727D14BD400BC9717 /* SiteIntentStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0960C8627D14BD400BC9717 /* SiteIntentStep.swift */; }; - B0A3A6D9283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A3A6D8283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift */; }; - B0A3A6DA283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A3A6D8283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift */; }; B0A6DEBF2626335F00B5B8EF /* AztecPostViewController+MenuTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A6DEBE2626335F00B5B8EF /* AztecPostViewController+MenuTests.swift */; }; B0AC50DD251E96270039E022 /* ReaderCommentsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0AC50DC251E96270039E022 /* ReaderCommentsViewController.swift */; }; B0B68A9C252FA91E0001B28C /* UserSuggestion+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B68A9A252FA91E0001B28C /* UserSuggestion+CoreDataClass.swift */; }; @@ -7559,9 +7551,6 @@ AE2F3127270B6DE200B2A9C2 /* NSMutableAttributedString+ApplyAttributesToQuotes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSMutableAttributedString+ApplyAttributesToQuotes.swift"; sourceTree = ""; }; AE3047A9270B66D300FE9266 /* Scanner+QuotedTextTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Scanner+QuotedTextTests.swift"; sourceTree = ""; }; AEE082892681C23C00DCF54B /* GutenbergRefactoredGalleryUploadProcessorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergRefactoredGalleryUploadProcessorTests.swift; sourceTree = ""; }; - B0088A90283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsRevampV2FeatureIntroduction.swift; sourceTree = ""; }; - B0088A93283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsRevampV2FeatureDescriptionView.swift; sourceTree = ""; }; - B0088A96283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StatsRevampV2FeatureDescriptionView.xib; sourceTree = ""; }; B030FE0927EBF0BC000F6F5E /* SiteCreationIntentTracksEventTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteCreationIntentTracksEventTests.swift; sourceTree = ""; }; B03B9233250BC593000A40AF /* SuggestionService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuggestionService.swift; sourceTree = ""; }; B03B9235250BC5FD000A40AF /* Suggestion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Suggestion.swift; sourceTree = ""; }; @@ -7572,7 +7561,6 @@ B06378BF253F639D00FD45D2 /* SiteSuggestion+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SiteSuggestion+CoreDataProperties.swift"; sourceTree = ""; }; B089140C27E1255D00CF468B /* SiteIntentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteIntentViewController.swift; sourceTree = ""; }; B0960C8627D14BD400BC9717 /* SiteIntentStep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteIntentStep.swift; sourceTree = ""; }; - B0A3A6D8283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsRevampV2IntroductionPresenter.swift; sourceTree = ""; }; B0A6DEBE2626335F00B5B8EF /* AztecPostViewController+MenuTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "AztecPostViewController+MenuTests.swift"; path = "Aztec/AztecPostViewController+MenuTests.swift"; sourceTree = ""; }; B0AC50DC251E96270039E022 /* ReaderCommentsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderCommentsViewController.swift; sourceTree = ""; }; B0B68A9A252FA91E0001B28C /* UserSuggestion+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserSuggestion+CoreDataClass.swift"; sourceTree = ""; }; @@ -14136,10 +14124,6 @@ B0088A8F283D68B1008C9676 /* Stats Revamp v2 */ = { isa = PBXGroup; children = ( - B0088A90283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift */, - B0088A93283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift */, - B0088A96283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib */, - B0A3A6D8283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift */, ); path = "Stats Revamp v2"; sourceTree = ""; @@ -18321,7 +18305,6 @@ 4034FDEE2007D4F700153B87 /* ExpandableCell.xib in Resources */, 1761F18026209AEE000815EF /* jetpack-green-icon-app-76x76.png in Resources */, 98F9FB2E270282C200ADF552 /* CommentModerationBar.xib in Resources */, - B0088A97283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib in Resources */, E61507E42220A13B00213D33 /* richEmbedScript.js in Resources */, 17222D96261DDDF90047B163 /* pink-icon-app-60x60@3x.png in Resources */, 1761F18226209AEE000815EF /* jetpack-green-icon-app-60x60@3x.png in Resources */, @@ -18869,7 +18852,6 @@ FABB20B72602FC2C00C8785C /* PluginListCell.xib in Resources */, FABB20B82602FC2C00C8785C /* SiteStatsDashboard.storyboard in Resources */, FABB20B92602FC2C00C8785C /* PostStatsTableViewController.storyboard in Resources */, - B0088A98283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib in Resources */, F41E4EA228F20AB8001880C6 /* white-on-celadon-icon-app-76.png in Resources */, FABB20BA2602FC2C00C8785C /* ReaderSelectInterestsViewController.xib in Resources */, F465980A28E66A5B00D5F49A /* white-on-blue-icon-app-60@3x.png in Resources */, @@ -20238,7 +20220,6 @@ B5015C581D4FDBB300C9449E /* NotificationActionsService.swift in Sources */, 3F2ABE1A2770EF3E005D8916 /* Blog+VideoLimits.swift in Sources */, 8C6A22E425783D2000A79950 /* JetpackScanService.swift in Sources */, - B0A3A6D9283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift in Sources */, F5E63129243BC8190088229D /* FilterSheetView.swift in Sources */, A0E293F10E21027E00C6919C /* WPAddPostCategoryViewController.m in Sources */, 803DE821290642B4007D4E9C /* JetpackFeaturesRemovalCoordinator.swift in Sources */, @@ -20725,7 +20706,6 @@ 93F7214F271831820021A09F /* SiteStatsPinnedItemStore.swift in Sources */, 9895401126C1F39300EDEB5A /* EditCommentTableViewController.swift in Sources */, 8B7F51C924EED804008CF5B5 /* ReaderTracker.swift in Sources */, - B0088A94283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift in Sources */, E6F2788421BC1A4A008B4DB5 /* PlanFeature.swift in Sources */, 931215E4267F5003008C3B69 /* ReferrerDetailsTableViewController.swift in Sources */, 3F421DF524A3EC2B00CA9B9E /* Spotlightable.swift in Sources */, @@ -21690,7 +21670,6 @@ 08D345501CD7F50900358E8C /* MenusSelectionDetailView.m in Sources */, 8B0732F0242BF7E800E7FBD3 /* Blog+Title.swift in Sources */, C94C0B1B25DCFA0100F2F69B /* FilterableCategoriesViewController.swift in Sources */, - B0088A91283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift in Sources */, 591AA5021CEF9BF20074934F /* Post+CoreDataProperties.swift in Sources */, E19B17AE1E5C6944007517C6 /* BasePost.swift in Sources */, C71AF533281064DE00F9E99E /* OnboardingQuestionsCoordinator.swift in Sources */, @@ -23646,7 +23625,6 @@ FABB239E2602FC2C00C8785C /* TopCommentedPostStatsRecordValue+CoreDataProperties.swift in Sources */, FABB239F2602FC2C00C8785C /* FormattableContentFactory.swift in Sources */, FABB23A02602FC2C00C8785C /* PluginDirectoryViewController.swift in Sources */, - B0088A92283D6AE8008C9676 /* StatsRevampV2FeatureIntroduction.swift in Sources */, FABB23A12602FC2C00C8785C /* RoleService.swift in Sources */, FABB23A22602FC2C00C8785C /* AccountHelper.swift in Sources */, FABB23A32602FC2C00C8785C /* Sites.intentdefinition in Sources */, @@ -24098,7 +24076,6 @@ FABB25052602FC2C00C8785C /* StatsStackViewCell.swift in Sources */, C79C307E26EA970200E88514 /* ReferrerDetailsHeaderRow.swift in Sources */, 98AA9F2227EA890800B3A98C /* FeatureIntroductionViewController.swift in Sources */, - B0A3A6DA283D778E0019C530 /* StatsRevampV2IntroductionPresenter.swift in Sources */, FAFC064C27D22E4C002F0483 /* QuickStartTourStateView.swift in Sources */, C72A52CF2649B158009CA633 /* JetpackWindowManager.swift in Sources */, FABB25062602FC2C00C8785C /* ReaderTagsTableViewModel.swift in Sources */, @@ -24364,7 +24341,6 @@ FABB25CE2602FC2C00C8785C /* Interpolation.swift in Sources */, FE43DAB026DFAD1C00CFF595 /* CommentContentTableViewCell.swift in Sources */, FABB25CF2602FC2C00C8785C /* PostEditorAnalyticsSession.swift in Sources */, - B0088A95283D6F55008C9676 /* StatsRevampV2FeatureDescriptionView.swift in Sources */, FABB25D02602FC2C00C8785C /* SiteCreationWizardLauncher.swift in Sources */, FABB25D12602FC2C00C8785C /* ReaderSitesCardCell.swift in Sources */, 46F583B02624CE790010A723 /* BlockEditorSettingElement+CoreDataProperties.swift in Sources */,