diff --git a/Podfile b/Podfile index f67dc87eadb9..143616fb1a3f 100644 --- a/Podfile +++ b/Podfile @@ -305,42 +305,6 @@ target 'JetpackDraftActionExtension' do wordpress_ui end -## Today Widget -## ============ -## -target 'WordPressTodayWidget' do - project 'WordPress/WordPress.xcodeproj' - - shared_with_all_pods - shared_with_networking_pods - - wordpress_ui -end - -## All Time Widget -## ============ -## -target 'WordPressAllTimeWidget' do - project 'WordPress/WordPress.xcodeproj' - - shared_with_all_pods - shared_with_networking_pods - - wordpress_ui -end - -## This Week Widget -## ============ -## -target 'WordPressThisWeekWidget' do - project 'WordPress/WordPress.xcodeproj' - - shared_with_all_pods - shared_with_networking_pods - - wordpress_ui -end - ## Home Screen Widgets ## ============ ## diff --git a/Podfile.lock b/Podfile.lock index 004733dab4c0..b2f4cf58d784 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -880,6 +880,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: ae5b4b813d216d3bf0a148773267fff14bd51d37 -PODFILE CHECKSUM: 6e0bd6cd6b3071e696c6a4d965d8c3a3b625b149 +PODFILE CHECKSUM: 75e51232bd03e0ad254ba6ef2a301bf766bda30a COCOAPODS: 1.11.2 diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index deae949c22e5..e688dd22b35e 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -4,6 +4,7 @@ * [*] [internal] Database access change: the 'new Core Data context structure' feature flag is turned on by default. [#19433] * [***] [Jetpack-only] Widgets are now on Jetpack. Find Today, This Week, and All Time Widgets to display your Stats on your home screen. [#19479] * [*] Block Editor: Fixed iOS Voice Control support within Image block captions. [https://github.com/WordPress/gutenberg/pull/44850] +* [***] Dropped support for iOS 13. Now supporting iOS 14.0 and above. [#19509] 21.0 ----- diff --git a/WordPress/Classes/Utility/LocationService.m b/WordPress/Classes/Utility/LocationService.m index d4726753ae86..a1624197bbea 100644 --- a/WordPress/Classes/Utility/LocationService.m +++ b/WordPress/Classes/Utility/LocationService.m @@ -58,7 +58,7 @@ - (BOOL)locationServicesDisabled - (BOOL)locationServicesDenied { - CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; + CLAuthorizationStatus status = self.locationManager.authorizationStatus; if (status == kCLAuthorizationStatusRestricted || status == kCLAuthorizationStatusDenied) { return YES; } @@ -201,8 +201,9 @@ - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray [self getAddressForLocation:location]; } -- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status +- (void)locationManagerDidChangeAuthorization:(CLLocationManager *)manager { + CLAuthorizationStatus status = manager.authorizationStatus; if (status == kCLAuthorizationStatusRestricted || status == kCLAuthorizationStatusDenied) { [self serviceFailed:[NSError errorWithDomain:LocationServiceErrorDomain code:LocationServiceErrorPermissionDenied userInfo:nil]]; } diff --git a/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingCalendarViewController.swift b/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingCalendarViewController.swift deleted file mode 100644 index 69ccb16c5c04..000000000000 --- a/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingCalendarViewController.swift +++ /dev/null @@ -1,253 +0,0 @@ -import Foundation -import Gridicons - -// MARK: - Date Picker -@available(iOS, deprecated: 14.0, message: "Use SchedulingDatePickerViewController, based on UIDatePicker.inline") -class SchedulingCalendarViewController: UIViewController, CalendarSheet, DateCoordinatorHandler, SchedulingViewControllerProtocol { - - var coordinator: DateCoordinator? = nil - - let chosenValueRow = ChosenValueRow(frame: .zero) - - lazy var calendarMonthView: CalendarMonthView = { - var calendar = Calendar.current - if let timeZone = coordinator?.timeZone { - calendar.timeZone = timeZone - } - let calendarMonthView = CalendarMonthView(calendar: calendar) - calendarMonthView.translatesAutoresizingMaskIntoConstraints = false - - let selectedDate = coordinator?.date ?? Date() - calendarMonthView.selectedDate = selectedDate - calendarMonthView.updated = { [weak self] date in - var newDate = date - - // Since the date from the calendar will not include hours and minutes, replace with the original date (either the current, or previously entered date) - var calendar = Calendar.current - if let timeZone = self?.coordinator?.timeZone { - calendar.timeZone = timeZone - } - let selectedComponents = calendar.dateComponents([.hour, .minute], from: selectedDate) - newDate = calendar.date(bySettingHour: selectedComponents.hour ?? 0, minute: selectedComponents.minute ?? 0, second: 0, of: newDate) ?? newDate - - self?.coordinator?.date = newDate - self?.chosenValueRow.detailLabel.text = self?.coordinator?.dateFormatter.string(from: date) - } - - return calendarMonthView - }() - - private lazy var closeButton: UIBarButtonItem = { - let item = UIBarButtonItem(image: .gridicon(.cross), - style: .plain, - target: self, - action: #selector(closeButtonPressed)) - item.accessibilityLabel = NSLocalizedString("Close", comment: "Accessibility label for the date picker's close button.") - return item - }() - private lazy var publishButton = UIBarButtonItem(title: NSLocalizedString("Publish immediately", comment: "Immediately publish button title"), style: .plain, target: self, action: #selector(SchedulingCalendarViewController.publishImmediately)) - - override func viewDidLoad() { - super.viewDidLoad() - - chosenValueRow.titleLabel.text = NSLocalizedString("Choose a date", comment: "Label for Publish date picker") - - let nextButton = UIBarButtonItem(title: NSLocalizedString("Next", comment: "Next screen button title"), style: .plain, target: self, action: #selector(nextButtonPressed)) - navigationItem.setRightBarButton(nextButton, animated: false) - - setup(topView: chosenValueRow, pickerView: calendarMonthView) - - calendarMonthView.setContentCompressionResistancePriority(.defaultHigh, for: .vertical) - calendarMonthView.setContentHuggingPriority(.defaultHigh, for: .horizontal) - calendarMonthView.setContentHuggingPriority(.defaultHigh, for: .vertical) - - setupForAccessibility() - } - - override func viewDidLayoutSubviews() { - super.viewDidLayoutSubviews() - calculatePreferredSize() - } - - private func calculatePreferredSize() { - let targetSize = CGSize(width: view.bounds.width, - height: UIView.layoutFittingCompressedSize.height) - preferredContentSize = view.systemLayoutSizeFitting(targetSize) - } - - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - (segue.destination as? DateCoordinatorHandler)?.coordinator = coordinator - } - - override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { - super.traitCollectionDidChange(previousTraitCollection) - resetNavigationButtons() - } - - @objc func closeButtonPressed() { - dismiss(animated: true, completion: nil) - } - - override func accessibilityPerformEscape() -> Bool { - dismiss(animated: true, completion: nil) - return true - } - - @objc func publishImmediately() { - coordinator?.updated(nil) - navigationController?.dismiss(animated: true, completion: nil) - } - - @objc func nextButtonPressed() { - let vc = TimePickerViewController() - vc.coordinator = coordinator - navigationController?.pushViewController(vc, animated: true) - } - - @objc private func resetNavigationButtons() { - let includeCloseButton = traitCollection.verticalSizeClass == .compact || - (isVoiceOverOrSwitchControlRunning && navigationController?.modalPresentationStyle != .popover) - - if includeCloseButton { - navigationItem.leftBarButtonItems = [closeButton, publishButton] - } else { - navigationItem.leftBarButtonItems = [publishButton] - } - } -} - -extension SchedulingCalendarViewController { - @objc func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController) -> UIPresentationController? { - let presentationController = PartScreenPresentationController(presentedViewController: presented, presenting: presenting) - presentationController.delegate = self - return presentationController - } - - @objc func adaptivePresentationStyle(for: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle { - return traitCollection.verticalSizeClass == .compact ? .overFullScreen : .none - } -} - -// MARK: Accessibility - -private extension SchedulingCalendarViewController { - func setupForAccessibility() { - let notificationNames = [ - UIAccessibility.voiceOverStatusDidChangeNotification, - UIAccessibility.switchControlStatusDidChangeNotification - ] - NotificationCenter.default.addObserver(self, - selector: #selector(resetNavigationButtons), - names: notificationNames, - object: nil) - } - - var isVoiceOverOrSwitchControlRunning: Bool { - UIAccessibility.isVoiceOverRunning || UIAccessibility.isSwitchControlRunning - } -} - -// MARK: - Time Picker - -class TimePickerViewController: UIViewController, DatePickerSheet, DateCoordinatorHandler { - - var coordinator: DateCoordinator? = nil - - let chosenValueRow = ChosenValueRow(frame: .zero) - - private lazy var datePicker: UIDatePicker = { - let datePicker = UIDatePicker() - - if #available(iOS 13.4, *) { - datePicker.preferredDatePickerStyle = .wheels - } - - datePicker.datePickerMode = .time - datePicker.timeZone = coordinator?.timeZone - datePicker.addTarget(self, action: #selector(timePickerChanged(_:)), for: .valueChanged) - if let date = coordinator?.date { - datePicker.date = date - } - return datePicker - }() - - override func viewDidLoad() { - super.viewDidLoad() - chosenValueRow.titleLabel.text = NSLocalizedString("Choose a time", comment: "Label for Publish time picker") - chosenValueRow.detailLabel.text = coordinator?.dateTimeFormatter.string(from: datePicker.date) - let doneButton = UIBarButtonItem(title: NSLocalizedString("Done", comment: "Label for Done button"), style: .done, target: self, action: #selector(done)) - - setup(topView: chosenValueRow, pickerView: datePicker) - - navigationItem.setRightBarButton(doneButton, animated: false) - } - - // MARK: Change Selectors - @objc func timePickerChanged(_ sender: Any) { - chosenValueRow.detailLabel.text = coordinator?.dateTimeFormatter.string(from: datePicker.date) - coordinator?.date = datePicker.date - } - - @objc func done() { - coordinator?.updated(coordinator?.date) - navigationController?.dismiss(animated: true, completion: nil) - } -} - -// MARK: DatePickerSheet Protocol -protocol CalendarSheet { - func configureStackView(topView: UIView, pickerView: UIView) -> UIView -} - -extension CalendarSheet { - /// Constructs a view with `topView` on top and `pickerView` on bottom - /// - Parameter topView: A view to be shown above `pickerView` - /// - Parameter pickerView: A view to be shown on the bottom - func configureStackView(topView: UIView, pickerView: UIView) -> UIView { - pickerView.translatesAutoresizingMaskIntoConstraints = false - - let pickerWrapperView = UIView() - pickerWrapperView.addSubview(pickerView) - - let sideConstraints: [NSLayoutConstraint] = [ - pickerView.leftAnchor.constraint(equalTo: pickerWrapperView.leftAnchor), - pickerView.rightAnchor.constraint(equalTo: pickerWrapperView.rightAnchor) - ] - - // Allow these to break on larger screen sizes and just center the content - sideConstraints.forEach() { constraint in - constraint.priority = .defaultHigh - } - - NSLayoutConstraint.activate([ - pickerView.centerXAnchor.constraint(equalTo: pickerWrapperView.safeCenterXAnchor), - pickerView.topAnchor.constraint(equalTo: pickerWrapperView.topAnchor), - pickerView.bottomAnchor.constraint(equalTo: pickerWrapperView.bottomAnchor) - ]) - - NSLayoutConstraint.activate(sideConstraints) - - let stackView = UIStackView(arrangedSubviews: [ - topView, - pickerWrapperView - ]) - stackView.axis = .vertical - stackView.translatesAutoresizingMaskIntoConstraints = false - - return stackView - } -} - -extension CalendarSheet where Self: UIViewController { - /// Adds `topView` and `pickerView` to view hierarchy + standard styling for the view controller's view - /// - Parameter topView: A view to show above `pickerView` (see `ChosenValueRow`) - /// - Parameter pickerView: A view to show below the top view - func setup(topView: UIView, pickerView: UIView) { - WPStyleGuide.configureColors(view: view, tableView: nil) - - let stackView = configureStackView(topView: topView, pickerView: pickerView) - - view.addSubview(stackView) - view.pinSubviewToSafeArea(stackView) - } -} diff --git a/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingDatePickerViewController.swift b/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingDatePickerViewController.swift index ce9a68378a9f..472e8257e50d 100644 --- a/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingDatePickerViewController.swift +++ b/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingDatePickerViewController.swift @@ -61,7 +61,7 @@ class SchedulingDatePickerViewController: UIViewController, DatePickerSheet, Dat return item }() - private lazy var publishButton = UIBarButtonItem(title: NSLocalizedString("Publish immediately", comment: "Immediately publish button title"), style: .plain, target: self, action: #selector(SchedulingCalendarViewController.publishImmediately)) + private lazy var publishButton = UIBarButtonItem(title: NSLocalizedString("Publish immediately", comment: "Immediately publish button title"), style: .plain, target: self, action: #selector(SchedulingDatePickerViewController.publishImmediately)) override func viewDidLoad() { super.viewDidLoad() diff --git a/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingViewControllerPresenter.swift b/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingViewControllerPresenter.swift index 68097f4dd0c2..dfb0bf7ab04c 100644 --- a/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingViewControllerPresenter.swift +++ b/WordPress/Classes/ViewRelated/Post/Scheduling/SchedulingViewControllerPresenter.swift @@ -49,12 +49,7 @@ class PresentableSchedulingViewControllerProvider: PresentableSchedulingViewCont } static func schedulingViewController(with viewModel: PublishSettingsViewModel, updated: @escaping (Date?) -> Void) -> SchedulingViewControllerProtocol { - let schedulingViewController: SchedulingViewControllerProtocol - if #available(iOS 14.0, *) { - schedulingViewController = SchedulingDatePickerViewController() - } else { - schedulingViewController = SchedulingCalendarViewController() - } + let schedulingViewController = SchedulingDatePickerViewController() schedulingViewController.coordinator = DateCoordinator(date: viewModel.date, timeZone: viewModel.timeZone, dateFormatter: viewModel.dateFormatter, @@ -64,6 +59,11 @@ class PresentableSchedulingViewControllerProvider: PresentableSchedulingViewCont } } +// FIXME: This protocol is redundant as of dropping iOS 13. +// +// It was used as a facade in between `SchedulingCalendarViewController` (iOS 13) and +// `SchedulingDatePickerViewController` (iOS 14+). `SchedulingCalendarViewController` has been +// deleted so we can remove this as well. protocol SchedulingViewControllerProtocol: UIViewController, UIViewControllerTransitioningDelegate, UIAdaptivePresentationControllerDelegate { var coordinator: DateCoordinator? { get set } } diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/AllTimeWidgetStats.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/AllTimeWidgetStats.swift index 1dc6a77692af..ef233a10aad3 100644 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/AllTimeWidgetStats.swift +++ b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/AllTimeWidgetStats.swift @@ -2,7 +2,6 @@ import Foundation /// This struct contains data for the Insights All Time stats to be displayed in the corresponding widget. /// The data is stored in a plist for the widget to access. -/// This file is shared with WordPressAllTimeWidget, which accesses the data when it is viewed. /// struct AllTimeWidgetStats: Codable { diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/ThisWeekWidgetStats.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/ThisWeekWidgetStats.swift index 3cfbdfdce1ed..7e92a63cf8de 100644 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/ThisWeekWidgetStats.swift +++ b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/ThisWeekWidgetStats.swift @@ -3,7 +3,6 @@ import WordPressKit /// This struct contains data for 'Views This Week' stats to be displayed in the corresponding widget. /// The data is stored in a plist for the widget to access. -/// This file is shared with WordPressThisWeekWidget, which accesses the data when it is viewed. /// struct ThisWeekWidgetStats: Codable { diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/TodayWidgetStats.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/TodayWidgetStats.swift index 54ae521fc410..2585ccc3d0de 100644 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/TodayWidgetStats.swift +++ b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Data/TodayWidgetStats.swift @@ -3,7 +3,6 @@ import Foundation /// This struct contains data for the Insights Today stats to be displayed in the corresponding widget. /// The data is stored in a plist for the widget to access. -/// This file is shared with WordPressTodayWidget, which accesses the data when it is viewed. /// struct TodayWidgetStats: Codable { diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetDifferenceCell.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetDifferenceCell.swift deleted file mode 100644 index 5135866a1c80..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetDifferenceCell.swift +++ /dev/null @@ -1,87 +0,0 @@ -import UIKit - -class WidgetDifferenceCell: UITableViewCell { - - // MARK: - Properties - - static let reuseIdentifier = "WidgetDifferenceCell" - static let defaultHeight: CGFloat = 56.5 - - @IBOutlet private var dateLabel: UILabel! - @IBOutlet private var dataLabel: UILabel! - @IBOutlet private var differenceView: UIView! - @IBOutlet private var differenceLabel: UILabel! - - private var percentFormatter: NumberFormatter = { - let formatter = NumberFormatter() - formatter.numberStyle = .percent - formatter.positivePrefix = "+" - return formatter - }() - - private var dateFormatter: DateFormatter = { - let formatter = DateFormatter() - formatter.setLocalizedDateFormatFromTemplate("MMM d, yyyy") - return formatter - }() - - // MARK: - View - - override func awakeFromNib() { - super.awakeFromNib() - configureColors() - initializeLabels() - } - - func configure(day: ThisWeekWidgetDay? = nil, isToday: Bool = false) { - configureLabels(day: day, isToday: isToday) - } - -} - -// MARK: - Private Extension - -private extension WidgetDifferenceCell { - - func configureColors() { - dateLabel.textColor = WidgetStyles.primaryTextColor - dataLabel.textColor = WidgetStyles.primaryTextColor - differenceLabel.textColor = Constants.differenceTextColor - differenceView.layer.cornerRadius = Constants.cornerRadius - } - - func initializeLabels() { - dateLabel.text = Constants.noDataLabel - dataLabel.text = Constants.noDataLabel - differenceLabel.text = Constants.noDataLabel - } - - func configureLabels(day: ThisWeekWidgetDay?, isToday: Bool) { - guard let day = day else { - return - } - - dataLabel.text = day.viewsCount.abbreviatedString() - differenceLabel.text = percentFormatter.string(for: day.dailyChangePercent) - - guard !isToday else { - dateLabel.text = Constants.today - differenceView.backgroundColor = Constants.neutralColor - return - } - - dateLabel.text = dateFormatter.string(from: day.date) - differenceView.backgroundColor = day.dailyChangePercent < 0 ? Constants.negativeColor : Constants.positiveColor - } - - enum Constants { - static let noDataLabel = "-" - static let cornerRadius: CGFloat = 4.0 - static let today = AppLocalizedString("Today", comment: "Label for most recent stat row.") - static let positiveColor: UIColor = .success - static let negativeColor: UIColor = .error - static let neutralColor: UIColor = .neutral(.shade40) - static let differenceTextColor: UIColor = .white - } - -} diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetDifferenceCell.xib b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetDifferenceCell.xib deleted file mode 100644 index eafd5a9627f1..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetDifferenceCell.xib +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetNoConnectionCell.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetNoConnectionCell.swift deleted file mode 100644 index 5028a197381e..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetNoConnectionCell.swift +++ /dev/null @@ -1,35 +0,0 @@ -import UIKit - -class WidgetNoConnectionCell: UITableViewCell { - - // MARK: - Properties - - static let reuseIdentifier = "WidgetNoConnectionCell" - - @IBOutlet private var titleLabel: UILabel! - @IBOutlet private var messageLabel: UILabel! - - // MARK: - View - - override func awakeFromNib() { - super.awakeFromNib() - configureView() - } - -} - -private extension WidgetNoConnectionCell { - - func configureView() { - titleLabel.text = LocalizedText.title - messageLabel.text = LocalizedText.message - titleLabel.textColor = WidgetStyles.primaryTextColor - messageLabel.textColor = WidgetStyles.primaryTextColor - } - - enum LocalizedText { - static let title = AppLocalizedString("No network available", comment: "Displayed in the Stats widgets when there is no network") - static let message = AppLocalizedString("Stats will be updated next time you're online", comment: "Displayed in the Stats widgets when there is no network") - } - -} diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetNoConnectionCell.xib b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetNoConnectionCell.xib deleted file mode 100644 index 4b613661f181..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetNoConnectionCell.xib +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetTwoColumnCell.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetTwoColumnCell.swift deleted file mode 100644 index a77a6685145d..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetTwoColumnCell.swift +++ /dev/null @@ -1,45 +0,0 @@ -import UIKit - -class WidgetTwoColumnCell: UITableViewCell { - - // MARK: - Properties - - static let reuseIdentifier = "WidgetTwoColumnCell" - static let defaultHeight: CGFloat = 78 - - @IBOutlet private var leftItemLabel: UILabel! - @IBOutlet private var leftDataLabel: UILabel! - @IBOutlet private var rightItemLabel: UILabel! - @IBOutlet private var rightDataLabel: UILabel! - - // MARK: - View - - override func awakeFromNib() { - super.awakeFromNib() - configureColors() - } - - // MARK: - Configure - - func configure(leftItemName: String, leftItemData: String, rightItemName: String, rightItemData: String) { - leftItemLabel.text = leftItemName - leftDataLabel.text = leftItemData - rightItemLabel.text = rightItemName - rightDataLabel.text = rightItemData - - leftDataLabel.accessibilityLabel = leftItemData.accessibilityLabel - rightDataLabel.accessibilityLabel = rightItemData.accessibilityLabel - } - -} - -// MARK: - Private Extension - -private extension WidgetTwoColumnCell { - func configureColors() { - leftItemLabel.textColor = WidgetStyles.primaryTextColor - leftDataLabel.textColor = WidgetStyles.primaryTextColor - rightItemLabel.textColor = WidgetStyles.primaryTextColor - rightDataLabel.textColor = WidgetStyles.primaryTextColor - } -} diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetTwoColumnCell.xib b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetTwoColumnCell.xib deleted file mode 100644 index 4157105e6e12..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetTwoColumnCell.xib +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUnconfiguredCell.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUnconfiguredCell.swift deleted file mode 100644 index 00c849d2f484..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUnconfiguredCell.swift +++ /dev/null @@ -1,80 +0,0 @@ -import UIKit - -enum WidgetType { - case today - case allTime - case thisWeek - case loadingFailed - - var configureLabelFont: UIFont { - switch self { - case .loadingFailed: - return WidgetStyles.headlineFont - default: - return WidgetStyles.footnoteNote - } - } -} - -class WidgetUnconfiguredCell: UITableViewCell { - - // MARK: - Properties - - static let reuseIdentifier = "WidgetUnconfiguredCell" - - @IBOutlet private var configureLabel: UILabel! - @IBOutlet private var separatorLine: UIView! - @IBOutlet private var separatorVisualEffectView: UIVisualEffectView! - @IBOutlet private var actionLabel: UILabel! - - private var widgetType: WidgetType? - - // MARK: - View - - func configure(for widgetType: WidgetType) { - self.widgetType = widgetType - configureView() - } - -} - -// MARK: - Private Extension - -private extension WidgetUnconfiguredCell { - - func configureView() { - guard let widgetType = widgetType else { - return - } - - configureLabel.text = { - switch widgetType { - case .today: - return LocalizedText.configureToday - case .allTime: - return LocalizedText.configureAllTime - case .thisWeek: - return LocalizedText.configureThisWeek - case .loadingFailed: - return LocalizedText.loadingFailed - } - }() - - configureLabel.font = widgetType.configureLabelFont - actionLabel.text = widgetType == .loadingFailed ? LocalizedText.retry : LocalizedText.openWordPress - configureLabel.textColor = WidgetStyles.primaryTextColor - actionLabel.textColor = WidgetStyles.primaryTextColor - WidgetStyles.configureSeparator(separatorLine) - separatorVisualEffectView.effect = WidgetStyles.separatorVibrancyEffect - } - - enum LocalizedText { - static let configureToday = AppLocalizedString("Display your site stats for today here. Configure in the WordPress app in your site stats.", comment: "Unconfigured stats today widget helper text") - static let configureAllTime = AppLocalizedString("Display your all-time site stats here. Configure in the WordPress app in your site stats.", comment: "Unconfigured stats all-time widget helper text") - static let configureThisWeek = AppLocalizedString("Display your site stats for this week here. Configure in the WordPress app in your site stats.", comment: "Unconfigured stats this week widget helper text") - static let openWordPress = AppLocalizedString("Open WordPress", comment: "Today widget label to launch WP app") - static let loadingFailed = AppLocalizedString("Couldn't load data", comment: "Message displayed when a Stats widget failed to load data.") - static let retry = AppLocalizedString("Retry", comment: "Stats widgets label to reload the widget.") - } - -} diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUnconfiguredCell.xib b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUnconfiguredCell.xib deleted file mode 100644 index 4e3211f6663f..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUnconfiguredCell.xib +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUrlCell.swift b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUrlCell.swift deleted file mode 100644 index c9be1c48d41d..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUrlCell.swift +++ /dev/null @@ -1,36 +0,0 @@ -import UIKit - -class WidgetUrlCell: UITableViewCell { - - // MARK: - Properties - - static let reuseIdentifier = "WidgetUrlCell" - static let height: CGFloat = 32 - - @IBOutlet private var separatorLine: UIView! - @IBOutlet private var separatorVisualEffectView: UIVisualEffectView! - @IBOutlet private var siteUrlLabel: UILabel! - - // MARK: - View - - override func awakeFromNib() { - super.awakeFromNib() - configureColors() - } - - func configure(siteUrl: String, hideSeparator: Bool = false) { - siteUrlLabel.text = siteUrl - separatorVisualEffectView.isHidden = hideSeparator - } - -} - -// MARK: - Private Extension - -private extension WidgetUrlCell { - func configureColors() { - siteUrlLabel.textColor = WidgetStyles.secondaryTextColor - WidgetStyles.configureSeparator(separatorLine) - separatorVisualEffectView.effect = WidgetStyles.separatorVibrancyEffect - } -} diff --git a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUrlCell.xib b/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUrlCell.xib deleted file mode 100644 index d9df3cc5e6dd..000000000000 --- a/WordPress/Classes/ViewRelated/Stats/Today Widgets/Shared Views/WidgetUrlCell.xib +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/Info.plist b/WordPress/Info.plist index 7cc1f3a3412c..291a11539656 100644 --- a/WordPress/Info.plist +++ b/WordPress/Info.plist @@ -550,8 +550,6 @@ Nunito-Bold.ttf EBGaramond-Regular.ttf - UIApplicationShortcutWidget - org.wordpress.WordPressTodayWidget UIBackgroundModes fetch diff --git a/WordPress/WordPress-Internal-Info.plist b/WordPress/WordPress-Internal-Info.plist index 220da175c5e1..ec04baaa4aab 100644 --- a/WordPress/WordPress-Internal-Info.plist +++ b/WordPress/WordPress-Internal-Info.plist @@ -492,8 +492,6 @@ Noticons.ttf - UIApplicationShortcutWidget - org.wordpress.internal.WordPressTodayWidget UIBackgroundModes fetch diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 85ebb5617d10..430b6b5c8c39 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -118,9 +118,6 @@ 0107E16428FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; 0107E16528FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; 0107E16628FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; - 0107E16728FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; - 0107E16828FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; - 0107E16928FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; 0107E16A28FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; 0107E16B28FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; 0107E16C28FFED1800DE87DB /* WidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0107E16328FFED1800DE87DB /* WidgetConfiguration.swift */; }; @@ -140,9 +137,6 @@ 0148CC2B2859C87000CF5D96 /* BlogServiceMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0148CC2A2859C87000CF5D96 /* BlogServiceMock.swift */; }; 01CE5007290A889F00A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; 01CE5008290A88BD00A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; - 01CE5009290A88BE00A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; - 01CE500A290A88BE00A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; - 01CE500B290A88BF00A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; 01CE500C290A88BF00A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; 01CE500E290A88C100A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; 01CE500F290A88C100A9C2E0 /* TracksConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CE5006290A889F00A9C2E0 /* TracksConfiguration.swift */; }; @@ -260,9 +254,6 @@ 08F8CD371EBD2AA80049D0C0 /* test-image-device-photo-gps.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08F8CD341EBD2AA80049D0C0 /* test-image-device-photo-gps.jpg */; }; 08F8CD391EBD2C970049D0C0 /* MediaURLExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8CD381EBD2C970049D0C0 /* MediaURLExporter.swift */; }; 08F8CD3B1EBD2D020049D0C0 /* MediaURLExporterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8CD3A1EBD2D020049D0C0 /* MediaURLExporterTests.swift */; }; - 092C3800275E718000BBBDD9 /* AppLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */; }; - 092C3801275E718100BBBDD9 /* AppLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */; }; - 092C3802275E718100BBBDD9 /* AppLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */; }; 098B8576275E76FE004D299F /* AppLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */; }; 098B8577275E9765004D299F /* AppLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */; }; 098B8578275FF975004D299F /* AppLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */; }; @@ -284,7 +275,6 @@ 1707CE421F3121750020B7FE /* UICollectionViewCell+Tint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1707CE411F3121750020B7FE /* UICollectionViewCell+Tint.swift */; }; 170BEC872391530D0017AEC1 /* FeatureFlagOverrideStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A09B98238FE13B0022AE0D /* FeatureFlagOverrideStore.swift */; }; 170BEC88239153110017AEC1 /* FeatureFlagOverrideStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A09B98238FE13B0022AE0D /* FeatureFlagOverrideStore.swift */; }; - 170BEC89239153120017AEC1 /* FeatureFlagOverrideStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A09B98238FE13B0022AE0D /* FeatureFlagOverrideStore.swift */; }; 170BEC8A239153160017AEC1 /* FeatureFlagOverrideStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A09B98238FE13B0022AE0D /* FeatureFlagOverrideStore.swift */; }; 170BEC8B239153160017AEC1 /* FeatureFlagOverrideStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A09B98238FE13B0022AE0D /* FeatureFlagOverrideStore.swift */; }; 170BEC8C2391533D0017AEC1 /* KeyValueDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1751E5901CE0E552000CA08D /* KeyValueDatabase.swift */; }; @@ -376,7 +366,6 @@ 17523381246C4F9200870B4A /* HomepageSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17523380246C4F9200870B4A /* HomepageSettingsViewController.swift */; }; 1752D4F9238D702D002B79E7 /* KeyValueDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1751E5901CE0E552000CA08D /* KeyValueDatabase.swift */; }; 1752D4FA238D702E002B79E7 /* KeyValueDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1751E5901CE0E552000CA08D /* KeyValueDatabase.swift */; }; - 1752D4FB238D702F002B79E7 /* KeyValueDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1751E5901CE0E552000CA08D /* KeyValueDatabase.swift */; }; 1752D4FC238D703A002B79E7 /* KeyValueDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1751E5901CE0E552000CA08D /* KeyValueDatabase.swift */; }; 175507B327A062980038ED28 /* PublicizeConnectionURLMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175507B227A062980038ED28 /* PublicizeConnectionURLMatcher.swift */; }; 175507B427A062980038ED28 /* PublicizeConnectionURLMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175507B227A062980038ED28 /* PublicizeConnectionURLMatcher.swift */; }; @@ -471,14 +460,6 @@ 17A28DCB2052FB5D00EA6D9E /* AuthorFilterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A28DCA2052FB5D00EA6D9E /* AuthorFilterViewController.swift */; }; 17A4A36920EE51870071C2CA /* Routes+Reader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A4A36820EE51870071C2CA /* Routes+Reader.swift */; }; 17A4A36C20EE55320071C2CA /* ReaderCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A4A36B20EE55320071C2CA /* ReaderCoordinator.swift */; }; - 17A4B69C24F91022002DFB8E /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690151F828FF000200E30 /* FeatureFlag.swift */; }; - 17A4B69D24F91023002DFB8E /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690151F828FF000200E30 /* FeatureFlag.swift */; }; - 17A4B69E24F9104F002DFB8E /* BuildConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690141F828FF000200E30 /* BuildConfiguration.swift */; }; - 17A4B69F24F91050002DFB8E /* BuildConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690141F828FF000200E30 /* BuildConfiguration.swift */; }; - 17A4B6A024F91070002DFB8E /* FeatureFlagOverrideStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A09B98238FE13B0022AE0D /* FeatureFlagOverrideStore.swift */; }; - 17A4B6A124F91072002DFB8E /* FeatureFlagOverrideStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A09B98238FE13B0022AE0D /* FeatureFlagOverrideStore.swift */; }; - 17A4B6A224F911D4002DFB8E /* KeyValueDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1751E5901CE0E552000CA08D /* KeyValueDatabase.swift */; }; - 17A4B6A324F911D5002DFB8E /* KeyValueDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1751E5901CE0E552000CA08D /* KeyValueDatabase.swift */; }; 17A8858D2757B97F0071FCA3 /* AutomatticAbout in Frameworks */ = {isa = PBXBuildFile; productRef = 17A8858C2757B97F0071FCA3 /* AutomatticAbout */; }; 17A8858F2757BEC00071FCA3 /* AutomatticAbout in Frameworks */ = {isa = PBXBuildFile; productRef = 17A8858E2757BEC00071FCA3 /* AutomatticAbout */; }; 17ABD3522811A48900B1E9CB /* StatsMostPopularTimeInsightsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17ABD3512811A48900B1E9CB /* StatsMostPopularTimeInsightsCell.swift */; }; @@ -553,7 +534,6 @@ 24CE2EB1258D687A0000C297 /* WordPressFlux in Frameworks */ = {isa = PBXBuildFile; productRef = 24CE2EB0258D687A0000C297 /* WordPressFlux */; }; 24F3789825E6E62100A27BB7 /* NSManagedObject+Lookup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24F3789725E6E62100A27BB7 /* NSManagedObject+Lookup.swift */; }; 2611CC62A62F9E6BC25350FE /* Pods_WordPressScreenshotGeneration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB390AA9C94F16E78184E9D1 /* Pods_WordPressScreenshotGeneration.framework */; }; - 26D66DEC36ACF7442186B07D /* Pods_WordPressThisWeekWidget.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 979B445A45E13F3289F2E99E /* Pods_WordPressThisWeekWidget.framework */; }; 2906F812110CDA8900169D56 /* EditCommentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2906F810110CDA8900169D56 /* EditCommentViewController.m */; }; 296890780FE971DC00770264 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 296890770FE971DC00770264 /* Security.framework */; }; 2F08ECFC2283A4FB000F8E11 /* PostService+UnattachedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F08ECFB2283A4FB000F8E11 /* PostService+UnattachedMedia.swift */; }; @@ -956,7 +936,6 @@ 4322A20D203E1885004EA740 /* SignupUsernameTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4322A20C203E1885004EA740 /* SignupUsernameTableViewController.swift */; }; 4326191522FCB9DC003C7642 /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; 4326191622FCB9F8003C7642 /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; - 4326191722FCB9F9003C7642 /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; 4326191822FCB9F9003C7642 /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; 4326191922FCB9FA003C7642 /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; 4328FED12314788C000EC32A /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; @@ -973,7 +952,6 @@ 433ADC19223B2A0200ED9DE1 /* TextBundleWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 43EE90EE223B1028006A33E9 /* TextBundleWrapper.m */; }; 433ADC1A223B2A7D00ED9DE1 /* TextBundleWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 43EE90EE223B1028006A33E9 /* TextBundleWrapper.m */; }; 433ADC1B223B2A7E00ED9DE1 /* TextBundleWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 43EE90EE223B1028006A33E9 /* TextBundleWrapper.m */; }; - 433ADC1C223B2A7E00ED9DE1 /* TextBundleWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 43EE90EE223B1028006A33E9 /* TextBundleWrapper.m */; }; 433ADC1D223B2A7F00ED9DE1 /* TextBundleWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 43EE90EE223B1028006A33E9 /* TextBundleWrapper.m */; }; 4348C88321002FBD00735DC0 /* QuickStartTourGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4348C88221002FBD00735DC0 /* QuickStartTourGuide.swift */; }; 4349B0AC218A45270034118A /* RevisionsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4349B0AB218A45270034118A /* RevisionsTableViewController.swift */; }; @@ -992,9 +970,6 @@ 435B762B2297484200511813 /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; 435B762C2297484200511813 /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; 435D101A2130C2AB00BB2AA8 /* BlogDetailsViewController+FancyAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435D10192130C2AB00BB2AA8 /* BlogDetailsViewController+FancyAlerts.swift */; }; - 436110D922C3ED18000773AD /* UIColor+MurielColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435B762122973D0600511813 /* UIColor+MurielColors.swift */; }; - 436110DA22C3ED44000773AD /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690151F828FF000200E30 /* FeatureFlag.swift */; }; - 436110DB22C3ED4C000773AD /* BuildConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690141F828FF000200E30 /* BuildConfiguration.swift */; }; 436110DC22C41ADB000773AD /* UIColor+MurielColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435B762122973D0600511813 /* UIColor+MurielColors.swift */; }; 436110DD22C41AFD000773AD /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690151F828FF000200E30 /* FeatureFlag.swift */; }; 436110DE22C41B02000773AD /* BuildConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D690141F828FF000200E30 /* BuildConfiguration.swift */; }; @@ -1235,7 +1210,6 @@ 5DFA7EC31AF7CB910072023B /* Pages.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5DFA7EC21AF7CB910072023B /* Pages.storyboard */; }; 5DFA7EC71AF814E40072023B /* PageListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DFA7EC51AF814E40072023B /* PageListTableViewCell.m */; }; 5DFA7EC81AF814E40072023B /* PageListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5DFA7EC61AF814E40072023B /* PageListTableViewCell.xib */; }; - 638E2F3D4DFE9E93AF660CED /* Pods_WordPressAllTimeWidget.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0075A07B739C4EDB5EC613B8 /* Pods_WordPressAllTimeWidget.framework */; }; 660A036E6EE9D353F2712081 /* (null) in Frameworks */ = {isa = PBXBuildFile; }; 6E5BA46926A59D620043A6F2 /* SupportScreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5BA46826A59D620043A6F2 /* SupportScreenTests.swift */; }; 730354BA21C867E500CD18C2 /* SiteCreatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 730354B921C867E500CD18C2 /* SiteCreatorTests.swift */; }; @@ -1793,9 +1767,6 @@ 830A58D92793AB4500CDE94F /* LoginEpilogueAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830A58D72793AB4400CDE94F /* LoginEpilogueAnimator.swift */; }; 8320BDE5283D9359009DF2DE /* BlogService+BloggingPrompts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8320BDE4283D9359009DF2DE /* BlogService+BloggingPrompts.swift */; }; 8320BDE6283D9359009DF2DE /* BlogService+BloggingPrompts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8320BDE4283D9359009DF2DE /* BlogService+BloggingPrompts.swift */; }; - 8323789528526E6B003F4443 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA25F9FD2609AA830005E08F /* AppConfiguration.swift */; }; - 8323789628526E6C003F4443 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA25F9FD2609AA830005E08F /* AppConfiguration.swift */; }; - 8323789728526E6C003F4443 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA25F9FD2609AA830005E08F /* AppConfiguration.swift */; }; 8323789828526E6D003F4443 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA25F9FD2609AA830005E08F /* AppConfiguration.swift */; }; 8323789928526E6E003F4443 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA25F9FD2609AA830005E08F /* AppConfiguration.swift */; }; 834CE7341256D0DE0046A4A3 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 834CE7331256D0DE0046A4A3 /* CFNetwork.framework */; }; @@ -1823,9 +1794,6 @@ 839B150C2795DEE0009F5E77 /* UIView+Margins.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839B150A2795DEE0009F5E77 /* UIView+Margins.swift */; }; 83A1B19528AFE47900E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; 83A1B19628AFE47A00E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; - 83A1B19728AFE47A00E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; - 83A1B19828AFE47B00E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; - 83A1B19928AFE47B00E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; 83A1B19A28AFE47C00E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; 83A1B19B28AFE47D00E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; 83A1B19C28AFE47D00E737AC /* KeychainUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8384C64028AAC82600EABE26 /* KeychainUtils.swift */; }; @@ -2036,7 +2004,6 @@ 934098C3271957A600B3E77E /* SiteStatsInsightsDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 934098C2271957A600B3E77E /* SiteStatsInsightsDelegate.swift */; }; 934098C4271957A600B3E77E /* SiteStatsInsightsDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 934098C2271957A600B3E77E /* SiteStatsInsightsDelegate.swift */; }; 93414DE51E2D25AE003143A3 /* PostEditorState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93414DE41E2D25AE003143A3 /* PostEditorState.swift */; }; - 934884AB19B73BA6004028D8 /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CC05F51962150600975CAC /* Constants.m */; }; 93594BD5191D2F5A0079E6B2 /* stats-batch.json in Resources */ = {isa = PBXBuildFile; fileRef = 93594BD4191D2F5A0079E6B2 /* stats-batch.json */; }; 9363113F19FA996700B0C739 /* AccountServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9363113E19FA996700B0C739 /* AccountServiceTests.swift */; }; 937250EE267A492D0086075F /* StatsPeriodStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 937250ED267A492D0086075F /* StatsPeriodStoreTests.swift */; }; @@ -2047,14 +2014,11 @@ 938466B92683CA0E00A538DC /* ReferrerDetailsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938466B82683CA0E00A538DC /* ReferrerDetailsViewModelTests.swift */; }; 938CF3DC1EF1BE6800AF838E /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; 938CF3DD1EF1BE7F00AF838E /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; - 938CF3DE1EF1BE8000AF838E /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; 93A379EC19FFBF7900415023 /* KeychainTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 93A379EB19FFBF7900415023 /* KeychainTest.m */; }; 93A3F7DE1843F6F00082FEEA /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93A3F7DD1843F6F00082FEEA /* CoreTelephony.framework */; }; 93B853231B4416A30064FE72 /* WPAnalyticsTrackerAutomatticTracksTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 93B853221B4416A30064FE72 /* WPAnalyticsTrackerAutomatticTracksTests.m */; }; 93C1147F18EC5DD500DAC95C /* AccountService.m in Sources */ = {isa = PBXBuildFile; fileRef = 93C1147E18EC5DD500DAC95C /* AccountService.m */; }; 93C1148518EDF6E100DAC95C /* BlogService.m in Sources */ = {isa = PBXBuildFile; fileRef = 93C1148418EDF6E100DAC95C /* BlogService.m */; }; - 93C2075A1CC7FF9C00C94D04 /* Tracks.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FA22821C99F6180016CA7C /* Tracks.swift */; }; - 93C2075D1CC7FFC800C94D04 /* Tracks+TodayWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93C2075C1CC7FFC800C94D04 /* Tracks+TodayWidget.swift */; }; 93C4864F181043D700A24725 /* ActivityLogDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93069F581762410B000C966D /* ActivityLogDetailViewController.m */; }; 93C486511810445D00A24725 /* ActivityLogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93069F55176237A4000C966D /* ActivityLogViewController.m */; }; 93C882A11EEB18D700227A59 /* html_page_with_link_to_rsd_non_standard.html in Resources */ = {isa = PBXBuildFile; fileRef = 93C882981EEB18D700227A59 /* html_page_with_link_to_rsd_non_standard.html */; }; @@ -2066,11 +2030,6 @@ 93CDC72226CD342900C8A3A8 /* DestructiveAlertHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93CDC72026CD342900C8A3A8 /* DestructiveAlertHelper.swift */; }; 93D86B981C691E71003D8E3E /* LocalCoreDataServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 59A9AB391B4C3ECD00A433DC /* LocalCoreDataServiceTests.m */; }; 93DEB88219E5BF7100F9546D /* TodayExtensionService.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DEB88119E5BF7100F9546D /* TodayExtensionService.m */; }; - 93E3D3C819ACE8E300B1C509 /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 292CECFF1027259000BD407D /* SFHFKeychainUtils.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 93E5283C19A7741A003A1A9C /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93E5283B19A7741A003A1A9C /* NotificationCenter.framework */; }; - 93E5284119A7741A003A1A9C /* TodayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E5284019A7741A003A1A9C /* TodayViewController.swift */; }; - 93E5284319A7741A003A1A9C /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 93E5284219A7741A003A1A9C /* MainInterface.storyboard */; }; - 93E5284619A7741A003A1A9C /* WordPressTodayWidget.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 93E5283A19A7741A003A1A9C /* WordPressTodayWidget.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 93E5285619A77BAC003A1A9C /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93E5283B19A7741A003A1A9C /* NotificationCenter.framework */; }; 93E63369272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */; }; 93E6336A272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */; }; @@ -2095,7 +2054,6 @@ 98077B5A2075561800109F95 /* SupportTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98077B592075561800109F95 /* SupportTableViewController.swift */; }; 9808655A203D075E00D58786 /* EpilogueUserInfoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98086559203D075D00D58786 /* EpilogueUserInfoCell.xib */; }; 9808655C203D079B00D58786 /* EpilogueUserInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9808655B203D079A00D58786 /* EpilogueUserInfoCell.swift */; }; - 980D3B1B23C925F40060A890 /* WidgetStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985ED0E323C6950600B8D06A /* WidgetStyles.swift */; }; 9813512E22F0FC2700F7425D /* FileDownloadsStatsRecordValueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9813512D22F0FC2700F7425D /* FileDownloadsStatsRecordValueTests.swift */; }; 9815D0B326B49A0600DF7226 /* Comment+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9815D0B226B49A0600DF7226 /* Comment+CoreDataProperties.swift */; }; 9815D0B426B49A0600DF7226 /* Comment+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9815D0B226B49A0600DF7226 /* Comment+CoreDataProperties.swift */; }; @@ -2147,8 +2105,6 @@ 98390AD2254C985F00868F0A /* Tracks.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FA22821C99F6180016CA7C /* Tracks.swift */; }; 9839CEBB26FAA0530097406E /* CommentModerationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9839CEB926FAA0510097406E /* CommentModerationBar.swift */; }; 9839CEBC26FAA0530097406E /* CommentModerationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9839CEB926FAA0510097406E /* CommentModerationBar.swift */; }; - 983AE84C2399AC5B00E5B7F6 /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 292CECFF1027259000BD407D /* SFHFKeychainUtils.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 983AE84D2399AC6B00E5B7F6 /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CC05F51962150600975CAC /* Constants.m */; }; 983DBBAA22125DD500753988 /* StatsTableFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = 983DBBA822125DD300753988 /* StatsTableFooter.xib */; }; 983DBBAB22125DD500753988 /* StatsTableFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 983DBBA922125DD300753988 /* StatsTableFooter.swift */; }; 98458CB821A39D350025D232 /* StatsNoDataRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98458CB721A39D350025D232 /* StatsNoDataRow.swift */; }; @@ -2162,7 +2118,6 @@ 984B139221F66AC60004B6A2 /* SiteStatsPeriodViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 984B139121F66AC50004B6A2 /* SiteStatsPeriodViewModel.swift */; }; 984B139421F66B2D0004B6A2 /* StatsPeriodStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 984B139321F66B2D0004B6A2 /* StatsPeriodStore.swift */; }; 984B4EF320742FCC00F87888 /* ZendeskUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 984B4EF220742FCC00F87888 /* ZendeskUtils.swift */; }; - 984BE91523CE72D600B37D90 /* Double+Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981C82B52193A7B900A06E84 /* Double+Stats.swift */; }; 984F86FB21DEDB070070E0E3 /* TopTotalsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 984F86FA21DEDB060070E0E3 /* TopTotalsCell.swift */; }; 98517E5928220411001FFD45 /* BloggingPromptTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98517E5828220411001FFD45 /* BloggingPromptTableViewCell.swift */; }; 98517E5A28220411001FFD45 /* BloggingPromptTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98517E5828220411001FFD45 /* BloggingPromptTableViewCell.swift */; }; @@ -2180,10 +2135,7 @@ 985793C922F23D7000643DBF /* CustomizeInsightsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 985793C722F23D7000643DBF /* CustomizeInsightsCell.xib */; }; 98579BC7203DD86F004086E4 /* EpilogueSectionHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98579BC5203DD86D004086E4 /* EpilogueSectionHeaderFooter.swift */; }; 98579BC8203DD86F004086E4 /* EpilogueSectionHeaderFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98579BC6203DD86E004086E4 /* EpilogueSectionHeaderFooter.xib */; }; - 985ED0E223C686CA00B8D06A /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; 985ED0E423C6950600B8D06A /* WidgetStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985ED0E323C6950600B8D06A /* WidgetStyles.swift */; }; - 985ED0E723C6964500B8D06A /* WidgetStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985ED0E323C6950600B8D06A /* WidgetStyles.swift */; }; - 985ED0E823C6964600B8D06A /* WidgetStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985ED0E323C6950600B8D06A /* WidgetStyles.swift */; }; 98622E9F274C59A400061A5F /* ReaderDetailCommentsTableViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98622E9E274C59A400061A5F /* ReaderDetailCommentsTableViewDelegate.swift */; }; 98622EA0274C59A400061A5F /* ReaderDetailCommentsTableViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98622E9E274C59A400061A5F /* ReaderDetailCommentsTableViewDelegate.swift */; }; 9865257D2194D77F0078B916 /* SiteStatsInsightsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9865257C2194D77E0078B916 /* SiteStatsInsightsViewModel.swift */; }; @@ -2199,14 +2151,6 @@ 986FF29E2141971D005B28EC /* WPAnimatedBox.m in Sources */ = {isa = PBXBuildFile; fileRef = E240859B183D82AE002EB0EF /* WPAnimatedBox.m */; }; 986FF29F214198D9005B28EC /* String+Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55FFCF91F034F1A0070812C /* String+Ranges.swift */; }; 986FF2A0214198D9005B28EC /* String+Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55FFCF91F034F1A0070812C /* String+Ranges.swift */; }; - 98712D1B23DA1C7E00555316 /* WidgetNoConnectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98712D1923DA1C7E00555316 /* WidgetNoConnectionCell.swift */; }; - 98712D1C23DA1C7E00555316 /* WidgetNoConnectionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98712D1A23DA1C7E00555316 /* WidgetNoConnectionCell.xib */; }; - 98712D1D23DA1D0800555316 /* WidgetNoConnectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98712D1923DA1C7E00555316 /* WidgetNoConnectionCell.swift */; }; - 98712D1E23DA1D0900555316 /* WidgetNoConnectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98712D1923DA1C7E00555316 /* WidgetNoConnectionCell.swift */; }; - 98712D1F23DA1D0A00555316 /* WidgetNoConnectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98712D1923DA1C7E00555316 /* WidgetNoConnectionCell.swift */; }; - 98712D2023DA1D1000555316 /* WidgetNoConnectionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98712D1A23DA1C7E00555316 /* WidgetNoConnectionCell.xib */; }; - 98712D2123DA1D1100555316 /* WidgetNoConnectionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98712D1A23DA1C7E00555316 /* WidgetNoConnectionCell.xib */; }; - 98712D2223DA1D1200555316 /* WidgetNoConnectionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98712D1A23DA1C7E00555316 /* WidgetNoConnectionCell.xib */; }; 9872CB30203B8A730066A293 /* SignupEpilogueTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9872CB2F203B8A730066A293 /* SignupEpilogueTableViewController.swift */; }; 9874766F219630240080967F /* SiteStatsTableViewCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9874766E219630240080967F /* SiteStatsTableViewCells.swift */; }; 9874767321963D330080967F /* SiteStatsInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9874767221963D320080967F /* SiteStatsInformation.swift */; }; @@ -2217,7 +2161,6 @@ 987C40C625E590BE002A0955 /* CommentsViewController+Filters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 987C40C525E590BE002A0955 /* CommentsViewController+Filters.swift */; }; 987E79CB261F8858000192B7 /* UserProfileSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 987E79CA261F8857000192B7 /* UserProfileSheetViewController.swift */; }; 987E79CC261F8858000192B7 /* UserProfileSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 987E79CA261F8857000192B7 /* UserProfileSheetViewController.swift */; }; - 9880150623A840200003BD11 /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; 988056032183CCE50083B643 /* SiteStatsInsightsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988056022183CCE50083B643 /* SiteStatsInsightsTableViewController.swift */; }; 98812966219CE42A0075FF33 /* StatsTotalRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98812964219CE42A0075FF33 /* StatsTotalRow.swift */; }; 98812967219CE42A0075FF33 /* StatsTotalRow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98812965219CE42A0075FF33 /* StatsTotalRow.xib */; }; @@ -2231,52 +2174,18 @@ 98880A4B22B2E5E400464538 /* TwoColumnCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98880A4922B2E5E400464538 /* TwoColumnCell.xib */; }; 988AC37522F10DD900BC1433 /* FileDownloadsStatsRecordValue+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988AC37422F10DD900BC1433 /* FileDownloadsStatsRecordValue+CoreDataProperties.swift */; }; 988AC37922F10E2C00BC1433 /* FileDownloadsStatsRecordValue+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988AC37822F10E2C00BC1433 /* FileDownloadsStatsRecordValue+CoreDataClass.swift */; }; - 988F073523D0CE8800AC67A6 /* WidgetUrlCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988F073323D0CE8800AC67A6 /* WidgetUrlCell.swift */; }; - 988F073623D0CE8800AC67A6 /* WidgetUrlCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */; }; - 988F073723D0D15D00AC67A6 /* WidgetUrlCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */; }; - 988F073823D0D15D00AC67A6 /* WidgetUrlCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */; }; - 988F073923D0D15E00AC67A6 /* WidgetUrlCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */; }; - 988F073A23D0D16700AC67A6 /* WidgetUrlCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988F073323D0CE8800AC67A6 /* WidgetUrlCell.swift */; }; - 988F073B23D0D16800AC67A6 /* WidgetUrlCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988F073323D0CE8800AC67A6 /* WidgetUrlCell.swift */; }; - 988F073C23D0D16800AC67A6 /* WidgetUrlCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988F073323D0CE8800AC67A6 /* WidgetUrlCell.swift */; }; 988FD74A279B75A400C7E814 /* NotificationCommentDetailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988FD749279B75A400C7E814 /* NotificationCommentDetailCoordinator.swift */; }; 988FD74B279B75A400C7E814 /* NotificationCommentDetailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988FD749279B75A400C7E814 /* NotificationCommentDetailCoordinator.swift */; }; - 98906502237CC1DF00218CD2 /* WidgetUnconfiguredCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FB237CC1DE00218CD2 /* WidgetUnconfiguredCell.swift */; }; - 98906503237CC1DF00218CD2 /* WidgetUnconfiguredCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FB237CC1DE00218CD2 /* WidgetUnconfiguredCell.swift */; }; - 98906504237CC1DF00218CD2 /* WidgetUnconfiguredCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FC237CC1DE00218CD2 /* WidgetUnconfiguredCell.xib */; }; - 98906505237CC1DF00218CD2 /* WidgetUnconfiguredCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FC237CC1DE00218CD2 /* WidgetUnconfiguredCell.xib */; }; - 98906506237CC1DF00218CD2 /* WidgetTwoColumnCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FD237CC1DE00218CD2 /* WidgetTwoColumnCell.swift */; }; - 98906507237CC1DF00218CD2 /* WidgetTwoColumnCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FD237CC1DE00218CD2 /* WidgetTwoColumnCell.swift */; }; - 98906508237CC1DF00218CD2 /* WidgetTwoColumnCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FE237CC1DE00218CD2 /* WidgetTwoColumnCell.xib */; }; - 98906509237CC1DF00218CD2 /* WidgetTwoColumnCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FE237CC1DE00218CD2 /* WidgetTwoColumnCell.xib */; }; 98921EF721372E12004949AA /* MediaCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98921EF621372E12004949AA /* MediaCoordinator.swift */; }; 9895401126C1F39300EDEB5A /* EditCommentTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9895401026C1F39300EDEB5A /* EditCommentTableViewController.swift */; }; 9895401226C1F39300EDEB5A /* EditCommentTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9895401026C1F39300EDEB5A /* EditCommentTableViewController.swift */; }; 9895B6E021ED49160053D370 /* TopTotalsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9895B6DF21ED49160053D370 /* TopTotalsCell.xib */; }; - 989643E223A02F080070720A /* WidgetUnconfiguredCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FB237CC1DE00218CD2 /* WidgetUnconfiguredCell.swift */; }; - 989643E423A02F4E0070720A /* UIColor+MurielColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435B762122973D0600511813 /* UIColor+MurielColors.swift */; }; - 989643E523A02F640070720A /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; - 989643E823A031CD0070720A /* WidgetUnconfiguredCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FC237CC1DE00218CD2 /* WidgetUnconfiguredCell.xib */; }; - 989643EC23A0437B0070720A /* WidgetDifferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989643EA23A0437B0070720A /* WidgetDifferenceCell.swift */; }; - 989643ED23A0437B0070720A /* WidgetDifferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989643EA23A0437B0070720A /* WidgetDifferenceCell.swift */; }; - 989643EE23A0437B0070720A /* WidgetDifferenceCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989643EB23A0437B0070720A /* WidgetDifferenceCell.xib */; }; - 989643EF23A0437B0070720A /* WidgetDifferenceCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989643EB23A0437B0070720A /* WidgetDifferenceCell.xib */; }; 98A047722821CEBF001B4E2D /* BloggingPromptsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98A047712821CEBF001B4E2D /* BloggingPromptsViewController.swift */; }; 98A047732821CEBF001B4E2D /* BloggingPromptsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98A047712821CEBF001B4E2D /* BloggingPromptsViewController.swift */; }; 98A047752821D069001B4E2D /* BloggingPromptsViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 98A047742821D069001B4E2D /* BloggingPromptsViewController.storyboard */; }; 98A047762821D069001B4E2D /* BloggingPromptsViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 98A047742821D069001B4E2D /* BloggingPromptsViewController.storyboard */; }; 98A25BD1203CB25F006A5807 /* SignupEpilogueCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98A25BD0203CB25F006A5807 /* SignupEpilogueCell.swift */; }; 98A25BD3203CB278006A5807 /* SignupEpilogueCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98A25BD2203CB278006A5807 /* SignupEpilogueCell.xib */; }; - 98A3C2F0239997DA0048D38D /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93E5283B19A7741A003A1A9C /* NotificationCenter.framework */; }; - 98A3C2FA239997DA0048D38D /* WordPressThisWeekWidget.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 98A3C2EF239997DA0048D38D /* WordPressThisWeekWidget.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 98A3C3022399A19F0048D38D /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 98A3C3002399A1850048D38D /* MainInterface.storyboard */; }; - 98A3C3052399A2370048D38D /* ThisWeekViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98A3C3042399A2370048D38D /* ThisWeekViewController.swift */; }; - 98A6B98F2398807F0031AEBD /* WidgetTwoColumnCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FD237CC1DE00218CD2 /* WidgetTwoColumnCell.swift */; }; - 98A6B9902398808B0031AEBD /* WidgetUnconfiguredCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FB237CC1DE00218CD2 /* WidgetUnconfiguredCell.swift */; }; - 98A6B992239881630031AEBD /* UIColor+MurielColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435B762122973D0600511813 /* UIColor+MurielColors.swift */; }; - 98A6B993239881860031AEBD /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; - 98A6B9942398821B0031AEBD /* WidgetTwoColumnCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FE237CC1DE00218CD2 /* WidgetTwoColumnCell.xib */; }; - 98A6B996239882350031AEBD /* WidgetUnconfiguredCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FC237CC1DE00218CD2 /* WidgetUnconfiguredCell.xib */; }; 98AA6D1126B8CE7200920C8B /* Comment+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98AA6D1026B8CE7200920C8B /* Comment+CoreDataClass.swift */; }; 98AA6D1226B8CE7200920C8B /* Comment+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98AA6D1026B8CE7200920C8B /* Comment+CoreDataClass.swift */; }; 98AA9F2127EA890800B3A98C /* FeatureIntroductionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98AA9F2027EA890800B3A98C /* FeatureIntroductionViewController.swift */; }; @@ -2303,22 +2212,10 @@ 98BC522D27F62B6300D6E8C2 /* BloggingPromptsFeatureDescriptionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98BC522C27F62B6300D6E8C2 /* BloggingPromptsFeatureDescriptionView.xib */; }; 98BC522E27F62B6300D6E8C2 /* BloggingPromptsFeatureDescriptionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98BC522C27F62B6300D6E8C2 /* BloggingPromptsFeatureDescriptionView.xib */; }; 98BDFF6B20D0732900C72C58 /* SupportTableViewController+Activity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98BDFF6A20D0732900C72C58 /* SupportTableViewController+Activity.swift */; }; - 98BFF57C2398406A008A1DCB /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; 98BFF57E23984345008A1DCB /* AllTimeWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98BFF57D23984344008A1DCB /* AllTimeWidgetStats.swift */; }; - 98BFF57F23984345008A1DCB /* AllTimeWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98BFF57D23984344008A1DCB /* AllTimeWidgetStats.swift */; }; - 98C0CE9B23C559C800D0F27C /* Double+Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981C82B52193A7B900A06E84 /* Double+Stats.swift */; }; - 98C0CE9C23C559C800D0F27C /* Double+Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981C82B52193A7B900A06E84 /* Double+Stats.swift */; }; 98CAD296221B4ED2003E8F45 /* StatSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98CAD295221B4ED1003E8F45 /* StatSection.swift */; }; - 98D31B8F2396ED7F009CFF43 /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93E5283B19A7741A003A1A9C /* NotificationCenter.framework */; }; - 98D31B992396ED7F009CFF43 /* WordPressAllTimeWidget.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 98D31B8E2396ED7E009CFF43 /* WordPressAllTimeWidget.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 98D31BA72396F7E2009CFF43 /* AllTimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98D31BA52396F7BF009CFF43 /* AllTimeViewController.swift */; }; - 98D31BAC23970078009CFF43 /* Tracks+AllTimeWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98D31BAB23970078009CFF43 /* Tracks+AllTimeWidget.swift */; }; - 98D31BAD2397015C009CFF43 /* Tracks.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FA22821C99F6180016CA7C /* Tracks.swift */; }; - 98D31BAE239708FB009CFF43 /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CC05F51962150600975CAC /* Constants.m */; }; - 98D31BC223972A79009CFF43 /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 292CECFF1027259000BD407D /* SFHFKeychainUtils.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 98D52C3222B1CFEC00831529 /* StatsTwoColumnRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98D52C3022B1CFEB00831529 /* StatsTwoColumnRow.swift */; }; 98D52C3322B1CFEC00831529 /* StatsTwoColumnRow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98D52C3122B1CFEC00831529 /* StatsTwoColumnRow.xib */; }; - 98D7ECCE23983D0800B87710 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 98DE9A9E239835C800A88D01 /* MainInterface.storyboard */; }; 98DCF4A5275945E00008630F /* ReaderDetailNoCommentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98DCF4A3275945DF0008630F /* ReaderDetailNoCommentCell.swift */; }; 98DCF4A6275945E00008630F /* ReaderDetailNoCommentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98DCF4A3275945DF0008630F /* ReaderDetailNoCommentCell.swift */; }; 98DCF4A7275945E00008630F /* ReaderDetailNoCommentCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98DCF4A4275945DF0008630F /* ReaderDetailNoCommentCell.xib */; }; @@ -2327,15 +2224,11 @@ 98E082A02637545C00537BF1 /* PostService+Likes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E0829E2637545C00537BF1 /* PostService+Likes.swift */; }; 98E14A3C27C9712D007B0896 /* NotificationCommentDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E14A3B27C9712D007B0896 /* NotificationCommentDetailViewController.swift */; }; 98E14A3D27C9712D007B0896 /* NotificationCommentDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E14A3B27C9712D007B0896 /* NotificationCommentDetailViewController.swift */; }; - 98E419DE2399B5A700D8C822 /* Tracks+ThisWeekWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E419DD2399B5A700D8C822 /* Tracks+ThisWeekWidget.swift */; }; - 98E419DF2399B62A00D8C822 /* Tracks.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FA22821C99F6180016CA7C /* Tracks.swift */; }; 98E54FF2265C972900B4BE9A /* ReaderDetailLikesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E54FF1265C972900B4BE9A /* ReaderDetailLikesView.swift */; }; 98E54FF3265C972900B4BE9A /* ReaderDetailLikesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E54FF1265C972900B4BE9A /* ReaderDetailLikesView.swift */; }; 98E55019265C977E00B4BE9A /* ReaderDetailLikesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98E55018265C977E00B4BE9A /* ReaderDetailLikesView.xib */; }; 98E5501A265C977E00B4BE9A /* ReaderDetailLikesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98E55018265C977E00B4BE9A /* ReaderDetailLikesView.xib */; }; 98E58A2F2360D23400E5534B /* TodayWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E58A2E2360D23400E5534B /* TodayWidgetStats.swift */; }; - 98E58A302360D23400E5534B /* TodayWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E58A2E2360D23400E5534B /* TodayWidgetStats.swift */; }; - 98E58A442361019300E5534B /* Pods_WordPressTodayWidget.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98E58A432361019300E5534B /* Pods_WordPressTodayWidget.framework */; }; 98E5D4922620C2B40074A56A /* UserProfileSectionHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98E5D4912620C2B40074A56A /* UserProfileSectionHeader.xib */; }; 98E5D4932620C2B40074A56A /* UserProfileSectionHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98E5D4912620C2B40074A56A /* UserProfileSectionHeader.xib */; }; 98EB126A20D2DC2500D2D5B5 /* NoResultsViewController+Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98EB126920D2DC2500D2D5B5 /* NoResultsViewController+Model.swift */; }; @@ -2345,8 +2238,6 @@ 98F537A722496CF300B334F9 /* SiteStatsTableHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F537A622496CF300B334F9 /* SiteStatsTableHeaderView.swift */; }; 98F537A922496D0D00B334F9 /* SiteStatsTableHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98F537A822496D0D00B334F9 /* SiteStatsTableHeaderView.xib */; }; 98F93182239AF64800E4E96E /* ThisWeekWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F93181239AF64800E4E96E /* ThisWeekWidgetStats.swift */; }; - 98F93183239AF64800E4E96E /* ThisWeekWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F93181239AF64800E4E96E /* ThisWeekWidgetStats.swift */; }; - 98F93184239AF76900E4E96E /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; 98F9FB2E270282C200ADF552 /* CommentModerationBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98F9FB2D270282C100ADF552 /* CommentModerationBar.xib */; }; 98F9FB2F270282C200ADF552 /* CommentModerationBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98F9FB2D270282C100ADF552 /* CommentModerationBar.xib */; }; 98FCFC232231DF43006ECDD4 /* PostStatsTitleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98FCFC212231DF43006ECDD4 /* PostStatsTitleCell.swift */; }; @@ -2356,7 +2247,6 @@ 9A09F915230C3E9700F42AB7 /* StoreFetchingStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A09F914230C3E9700F42AB7 /* StoreFetchingStatus.swift */; }; 9A09F91C230C49FD00F42AB7 /* StatsStackViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A09F91A230C49FD00F42AB7 /* StatsStackViewCell.xib */; }; 9A09F91E230C4C0200F42AB7 /* StatsGhostTableViewRows.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A09F91D230C4C0200F42AB7 /* StatsGhostTableViewRows.swift */; }; - 9A144AC822FD6A650069DD71 /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; 9A162F2321C26D7500FDC035 /* RevisionPreviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A162F2221C26D7500FDC035 /* RevisionPreviewViewController.swift */; }; 9A162F2521C26F5F00FDC035 /* UIViewController+ChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A162F2421C26F5F00FDC035 /* UIViewController+ChildViewController.swift */; }; 9A162F2921C271D300FDC035 /* RevisionBrowserState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A162F2821C271D300FDC035 /* RevisionBrowserState.swift */; }; @@ -3467,11 +3357,9 @@ F53FF3A823EA723D001AD596 /* ActionRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F53FF3A723EA723D001AD596 /* ActionRow.swift */; }; F53FF3AA23EA725C001AD596 /* SiteIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F53FF3A923EA725C001AD596 /* SiteIconView.swift */; }; F543AF5723A84E4D0022F595 /* PublishSettingsControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F543AF5623A84E4D0022F595 /* PublishSettingsControllerTests.swift */; }; - F543AF5923A84F200022F595 /* SchedulingCalendarViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F543AF5823A84F200022F595 /* SchedulingCalendarViewControllerTests.swift */; }; F551E7F523F6EA3100751212 /* FloatingActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = F551E7F423F6EA3100751212 /* FloatingActionButton.swift */; }; F551E7F723FC9A5C00751212 /* Collection+RotateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F551E7F623FC9A5C00751212 /* Collection+RotateTests.swift */; }; F565190323CF6D1D003FACAF /* WKCookieJarTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F565190223CF6D1D003FACAF /* WKCookieJarTests.swift */; }; - F5660D03235CF73800020B1E /* SchedulingCalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5660CFF235CE82100020B1E /* SchedulingCalendarViewController.swift */; }; F5660D07235D114500020B1E /* CalendarCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5660D06235D114500020B1E /* CalendarCollectionView.swift */; }; F5660D09235D1CDD00020B1E /* CalendarMonthView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5660D08235D1CDD00020B1E /* CalendarMonthView.swift */; }; F56A33332538C0ED00E2AEF3 /* MySiteViewController+FAB.swift in Sources */ = {isa = PBXBuildFile; fileRef = F56A33322538C0ED00E2AEF3 /* MySiteViewController+FAB.swift */; }; @@ -3480,7 +3368,6 @@ F580C3C123D22E2D0038E243 /* PreviewDeviceLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F580C3C023D22E2D0038E243 /* PreviewDeviceLabel.swift */; }; F580C3CB23D8F9B40038E243 /* AbstractPost+Dates.swift in Sources */ = {isa = PBXBuildFile; fileRef = F580C3CA23D8F9B40038E243 /* AbstractPost+Dates.swift */; }; F582060223A85495005159A9 /* SiteDateFormatters.swift in Sources */ = {isa = PBXBuildFile; fileRef = F582060123A85495005159A9 /* SiteDateFormatters.swift */; }; - F582060423A88379005159A9 /* TimePickerViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F582060323A88379005159A9 /* TimePickerViewControllerTests.swift */; }; F5844B6B235EAF3D007C6557 /* PartScreenPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5844B6A235EAF3D007C6557 /* PartScreenPresentationController.swift */; }; F59AAC10235E430F00385EE6 /* ChosenValueRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F59AAC0F235E430E00385EE6 /* ChosenValueRow.swift */; }; F59AAC16235EA46D00385EE6 /* LightNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F59AAC15235EA46D00385EE6 /* LightNavigationController.swift */; }; @@ -3653,7 +3540,6 @@ FABB1FD42602FC2C00C8785C /* Flags.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 406A0EEF224D39C50016AD6A /* Flags.xcassets */; }; FABB1FD52602FC2C00C8785C /* StatsGhostTopCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A9E3FAF230EA7A300909BC4 /* StatsGhostTopCell.xib */; }; FABB1FD62602FC2C00C8785C /* CustomizeInsightsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 985793C722F23D7000643DBF /* CustomizeInsightsCell.xib */; }; - FABB1FD72602FC2C00C8785C /* WidgetTwoColumnCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FE237CC1DE00218CD2 /* WidgetTwoColumnCell.xib */; }; FABB1FD92602FC2C00C8785C /* oswald_upper.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F5A34D0625DF2F7700C9654B /* oswald_upper.ttf */; }; FABB1FDB2602FC2C00C8785C /* xhtmlValidatorTemplate.xhtml in Resources */ = {isa = PBXBuildFile; fileRef = 2FAE97080E33B21600CA8540 /* xhtmlValidatorTemplate.xhtml */; }; FABB1FDC2602FC2C00C8785C /* PostingActivityDay.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9826AE8721B5C73400C851FA /* PostingActivityDay.xib */; }; @@ -3736,7 +3622,6 @@ FABB205C2602FC2C00C8785C /* StatsGhostChartCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9AC3C69A231543C2007933CD /* StatsGhostChartCell.xib */; }; FABB205D2602FC2C00C8785C /* ReaderGapMarkerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E6A3384D1BB0A50900371587 /* ReaderGapMarkerCell.xib */; }; FABB205E2602FC2C00C8785C /* postPreview.html in Resources */ = {isa = PBXBuildFile; fileRef = 5DB767401588F64D00EBE36C /* postPreview.html */; }; - FABB205F2602FC2C00C8785C /* WidgetDifferenceCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989643EB23A0437B0070720A /* WidgetDifferenceCell.xib */; }; FABB20602602FC2C00C8785C /* MediaSizeSliderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E14977191C0DCB6F0057CD60 /* MediaSizeSliderCell.xib */; }; FABB20622602FC2C00C8785C /* ReaderBlockedSiteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E65219F81B8D10C2000B1217 /* ReaderBlockedSiteCell.xib */; }; FABB20632602FC2C00C8785C /* QuickStartChecklistCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A4E215921F7565A00EFF212 /* QuickStartChecklistCell.xib */; }; @@ -3755,10 +3640,8 @@ FABB207E2602FC2C00C8785C /* EpilogueUserInfoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98086559203D075D00D58786 /* EpilogueUserInfoCell.xib */; }; FABB207F2602FC2C00C8785C /* ReaderTagStreamHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = E6D2E1601B8AA4410000ED14 /* ReaderTagStreamHeader.xib */; }; FABB20812602FC2C00C8785C /* PostCompactCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 577C2AB52294401800AD1F03 /* PostCompactCell.xib */; }; - FABB20832602FC2C00C8785C /* WidgetUnconfiguredCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 989064FC237CC1DE00218CD2 /* WidgetUnconfiguredCell.xib */; }; FABB20862602FC2C00C8785C /* n.caf in Resources */ = {isa = PBXBuildFile; fileRef = 5D69DBC3165428CA00A2D1F7 /* n.caf */; }; FABB20882602FC2C00C8785C /* People.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E1B912801BB00EFD003C25B9 /* People.storyboard */; }; - FABB208A2602FC2C00C8785C /* WidgetNoConnectionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98712D1A23DA1C7E00555316 /* WidgetNoConnectionCell.xib */; }; FABB208B2602FC2C00C8785C /* LatestPostSummaryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9826AE8121B5C6A700C851FA /* LatestPostSummaryCell.xib */; }; FABB208D2602FC2C00C8785C /* RestorePostTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5D2FB2821AE98C4600F1D4ED /* RestorePostTableViewCell.xib */; }; FABB208E2602FC2C00C8785C /* Plans.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1724DDCB1C6121D00099D273 /* Plans.storyboard */; }; @@ -3789,7 +3672,6 @@ FABB20AF2602FC2C00C8785C /* StatsGhostTabbedCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A9E3FB1230EB74300909BC4 /* StatsGhostTabbedCell.xib */; }; FABB20B02602FC2C00C8785C /* CategorySectionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 469CE06C24BCED75003BDC8B /* CategorySectionTableViewCell.xib */; }; FABB20B22602FC2C00C8785C /* ExpandableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4034FDED2007D4F700153B87 /* ExpandableCell.xib */; }; - FABB20B42602FC2C00C8785C /* WidgetUrlCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */; }; FABB20B52602FC2C00C8785C /* richEmbedScript.js in Resources */ = {isa = PBXBuildFile; fileRef = E61507E32220A13B00213D33 /* richEmbedScript.js */; }; FABB20B72602FC2C00C8785C /* PluginListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 401A3D012027DBD80099A127 /* PluginListCell.xib */; }; FABB20B82602FC2C00C8785C /* SiteStatsDashboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 981C348F2183871100FC2683 /* SiteStatsDashboard.storyboard */; }; @@ -4046,7 +3928,6 @@ FABB21BC2602FC2C00C8785C /* MediaNoticeNavigationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1750BD6C201144DB0050F13A /* MediaNoticeNavigationCoordinator.swift */; }; FABB21BD2602FC2C00C8785C /* ReaderPostToReaderPost37to38.swift in Sources */ = {isa = PBXBuildFile; fileRef = E66969E31B9E68B200EC9C00 /* ReaderPostToReaderPost37to38.swift */; }; FABB21BE2602FC2C00C8785C /* ReaderRelatedPostsSectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6FAB3425EF7C5700666CED /* ReaderRelatedPostsSectionHeaderView.swift */; }; - FABB21BF2602FC2C00C8785C /* WidgetNoConnectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98712D1923DA1C7E00555316 /* WidgetNoConnectionCell.swift */; }; FABB21C02602FC2C00C8785C /* AppRatingUtilityType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E58879F20FE956100DB6F80 /* AppRatingUtilityType.swift */; }; FABB21C12602FC2C00C8785C /* MenuItemSourceFooterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 08216FBD1CDBF96000304BA7 /* MenuItemSourceFooterView.m */; }; FABB21C22602FC2C00C8785C /* JetpackRestoreFailedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD951A325B6CB3600F011B5 /* JetpackRestoreFailedViewController.swift */; }; @@ -4126,7 +4007,6 @@ FABB220F2602FC2C00C8785C /* MediaHost+AbstractPost.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11C9F75243B3C5E00921DDC /* MediaHost+AbstractPost.swift */; }; FABB22102602FC2C00C8785C /* PageTemplateCategory+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46183D1E251BD6A0004F9AFD /* PageTemplateCategory+CoreDataProperties.swift */; }; FABB22112602FC2C00C8785C /* MyProfileHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1CCB2C204DDD18000EE3AC /* MyProfileHeaderView.swift */; }; - FABB22122602FC2C00C8785C /* WidgetUnconfiguredCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FB237CC1DE00218CD2 /* WidgetUnconfiguredCell.swift */; }; FABB22132602FC2C00C8785C /* BlogSiteVisibilityHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDA7E4F1B8DF6E500B83C56 /* BlogSiteVisibilityHelper.m */; }; FABB22142602FC2C00C8785C /* TitleBadgeDisclosureCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E66E2A671FE432B900788F22 /* TitleBadgeDisclosureCell.swift */; }; FABB22152602FC2C00C8785C /* FormattableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E4123B220F4097A00DF8486 /* FormattableContent.swift */; }; @@ -4166,7 +4046,6 @@ FABB22372602FC2C00C8785C /* JetpackRestoreStatusCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAB8AB5E25AFFD0600F9F8A0 /* JetpackRestoreStatusCoordinator.swift */; }; FABB22382602FC2C00C8785C /* EventLoggingDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F913BB0D24B3C58B00C19032 /* EventLoggingDelegate.swift */; }; FABB22392602FC2C00C8785C /* TodayStatsRecordValue+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4089C50E22371B120031CE78 /* TodayStatsRecordValue+CoreDataClass.swift */; }; - FABB223A2602FC2C00C8785C /* WidgetUrlCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988F073323D0CE8800AC67A6 /* WidgetUrlCell.swift */; }; FABB223B2602FC2C00C8785C /* AbstractPost+Searchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74729CAD205722E300D1394D /* AbstractPost+Searchable.swift */; }; FABB223C2602FC2C00C8785C /* EditCommentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2906F810110CDA8900169D56 /* EditCommentViewController.m */; }; FABB223D2602FC2C00C8785C /* ThisWeekWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F93181239AF64800E4E96E /* ThisWeekWidgetStats.swift */; }; @@ -4295,7 +4174,6 @@ FABB22BD2602FC2C00C8785C /* WPTableViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D6C4B071B603E03005E3C43 /* WPTableViewHandler.m */; }; FABB22BE2602FC2C00C8785C /* JetpackScanThreatViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C78543D125B889CC006CEAFB /* JetpackScanThreatViewModel.swift */; }; FABB22BF2602FC2C00C8785C /* PublicizeConnectionStatsRecordValue+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40EE947D2213213F00CD264F /* PublicizeConnectionStatsRecordValue+CoreDataClass.swift */; }; - FABB22C02602FC2C00C8785C /* SchedulingCalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5660CFF235CE82100020B1E /* SchedulingCalendarViewController.swift */; }; FABB22C12602FC2C00C8785C /* DomainsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1702BBDF1CF3034E00766A33 /* DomainsService.swift */; }; FABB22C22602FC2C00C8785C /* PasswordAlertController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B1CF00E2433902700578582 /* PasswordAlertController.swift */; }; FABB22C32602FC2C00C8785C /* ReaderTagsFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7F92B725E61C7E00502D2A /* ReaderTagsFooter.swift */; }; @@ -4495,8 +4373,6 @@ FABB238D2602FC2C00C8785C /* WPStyleGuide+SiteCreation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B560914B208A671E00399AE4 /* WPStyleGuide+SiteCreation.swift */; }; FABB238E2602FC2C00C8785C /* NotificationSettingsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5EFB1C11B31B98E007608A3 /* NotificationSettingsService.swift */; }; FABB238F2602FC2C00C8785C /* WPButtonForNavigationBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 5903AE1A19B60A98009D5354 /* WPButtonForNavigationBar.m */; }; - FABB23902602FC2C00C8785C /* WidgetDifferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989643EA23A0437B0070720A /* WidgetDifferenceCell.swift */; }; - FABB23912602FC2C00C8785C /* WidgetTwoColumnCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989064FD237CC1DE00218CD2 /* WidgetTwoColumnCell.swift */; }; FABB23922602FC2C00C8785C /* UIImage+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C4EC9207C5E1900E32E4D /* UIImage+Assets.swift */; }; FABB23932602FC2C00C8785C /* LoadMoreCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E684383D221F535900752258 /* LoadMoreCounter.swift */; }; FABB23942602FC2C00C8785C /* LoginEpilogueUserInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6158AC91ECDF518005FA441 /* LoginEpilogueUserInfo.swift */; }; @@ -5176,17 +5052,11 @@ FAD2539026116A1600EDAF88 /* AppStyleGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD2538E26116A1600EDAF88 /* AppStyleGuide.swift */; }; FAD2539126116A1600EDAF88 /* AppStyleGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD2538E26116A1600EDAF88 /* AppStyleGuide.swift */; }; FAD2544226116CEA00EDAF88 /* AppStyleGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD2544126116CEA00EDAF88 /* AppStyleGuide.swift */; }; - FAD2566C2611AEC300EDAF88 /* AppStyleGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD2538E26116A1600EDAF88 /* AppStyleGuide.swift */; }; - FAD2566D2611AEC500EDAF88 /* AppStyleGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD2538E26116A1600EDAF88 /* AppStyleGuide.swift */; }; - FAD2566E2611AEC600EDAF88 /* AppStyleGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD2538E26116A1600EDAF88 /* AppStyleGuide.swift */; }; FAD2566F2611AEC700EDAF88 /* AppStyleGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD2538E26116A1600EDAF88 /* AppStyleGuide.swift */; }; FAD256932611B01700EDAF88 /* UIColor+WordPressColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD256922611B01700EDAF88 /* UIColor+WordPressColors.swift */; }; FAD256A62611B01A00EDAF88 /* UIColor+WordPressColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD256922611B01700EDAF88 /* UIColor+WordPressColors.swift */; }; FAD256B82611B01B00EDAF88 /* UIColor+WordPressColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD256922611B01700EDAF88 /* UIColor+WordPressColors.swift */; }; - FAD256CA2611B01C00EDAF88 /* UIColor+WordPressColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD256922611B01700EDAF88 /* UIColor+WordPressColors.swift */; }; - FAD256EE2611B01F00EDAF88 /* UIColor+WordPressColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD256922611B01700EDAF88 /* UIColor+WordPressColors.swift */; }; FAD257132611B04D00EDAF88 /* UIColor+JetpackColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD257112611B04D00EDAF88 /* UIColor+JetpackColors.swift */; }; - FAD257F42611B54100EDAF88 /* UIColor+WordPressColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD256922611B01700EDAF88 /* UIColor+WordPressColors.swift */; }; FAD257F52611B54200EDAF88 /* UIColor+WordPressColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD256922611B01700EDAF88 /* UIColor+WordPressColors.swift */; }; FAD9457E25B5647B00F011B5 /* JetpackBackupOptionsCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD9457D25B5647B00F011B5 /* JetpackBackupOptionsCoordinator.swift */; }; FAD9458E25B5678700F011B5 /* JetpackRestoreWarningCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAD9458D25B5678700F011B5 /* JetpackRestoreWarningCoordinator.swift */; }; @@ -5432,34 +5302,6 @@ remoteGlobalIDString = 932225A61C7CE50300443B02; remoteInfo = WordPressShare; }; - 93E5284419A7741A003A1A9C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 93E5283919A7741A003A1A9C; - remoteInfo = WordPressTodayWidget; - }; - 93E5284719A7741A003A1A9C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 93E5283919A7741A003A1A9C; - remoteInfo = WordPressTodayWidget; - }; - 98A3C2F8239997DA0048D38D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 98A3C2EE239997DA0048D38D; - remoteInfo = WordPressThisWeekWidget; - }; - 98D31B972396ED7F009CFF43 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 98D31B8D2396ED7E009CFF43; - remoteInfo = WordPressAllTimeWidget; - }; E16AB93E14D978520047A2E5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -5497,13 +5339,10 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( - 98A3C2FA239997DA0048D38D /* WordPressThisWeekWidget.appex in Embed Foundation Extensions */, 7457667C202B558C00F42E40 /* WordPressDraftActionExtension.appex in Embed Foundation Extensions */, F1F163D625658B4D003DC13B /* WordPressIntents.appex in Embed Foundation Extensions */, 7358E6BF210BD318002323EB /* WordPressNotificationServiceExtension.appex in Embed Foundation Extensions */, - 98D31B992396ED7F009CFF43 /* WordPressAllTimeWidget.appex in Embed Foundation Extensions */, 932225B11C7CE50300443B02 /* WordPressShareExtension.appex in Embed Foundation Extensions */, - 93E5284619A7741A003A1A9C /* WordPressTodayWidget.appex in Embed Foundation Extensions */, 3F526C5C2538CF2B0069706C /* WordPressStatsWidgets.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; @@ -5527,7 +5366,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0075A07B739C4EDB5EC613B8 /* Pods_WordPressAllTimeWidget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressAllTimeWidget.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0107E0EA28F97D5000DE87DB /* JetpackStatsWidgets.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = JetpackStatsWidgets.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 0107E15428FE9DB200DE87DB /* JetpackIntents.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = JetpackIntents.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 0107E15C28FFE99300DE87DB /* WidgetConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetConfiguration.swift; sourceTree = ""; }; @@ -5727,13 +5565,10 @@ 09C8BB8327DFF9CB00974175 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; }; 09C8BB8427DFF9CC00974175 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; }; 09F367D2BE684EDE2E4A40E3 /* Pods-WordPressDraftActionExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressDraftActionExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressDraftActionExtension/Pods-WordPressDraftActionExtension.debug.xcconfig"; sourceTree = ""; }; - 0A27D496128FBCDFA3658994 /* Pods-WordPressHomeWidgetToday.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressHomeWidgetToday.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressHomeWidgetToday/Pods-WordPressHomeWidgetToday.release-internal.xcconfig"; sourceTree = ""; }; 0A3FCA1C28B71CBC00499A15 /* FullScreenCommentReplyViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FullScreenCommentReplyViewModel.swift; sourceTree = ""; }; 0A69300A28B5AA5E00E98DE1 /* FullScreenCommentReplyViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullScreenCommentReplyViewModelTests.swift; sourceTree = ""; }; 0A9610F828B2E56300076EBA /* UserSuggestion+Comparable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserSuggestion+Comparable.swift"; sourceTree = ""; }; 0A9687BB28B40771009DCD2F /* FullScreenCommentReplyViewModelMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullScreenCommentReplyViewModelMock.swift; sourceTree = ""; }; - 0EAD25F1E69B6B91783C4963 /* Pods-WordPressAllTimeWidget.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAllTimeWidget.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAllTimeWidget/Pods-WordPressAllTimeWidget.debug.xcconfig"; sourceTree = ""; }; - 0F01F606071B0B9BD9DB34DE /* Pods-WordPressTodayWidget.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTodayWidget.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTodayWidget/Pods-WordPressTodayWidget.release-alpha.xcconfig"; sourceTree = ""; }; 10BBFF34EBDA2F9B8CB48DF6 /* Pods-WordPressUITests.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressUITests.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressUITests/Pods-WordPressUITests.release-internal.xcconfig"; sourceTree = ""; }; 131D0EE49695795ECEDAA446 /* Pods-WordPressTest.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.release-alpha.xcconfig"; sourceTree = ""; }; 150B6590614A28DF9AD25491 /* Pods-Apps-Jetpack.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release-alpha.xcconfig"; sourceTree = ""; }; @@ -6107,11 +5942,9 @@ 32F2565F25012D3F006B8BC4 /* LinearGradientView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinearGradientView.swift; sourceTree = ""; }; 33D5016BDA00B45DFCAF3818 /* Pods-WordPressNotificationServiceExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressNotificationServiceExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension.release-internal.xcconfig"; sourceTree = ""; }; 33E5165A9AB08C676380FA34 /* Pods-JetpackNotificationServiceExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackNotificationServiceExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackNotificationServiceExtension/Pods-JetpackNotificationServiceExtension.debug.xcconfig"; sourceTree = ""; }; - 368127CE6F1CA15EC198147D /* Pods-WordPressTodayWidget.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTodayWidget.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTodayWidget/Pods-WordPressTodayWidget.debug.xcconfig"; sourceTree = ""; }; 37022D8F1981BF9200F322B7 /* VerticallyStackedButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VerticallyStackedButton.h; sourceTree = ""; }; 37022D901981BF9200F322B7 /* VerticallyStackedButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VerticallyStackedButton.m; sourceTree = ""; }; 374CB16115B93C0800DD0EBC /* AudioToolbox.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 37E3F5EA2ED7005A5E0BBEC3 /* Pods-WordPressTodayWidget.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTodayWidget.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTodayWidget/Pods-WordPressTodayWidget.release.xcconfig"; sourceTree = ""; }; 37EAAF4C1A11799A006D6306 /* CircularImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircularImageView.swift; sourceTree = ""; }; 3AB6A3B516053EA8D0BC3B17 /* Pods-JetpackStatsWidgets.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.release-alpha.xcconfig"; sourceTree = ""; }; 3C8DE270EF0498A2129349B0 /* Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackNotificationServiceExtension/Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig"; sourceTree = ""; }; @@ -6329,7 +6162,6 @@ 40EE947D2213213F00CD264F /* PublicizeConnectionStatsRecordValue+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PublicizeConnectionStatsRecordValue+CoreDataClass.swift"; sourceTree = ""; }; 40EE947E2213213F00CD264F /* PublicizeConnectionStatsRecordValue+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PublicizeConnectionStatsRecordValue+CoreDataProperties.swift"; sourceTree = ""; }; 40EE948122132F5800CD264F /* PublicizeConectionStatsRecordValueTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicizeConectionStatsRecordValueTests.swift; sourceTree = ""; }; - 40F031E19B32BAF8654838C0 /* Pods-WordPressThisWeekWidget.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressThisWeekWidget.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressThisWeekWidget/Pods-WordPressThisWeekWidget.release-alpha.xcconfig"; sourceTree = ""; }; 40F46B6822121BA800A2143B /* AnnualAndMostPopularTimeStatsRecordValue+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AnnualAndMostPopularTimeStatsRecordValue+CoreDataClass.swift"; sourceTree = ""; }; 40F46B6922121BA800A2143B /* AnnualAndMostPopularTimeStatsRecordValue+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AnnualAndMostPopularTimeStatsRecordValue+CoreDataProperties.swift"; sourceTree = ""; }; 40F50B7B22130E6C00CBBB73 /* FollowersStatsRecordValue+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FollowersStatsRecordValue+CoreDataClass.swift"; sourceTree = ""; }; @@ -6337,7 +6169,6 @@ 40F50B7F221310D400CBBB73 /* FollowersStatsRecordValueTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FollowersStatsRecordValueTests.swift; sourceTree = ""; }; 40F50B81221310F000CBBB73 /* StatsTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsTestCase.swift; sourceTree = ""; }; 40FC6B7E2072E3EB00B9A1CD /* ActivityDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetailViewController.swift; sourceTree = ""; }; - 41341F0000A9A65A3326F2EC /* Pods-WordPressAllTimeWidget.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAllTimeWidget.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAllTimeWidget/Pods-WordPressAllTimeWidget.release-internal.xcconfig"; sourceTree = ""; }; 430693731DD25F31009398A2 /* PostPost.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = PostPost.storyboard; sourceTree = ""; }; 430D50BD212B7AAE008F15F4 /* NoticeStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeStyle.swift; sourceTree = ""; }; 430F7B409FE22699ADB1A724 /* Pods_JetpackDraftActionExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackDraftActionExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -6525,7 +6356,6 @@ 5903AE1C19B60AB9009D5354 /* WPButtonForNavigationBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WPButtonForNavigationBar.h; sourceTree = ""; usesTabs = 0; }; 590E873A1CB8205700D1B734 /* PostListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostListViewController.swift; sourceTree = ""; }; 591232681CCEAA5100B86207 /* AbstractPostListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = AbstractPostListViewController.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 591252291A38AE9C00468279 /* TodayWidgetPrefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TodayWidgetPrefix.pch; sourceTree = ""; }; 591A428D1A6DC6F2003807A6 /* WPGUIConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPGUIConstants.h; sourceTree = ""; }; 591A428E1A6DC6F2003807A6 /* WPGUIConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPGUIConstants.m; sourceTree = ""; }; 591AA4FF1CEF9BF20074934F /* Post.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Post.swift; sourceTree = ""; }; @@ -6651,7 +6481,6 @@ 5DFA7EC61AF814E40072023B /* PageListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PageListTableViewCell.xib; sourceTree = ""; }; 5E48AA7F709A5B0F2318A7E3 /* Pods-JetpackDraftActionExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackDraftActionExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackDraftActionExtension/Pods-JetpackDraftActionExtension.release-internal.xcconfig"; sourceTree = ""; }; 67832AB9D81652460A80BE66 /* Pods-Apps-Jetpack.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release-internal.xcconfig"; sourceTree = ""; }; - 6A9F41AAF18FB527262CC57C /* Pods-WordPressAllTimeWidget.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAllTimeWidget.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAllTimeWidget/Pods-WordPressAllTimeWidget.release.xcconfig"; sourceTree = ""; }; 6C1B070FAD875CA331772B57 /* Pods-WordPressStatsWidgets.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressStatsWidgets.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressStatsWidgets/Pods-WordPressStatsWidgets.release-alpha.xcconfig"; sourceTree = ""; }; 6E5BA46826A59D620043A6F2 /* SupportScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportScreenTests.swift; sourceTree = ""; }; 6EC71EC22689A67400ACC0A0 /* SupportScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportScreen.swift; sourceTree = ""; }; @@ -6807,7 +6636,6 @@ 75305C06D345590B757E3890 /* Pods-Apps-WordPress.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.debug.xcconfig"; sourceTree = ""; }; 7D21280C251CF0850086DD2C /* EditPageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditPageViewController.swift; sourceTree = ""; }; 7D4D980C25FFE7E600C282E6 /* WordPress 116.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 116.xcdatamodel"; sourceTree = ""; }; - 7DFD69454E24EC0A1A0BACCD /* Pods-WordPressThisWeekWidget.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressThisWeekWidget.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressThisWeekWidget/Pods-WordPressThisWeekWidget.release.xcconfig"; sourceTree = ""; }; 7E14635620B3BEAB00B95F41 /* WPStyleGuide+Loader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Loader.swift"; sourceTree = ""; }; 7E21C760202BBC8D00837CF5 /* iAd.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iAd.framework; path = System/Library/Frameworks/iAd.framework; sourceTree = SDKROOT; }; 7E21C764202BBF4400837CF5 /* SearchAdsAttribution.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SearchAdsAttribution.swift; path = iAds/SearchAdsAttribution.swift; sourceTree = ""; }; @@ -7012,10 +6840,8 @@ 8511CFC41C60884400B7CEED /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = ""; }; 8511CFC61C60894200B7CEED /* WordPressScreenshotGeneration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WordPressScreenshotGeneration.swift; sourceTree = ""; }; 8527B15717CE98C5001CBA2E /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; - 8546B44A1BEAD3B300193C07 /* Info-Alpha.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Alpha.plist"; sourceTree = ""; }; 8546B44C1BEAD3EC00193C07 /* Wordpress-Alpha-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Wordpress-Alpha-Info.plist"; sourceTree = ""; }; 8546B44E1BEAD48900193C07 /* WordPress-Alpha.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "WordPress-Alpha.entitlements"; sourceTree = ""; }; - 8546B4501BEAD4D100193C07 /* WordPressTodayWidget-Alpha.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "WordPressTodayWidget-Alpha.entitlements"; sourceTree = ""; }; 855408851A6F105700DDBD79 /* app-review-prompt-all-enabled.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "app-review-prompt-all-enabled.json"; sourceTree = ""; }; 855408871A6F106800DDBD79 /* app-review-prompt-notifications-disabled.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "app-review-prompt-notifications-disabled.json"; sourceTree = ""; }; 855408891A6F107D00DDBD79 /* app-review-prompt-global-disable.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "app-review-prompt-global-disable.json"; sourceTree = ""; }; @@ -7142,11 +6968,9 @@ 8BFE36FC230F16580061EBA8 /* AbstractPost+fixLocalMediaURLs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AbstractPost+fixLocalMediaURLs.swift"; sourceTree = ""; }; 8BFE36FE230F1C850061EBA8 /* AbstractPost+fixLocalMediaURLsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AbstractPost+fixLocalMediaURLsTests.swift"; sourceTree = ""; }; 8C6A22E325783D2000A79950 /* JetpackScanService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackScanService.swift; sourceTree = ""; }; - 8CE5BBD00FF1470AC4B88247 /* Pods_WordPressTodayWidget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressTodayWidget.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8DCE7542239FBC709B90EA85 /* Pods_WordPressUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8DE205D2AC15F16289E7D21A /* Pods-WordPressDraftActionExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressDraftActionExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressDraftActionExtension/Pods-WordPressDraftActionExtension.release.xcconfig"; sourceTree = ""; }; - 8E65034AFB7DC85D70CCC064 /* Pods-WordPressThisWeekWidget.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressThisWeekWidget.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressThisWeekWidget/Pods-WordPressThisWeekWidget.release-internal.xcconfig"; sourceTree = ""; }; 8F2283367263B37B0681F988 /* TimeZoneSelectorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeZoneSelectorViewController.swift; sourceTree = ""; }; 8F228848D5DEACE6798CE7E2 /* TimeZoneSearchHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeZoneSearchHeaderView.swift; sourceTree = ""; }; 8F228AE62B771552F0F971BE /* TimeZoneSearchHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TimeZoneSearchHeaderView.xib; sourceTree = ""; }; @@ -7189,7 +7013,6 @@ 931F312B2714302A0075433B /* PublicizeServicesState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicizeServicesState.swift; sourceTree = ""; }; 932225A71C7CE50300443B02 /* WordPressShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = WordPressShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 932645A31E7C206600134988 /* GutenbergSettingsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GutenbergSettingsTests.swift; sourceTree = ""; }; - 93267A6019B896CD00997EB8 /* Info-Internal.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Internal.plist"; sourceTree = ""; }; 933D1F451EA64108009FB462 /* TestingAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestingAppDelegate.h; sourceTree = ""; }; 933D1F461EA64108009FB462 /* TestingAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestingAppDelegate.m; sourceTree = ""; }; 933D1F6B1EA7A3AB009FB462 /* TestingMode.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = TestingMode.storyboard; sourceTree = ""; }; @@ -7198,7 +7021,6 @@ 934098C2271957A600B3E77E /* SiteStatsInsightsDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteStatsInsightsDelegate.swift; sourceTree = ""; }; 93414DE41E2D25AE003143A3 /* PostEditorState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = PostEditorState.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; 93460A36189D5091000E26CE /* WordPress 14.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 14.xcdatamodel"; sourceTree = ""; }; - 934884AC19B78723004028D8 /* WordPressTodayWidget-Internal.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "WordPressTodayWidget-Internal.entitlements"; sourceTree = ""; }; 934884AE19B7875C004028D8 /* WordPress-Internal.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "WordPress-Internal.entitlements"; sourceTree = ""; }; 934F1B3119ACCE5600E9E63E /* WordPress.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = WordPress.entitlements; sourceTree = ""; }; 93594BD4191D2F5A0079E6B2 /* stats-batch.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "stats-batch.json"; sourceTree = ""; }; @@ -7232,7 +7054,6 @@ 93C1147E18EC5DD500DAC95C /* AccountService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccountService.m; sourceTree = ""; }; 93C1148318EDF6E100DAC95C /* BlogService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlogService.h; sourceTree = ""; }; 93C1148418EDF6E100DAC95C /* BlogService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BlogService.m; sourceTree = ""; }; - 93C2075C1CC7FFC800C94D04 /* Tracks+TodayWidget.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Tracks+TodayWidget.swift"; sourceTree = ""; }; 93C3C2561CAB031E0092F837 /* Info-Internal.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Info-Internal.plist"; path = "WordPressShareExtension/Info-Internal.plist"; sourceTree = SOURCE_ROOT; }; 93C3C2581CAB032C0092F837 /* Info-Alpha.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Info-Alpha.plist"; path = "WordPressShareExtension/Info-Alpha.plist"; sourceTree = SOURCE_ROOT; }; 93C882981EEB18D700227A59 /* html_page_with_link_to_rsd_non_standard.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = html_page_with_link_to_rsd_non_standard.html; sourceTree = ""; }; @@ -7245,13 +7066,7 @@ 93D86B941C63EC31003D8E3E /* en-CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-CA"; path = "en-CA.lproj/Localizable.strings"; sourceTree = ""; }; 93DEB88019E5BF7100F9546D /* TodayExtensionService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayExtensionService.h; sourceTree = ""; }; 93DEB88119E5BF7100F9546D /* TodayExtensionService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayExtensionService.m; sourceTree = ""; }; - 93E5283A19A7741A003A1A9C /* WordPressTodayWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = WordPressTodayWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 93E5283B19A7741A003A1A9C /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; }; - 93E5283F19A7741A003A1A9C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 93E5284019A7741A003A1A9C /* TodayViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayViewController.swift; sourceTree = ""; }; - 93E5284219A7741A003A1A9C /* MainInterface.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainInterface.storyboard; sourceTree = ""; }; - 93E5284F19A77824003A1A9C /* WordPressTodayWidget-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressTodayWidget-Bridging-Header.h"; sourceTree = ""; }; - 93E5285719A7AA5C003A1A9C /* WordPressTodayWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = WordPressTodayWidget.entitlements; sourceTree = ""; }; 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueChooseSiteTableViewCell.swift; sourceTree = ""; }; 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueDividerView.swift; sourceTree = ""; }; 93E6336E272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueCreateNewSiteCell.swift; sourceTree = ""; }; @@ -7268,7 +7083,6 @@ 93FA0F0218E451A80007903B /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.md; path = ../README.md; sourceTree = ""; }; 93FA59DB18D88C1C001446BC /* PostCategoryService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = PostCategoryService.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 93FA59DC18D88C1C001446BC /* PostCategoryService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = PostCategoryService.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - 979B445A45E13F3289F2E99E /* Pods_WordPressThisWeekWidget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressThisWeekWidget.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9801E681274EEBC4002FDDB6 /* ReaderDetailCommentsHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderDetailCommentsHeader.swift; sourceTree = ""; }; 9801E684274EEC19002FDDB6 /* ReaderDetailCommentsHeader.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ReaderDetailCommentsHeader.xib; sourceTree = ""; }; 98035B7225C49CC1002C0EB4 /* WordPress 112.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 112.xcdatamodel"; sourceTree = ""; }; @@ -7352,8 +7166,6 @@ 986CC4D120E1B2F6004F300E /* CustomLogFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomLogFormatter.swift; sourceTree = ""; }; 986DD19B218D002500D28061 /* WPStyleGuide+Stats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Stats.swift"; sourceTree = ""; }; 987044AD268A9A5300BD0571 /* WordPress 126.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 126.xcdatamodel"; sourceTree = ""; }; - 98712D1923DA1C7E00555316 /* WidgetNoConnectionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetNoConnectionCell.swift; sourceTree = ""; }; - 98712D1A23DA1C7E00555316 /* WidgetNoConnectionCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WidgetNoConnectionCell.xib; sourceTree = ""; }; 9872CB2F203B8A730066A293 /* SignupEpilogueTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignupEpilogueTableViewController.swift; sourceTree = ""; }; 9872EA6826B9EE38009F795B /* WordPress 130.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 130.xcdatamodel"; sourceTree = ""; }; 9874766E219630240080967F /* SiteStatsTableViewCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteStatsTableViewCells.swift; sourceTree = ""; }; @@ -7379,33 +7191,15 @@ 988AC37422F10DD900BC1433 /* FileDownloadsStatsRecordValue+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileDownloadsStatsRecordValue+CoreDataProperties.swift"; sourceTree = ""; }; 988AC37822F10E2C00BC1433 /* FileDownloadsStatsRecordValue+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileDownloadsStatsRecordValue+CoreDataClass.swift"; sourceTree = ""; }; 988AD63726B089CE003552B4 /* WordPress 128.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 128.xcdatamodel"; sourceTree = ""; }; - 988F073323D0CE8800AC67A6 /* WidgetUrlCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetUrlCell.swift; sourceTree = ""; }; - 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WidgetUrlCell.xib; sourceTree = ""; }; 988FD749279B75A400C7E814 /* NotificationCommentDetailCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCommentDetailCoordinator.swift; sourceTree = ""; }; - 989064FB237CC1DE00218CD2 /* WidgetUnconfiguredCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WidgetUnconfiguredCell.swift; sourceTree = ""; }; - 989064FC237CC1DE00218CD2 /* WidgetUnconfiguredCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WidgetUnconfiguredCell.xib; sourceTree = ""; }; - 989064FD237CC1DE00218CD2 /* WidgetTwoColumnCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WidgetTwoColumnCell.swift; sourceTree = ""; }; - 989064FE237CC1DE00218CD2 /* WidgetTwoColumnCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WidgetTwoColumnCell.xib; sourceTree = ""; }; 98921EF621372E12004949AA /* MediaCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaCoordinator.swift; sourceTree = ""; }; 9895401026C1F39300EDEB5A /* EditCommentTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditCommentTableViewController.swift; sourceTree = ""; }; 9895B6DF21ED49160053D370 /* TopTotalsCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TopTotalsCell.xib; sourceTree = ""; }; - 989643EA23A0437B0070720A /* WidgetDifferenceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetDifferenceCell.swift; sourceTree = ""; }; - 989643EB23A0437B0070720A /* WidgetDifferenceCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WidgetDifferenceCell.xib; sourceTree = ""; }; 98991A1125AE653D00B3BBAC /* WordPress 111.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 111.xcdatamodel"; sourceTree = ""; }; 98A047712821CEBF001B4E2D /* BloggingPromptsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingPromptsViewController.swift; sourceTree = ""; }; 98A047742821D069001B4E2D /* BloggingPromptsViewController.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = BloggingPromptsViewController.storyboard; sourceTree = ""; }; 98A25BD0203CB25F006A5807 /* SignupEpilogueCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupEpilogueCell.swift; sourceTree = ""; }; 98A25BD2203CB278006A5807 /* SignupEpilogueCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SignupEpilogueCell.xib; sourceTree = ""; }; - 98A3C2EF239997DA0048D38D /* WordPressThisWeekWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = WordPressThisWeekWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 98A3C2F7239997DA0048D38D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 98A3C3002399A1850048D38D /* MainInterface.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainInterface.storyboard; sourceTree = ""; }; - 98A3C3032399A2370048D38D /* WordPressThisWeekWidget-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressThisWeekWidget-Bridging-Header.h"; sourceTree = ""; }; - 98A3C3042399A2370048D38D /* ThisWeekViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThisWeekViewController.swift; sourceTree = ""; }; - 98A3C3072399A57D0048D38D /* Info-Alpha.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Alpha.plist"; sourceTree = ""; }; - 98A3C3082399A57D0048D38D /* Info-Internal.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Internal.plist"; sourceTree = ""; }; - 98A3C30B2399A6570048D38D /* WordPressThisWeekWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WordPressThisWeekWidget.entitlements; sourceTree = ""; }; - 98A3C30C2399A6570048D38D /* WordPressThisWeekWidget-Alpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressThisWeekWidget-Alpha.entitlements"; sourceTree = ""; }; - 98A3C30D2399A6580048D38D /* WordPressThisWeekWidget-Internal.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressThisWeekWidget-Internal.entitlements"; sourceTree = ""; }; 98AA22BC25082A86005CCC13 /* PrologueScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrologueScreen.swift; sourceTree = ""; }; 98AA22BE25082B1E005CCC13 /* GetStartedScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetStartedScreen.swift; sourceTree = ""; }; 98AA6D1026B8CE7200920C8B /* Comment+CoreDataClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Comment+CoreDataClass.swift"; sourceTree = ""; }; @@ -7429,32 +7223,16 @@ 98BDFF6A20D0732900C72C58 /* SupportTableViewController+Activity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SupportTableViewController+Activity.swift"; sourceTree = ""; }; 98BFF57D23984344008A1DCB /* AllTimeWidgetStats.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AllTimeWidgetStats.swift; sourceTree = ""; }; 98CAD295221B4ED1003E8F45 /* StatSection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatSection.swift; sourceTree = ""; }; - 98D31B8E2396ED7E009CFF43 /* WordPressAllTimeWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = WordPressAllTimeWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 98D31B962396ED7F009CFF43 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 98D31BA02396F417009CFF43 /* Info-Alpha.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Alpha.plist"; sourceTree = ""; }; - 98D31BA12396F417009CFF43 /* Info-Internal.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Internal.plist"; sourceTree = ""; }; - 98D31BA22396F5C1009CFF43 /* WordPressAllTimeWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WordPressAllTimeWidget.entitlements; sourceTree = ""; }; - 98D31BA32396F5C1009CFF43 /* WordPressAllTimeWidget-Alpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressAllTimeWidget-Alpha.entitlements"; sourceTree = ""; }; - 98D31BA42396F5C2009CFF43 /* WordPressAllTimeWidget-Internal.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressAllTimeWidget-Internal.entitlements"; sourceTree = ""; }; - 98D31BA52396F7BF009CFF43 /* AllTimeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AllTimeViewController.swift; sourceTree = ""; }; - 98D31BA82396FAD2009CFF43 /* WordPressAllTimeWidget-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "WordPressAllTimeWidget-Bridging-Header.h"; sourceTree = ""; }; - 98D31BA92396FBDC009CFF43 /* AllTimeWidgetPrefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AllTimeWidgetPrefix.pch; sourceTree = ""; }; - 98D31BAB23970078009CFF43 /* Tracks+AllTimeWidget.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Tracks+AllTimeWidget.swift"; sourceTree = ""; }; 98D52C3022B1CFEB00831529 /* StatsTwoColumnRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatsTwoColumnRow.swift; sourceTree = ""; }; 98D52C3122B1CFEC00831529 /* StatsTwoColumnRow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = StatsTwoColumnRow.xib; sourceTree = ""; }; 98DCF4A3275945DF0008630F /* ReaderDetailNoCommentCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderDetailNoCommentCell.swift; sourceTree = ""; }; 98DCF4A4275945DF0008630F /* ReaderDetailNoCommentCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ReaderDetailNoCommentCell.xib; sourceTree = ""; }; 98DD1EF2263337C400CF0440 /* WordPress 122.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 122.xcdatamodel"; sourceTree = ""; }; - 98DE9A9E239835C800A88D01 /* MainInterface.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainInterface.storyboard; sourceTree = ""; }; 98E0829E2637545C00537BF1 /* PostService+Likes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PostService+Likes.swift"; sourceTree = ""; }; 98E14A3B27C9712D007B0896 /* NotificationCommentDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCommentDetailViewController.swift; sourceTree = ""; }; - 98E419DD2399B5A700D8C822 /* Tracks+ThisWeekWidget.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Tracks+ThisWeekWidget.swift"; sourceTree = ""; }; - 98E419E02399B6C300D8C822 /* ThisWeekWidgetPrefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThisWeekWidgetPrefix.pch; sourceTree = ""; }; 98E54FF1265C972900B4BE9A /* ReaderDetailLikesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderDetailLikesView.swift; sourceTree = ""; }; 98E55018265C977E00B4BE9A /* ReaderDetailLikesView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderDetailLikesView.xib; sourceTree = ""; }; 98E58A2E2360D23400E5534B /* TodayWidgetStats.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodayWidgetStats.swift; sourceTree = ""; }; - 98E58A412361017500E5534B /* Pods_WordPressTodayWidget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Pods_WordPressTodayWidget.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 98E58A432361019300E5534B /* Pods_WordPressTodayWidget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Pods_WordPressTodayWidget.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 98E5D4912620C2B40074A56A /* UserProfileSectionHeader.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UserProfileSectionHeader.xib; sourceTree = ""; }; 98EB126920D2DC2500D2D5B5 /* NoResultsViewController+Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NoResultsViewController+Model.swift"; sourceTree = ""; }; 98ED5962265EBD0000A0B33E /* ReaderDetailLikesListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderDetailLikesListController.swift; sourceTree = ""; }; @@ -7469,7 +7247,6 @@ 98FCFC212231DF43006ECDD4 /* PostStatsTitleCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostStatsTitleCell.swift; sourceTree = ""; }; 98FCFC222231DF43006ECDD4 /* PostStatsTitleCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PostStatsTitleCell.xib; sourceTree = ""; }; 98FF6A3D23A30A240025FD72 /* QuickStartNavigationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickStartNavigationSettings.swift; sourceTree = ""; }; - 99D675225C3282AC88B89F04 /* Pods-WordPressTodayWidget.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTodayWidget.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTodayWidget/Pods-WordPressTodayWidget.release-internal.xcconfig"; sourceTree = ""; }; 9A034CEA237DB8660047B41B /* StatsForegroundObservable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsForegroundObservable.swift; sourceTree = ""; }; 9A09F914230C3E9700F42AB7 /* StoreFetchingStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreFetchingStatus.swift; sourceTree = ""; }; 9A09F91A230C49FD00F42AB7 /* StatsStackViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StatsStackViewCell.xib; sourceTree = ""; }; @@ -7966,9 +7743,7 @@ CEBD3EA90FF1BA3B00C1396E /* Blog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Blog.h; sourceTree = ""; }; CEBD3EAA0FF1BA3B00C1396E /* Blog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Blog.m; sourceTree = ""; }; CECEEB542823164800A28ADE /* MediaCacheSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaCacheSettingsViewController.swift; sourceTree = ""; }; - CF343E897B9953453334768C /* Pods-WordPressHomeWidgetToday.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressHomeWidgetToday.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressHomeWidgetToday/Pods-WordPressHomeWidgetToday.release.xcconfig"; sourceTree = ""; }; D01FA8A28AD63D2600800134 /* Pods-JetpackNotificationServiceExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackNotificationServiceExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackNotificationServiceExtension/Pods-JetpackNotificationServiceExtension.release-internal.xcconfig"; sourceTree = ""; }; - D1216A69ECC61E7772AB8C41 /* Pods-WordPressThisWeekWidget.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressThisWeekWidget.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressThisWeekWidget/Pods-WordPressThisWeekWidget.debug.xcconfig"; sourceTree = ""; }; D3B8D9C4DCD93C57C2B98CDC /* Pods_WordPressNotificationServiceExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressNotificationServiceExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D42A30853435E728881904E8 /* Pods_JetpackIntents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackIntents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D67306CD28F2440FF6B0065C /* Pods-WordPressIntents.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressIntents.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressIntents/Pods-WordPressIntents.debug.xcconfig"; sourceTree = ""; }; @@ -8329,7 +8104,6 @@ E2AA87A418523E5300886693 /* UIView+Subviews.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Subviews.m"; sourceTree = ""; }; E2E7EB44185FB140004F5E72 /* WPBlogSelectorButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPBlogSelectorButton.h; sourceTree = ""; }; E2E7EB45185FB140004F5E72 /* WPBlogSelectorButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPBlogSelectorButton.m; sourceTree = ""; }; - E5B3F5F559826C230DB0DCDD /* Pods-WordPressAllTimeWidget.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAllTimeWidget.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAllTimeWidget/Pods-WordPressAllTimeWidget.release-alpha.xcconfig"; sourceTree = ""; }; E603C76F1BC94AED00AD49D7 /* WordPress-37-38.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; path = "WordPress-37-38.xcmappingmodel"; sourceTree = ""; }; E60BD230230A3DD400727E82 /* KeyringAccountHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyringAccountHelper.swift; sourceTree = ""; }; E61084B91B9B47BA008050C5 /* ReaderAbstractTopic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAbstractTopic.swift; sourceTree = ""; }; @@ -8415,7 +8189,6 @@ E6BDEA721CE4824300682885 /* ReaderSearchTopic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderSearchTopic.swift; sourceTree = ""; }; E6C09B3D1BF0FDEB003074CB /* ReaderCrossPostMeta.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ReaderCrossPostMeta.swift; path = Classes/Models/ReaderCrossPostMeta.swift; sourceTree = SOURCE_ROOT; }; E6C0ED3A231DA23400A08B57 /* AccountService+MergeDuplicates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AccountService+MergeDuplicates.swift"; sourceTree = ""; }; - E6C80205BDC1D7FF04D6316A /* Pods-WordPressHomeWidgetToday.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressHomeWidgetToday.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressHomeWidgetToday/Pods-WordPressHomeWidgetToday.debug.xcconfig"; sourceTree = ""; }; E6C892D51C601D55007AD612 /* SharingButtonsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharingButtonsViewController.swift; sourceTree = ""; }; E6D170361EF9D8D10046D433 /* SiteInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteInfo.swift; sourceTree = ""; }; E6D2E15E1B8A9C830000ED14 /* ReaderSiteStreamHeader.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ReaderSiteStreamHeader.xib; sourceTree = ""; }; @@ -8667,11 +8440,9 @@ F53FF3A723EA723D001AD596 /* ActionRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionRow.swift; sourceTree = ""; }; F53FF3A923EA725C001AD596 /* SiteIconView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteIconView.swift; sourceTree = ""; }; F543AF5623A84E4D0022F595 /* PublishSettingsControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublishSettingsControllerTests.swift; sourceTree = ""; }; - F543AF5823A84F200022F595 /* SchedulingCalendarViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SchedulingCalendarViewControllerTests.swift; sourceTree = ""; }; F551E7F423F6EA3100751212 /* FloatingActionButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatingActionButton.swift; sourceTree = ""; }; F551E7F623FC9A5C00751212 /* Collection+RotateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Collection+RotateTests.swift"; sourceTree = ""; }; F565190223CF6D1D003FACAF /* WKCookieJarTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WKCookieJarTests.swift; sourceTree = ""; }; - F5660CFF235CE82100020B1E /* SchedulingCalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SchedulingCalendarViewController.swift; sourceTree = ""; }; F5660D06235D114500020B1E /* CalendarCollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarCollectionView.swift; sourceTree = ""; }; F5660D08235D1CDD00020B1E /* CalendarMonthView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarMonthView.swift; sourceTree = ""; }; F56A33322538C0ED00E2AEF3 /* MySiteViewController+FAB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MySiteViewController+FAB.swift"; sourceTree = ""; }; @@ -8680,7 +8451,6 @@ F580C3C023D22E2D0038E243 /* PreviewDeviceLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewDeviceLabel.swift; sourceTree = ""; }; F580C3CA23D8F9B40038E243 /* AbstractPost+Dates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AbstractPost+Dates.swift"; sourceTree = ""; }; F582060123A85495005159A9 /* SiteDateFormatters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteDateFormatters.swift; sourceTree = ""; }; - F582060323A88379005159A9 /* TimePickerViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimePickerViewControllerTests.swift; sourceTree = ""; }; F5844B6A235EAF3D007C6557 /* PartScreenPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartScreenPresentationController.swift; sourceTree = ""; }; F59AAC0F235E430E00385EE6 /* ChosenValueRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChosenValueRow.swift; sourceTree = ""; }; F59AAC15235EA46D00385EE6 /* LightNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LightNavigationController.swift; sourceTree = ""; }; @@ -8892,7 +8662,6 @@ FEDA1AD7269D475D0038EC98 /* ListTableViewCell+Comments.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ListTableViewCell+Comments.swift"; sourceTree = ""; }; FEDDD46E26A03DE900F8942B /* ListTableViewCell+Notifications.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ListTableViewCell+Notifications.swift"; sourceTree = ""; }; FEF4DC5428439357003806BE /* ReminderScheduleCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReminderScheduleCoordinator.swift; sourceTree = ""; }; - FEF93A01F06919BDB9486A8E /* Pods-WordPressHomeWidgetToday.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressHomeWidgetToday.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressHomeWidgetToday/Pods-WordPressHomeWidgetToday.release-alpha.xcconfig"; sourceTree = ""; }; FEFA263D26C58427009CCB7E /* ShareAppTextActivityItemSourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareAppTextActivityItemSourceTests.swift; sourceTree = ""; }; FEFC0F872730510F001F7F1D /* WordPress 136.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 136.xcdatamodel"; sourceTree = ""; }; FEFC0F882731182C001F7F1D /* CommentService+Replies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CommentService+Replies.swift"; sourceTree = ""; }; @@ -9137,33 +8906,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 93E5283719A7741A003A1A9C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 98E58A442361019300E5534B /* Pods_WordPressTodayWidget.framework in Frameworks */, - 93E5283C19A7741A003A1A9C /* NotificationCenter.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 98A3C2EC239997DA0048D38D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 98A3C2F0239997DA0048D38D /* NotificationCenter.framework in Frameworks */, - 26D66DEC36ACF7442186B07D /* Pods_WordPressThisWeekWidget.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 98D31B8B2396ED7E009CFF43 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 98D31B8F2396ED7F009CFF43 /* NotificationCenter.framework in Frameworks */, - 638E2F3D4DFE9E93AF660CED /* Pods_WordPressAllTimeWidget.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E16AB92614D978240047A2E5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -9892,15 +9634,12 @@ children = ( 1D6058910D05DD3D006BFB54 /* WordPress.app */, E16AB92A14D978240047A2E5 /* WordPressTest.xctest */, - 93E5283A19A7741A003A1A9C /* WordPressTodayWidget.appex */, 8511CFB61C607A7000B7CEED /* WordPressScreenshotGeneration.xctest */, 932225A71C7CE50300443B02 /* WordPressShareExtension.appex */, FF27168F1CAAC87A0006E2D4 /* WordPressUITests.xctest */, 74576672202B558C00F42E40 /* WordPressDraftActionExtension.appex */, 7358E6B8210BD318002323EB /* WordPressNotificationServiceExtension.appex */, 733F36032126197800988727 /* WordPressNotificationContentExtension.appex */, - 98A3C2EF239997DA0048D38D /* WordPressThisWeekWidget.appex */, - 98D31B8E2396ED7E009CFF43 /* WordPressAllTimeWidget.appex */, 3F526C4C2538CF2A0069706C /* WordPressStatsWidgets.appex */, F1F163BE25658B4D003DC13B /* WordPressIntents.appex */, FABB26522602FC2C00C8785C /* Jetpack.app */, @@ -9973,9 +9712,6 @@ 733F36072126197800988727 /* WordPressNotificationContentExtension */, 7358E6B9210BD318002323EB /* WordPressNotificationServiceExtension */, 932225A81C7CE50300443B02 /* WordPressShareExtension */, - 93E5283D19A7741A003A1A9C /* WordPressTodayWidget */, - 98D31B902396ED7F009CFF43 /* WordPressAllTimeWidget */, - 98A3C2F1239997DA0048D38D /* WordPressThisWeekWidget */, 3F526C512538CF2A0069706C /* WordPressStatsWidgets */, F1F163BF25658B4D003DC13B /* WordPressIntents */, E16AB92F14D978240047A2E5 /* WordPressTest */, @@ -10045,8 +9781,6 @@ FF4DEAD7244B56E200ACA032 /* CoreServices.framework */, 9884B145236225230021D8E9 /* WordPressUI.framework */, 9884B143236224F80021D8E9 /* WordPressUI.framework */, - 98E58A432361019300E5534B /* Pods_WordPressTodayWidget.framework */, - 98E58A412361017500E5534B /* Pods_WordPressTodayWidget.framework */, 7E21C760202BBC8D00837CF5 /* iAd.framework */, 8527B15717CE98C5001CBA2E /* Accelerate.framework */, CC24E5F41577E16B00A6D5B5 /* Accounts.framework */, @@ -10098,12 +9832,9 @@ E19DF740141F7BDD000002F3 /* libz.dylib */, B7556D1D8CFA5CEAEAC481B9 /* Pods.framework */, B921F5DD9A1F257C792EC225 /* Pods_WordPressTest.framework */, - 8CE5BBD00FF1470AC4B88247 /* Pods_WordPressTodayWidget.framework */, 733F36052126197800988727 /* UserNotificationsUI.framework */, AB390AA9C94F16E78184E9D1 /* Pods_WordPressScreenshotGeneration.framework */, 8DCE7542239FBC709B90EA85 /* Pods_WordPressUITests.framework */, - 979B445A45E13F3289F2E99E /* Pods_WordPressThisWeekWidget.framework */, - 0075A07B739C4EDB5EC613B8 /* Pods_WordPressAllTimeWidget.framework */, 3F526C4D2538CF2A0069706C /* WidgetKit.framework */, 3F526C4F2538CF2A0069706C /* SwiftUI.framework */, F1F163C825658B4D003DC13B /* IntentsUI.framework */, @@ -11539,8 +11270,6 @@ children = ( 8B939F4223832E5D00ACCB0F /* PostListViewControllerTests.swift */, F543AF5623A84E4D0022F595 /* PublishSettingsControllerTests.swift */, - F543AF5823A84F200022F595 /* SchedulingCalendarViewControllerTests.swift */, - F582060323A88379005159A9 /* TimePickerViewControllerTests.swift */, F5D0A65123CCD3B600B20D27 /* PreviewWebKitViewControllerTests.swift */, ); name = Controllers; @@ -13210,40 +12939,6 @@ name = Analytics; sourceTree = ""; }; - 93C2075B1CC7FFB100C94D04 /* Tracks */ = { - isa = PBXGroup; - children = ( - 93C2075C1CC7FFC800C94D04 /* Tracks+TodayWidget.swift */, - ); - name = Tracks; - sourceTree = ""; - }; - 93E5283D19A7741A003A1A9C /* WordPressTodayWidget */ = { - isa = PBXGroup; - children = ( - 93E5284219A7741A003A1A9C /* MainInterface.storyboard */, - 93E5284019A7741A003A1A9C /* TodayViewController.swift */, - 93E5283E19A7741A003A1A9C /* Supporting Files */, - 93C2075B1CC7FFB100C94D04 /* Tracks */, - 93E5284F19A77824003A1A9C /* WordPressTodayWidget-Bridging-Header.h */, - ); - path = WordPressTodayWidget; - sourceTree = ""; - }; - 93E5283E19A7741A003A1A9C /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 8546B44A1BEAD3B300193C07 /* Info-Alpha.plist */, - 93267A6019B896CD00997EB8 /* Info-Internal.plist */, - 93E5283F19A7741A003A1A9C /* Info.plist */, - 591252291A38AE9C00468279 /* TodayWidgetPrefix.pch */, - 8546B4501BEAD4D100193C07 /* WordPressTodayWidget-Alpha.entitlements */, - 934884AC19B78723004028D8 /* WordPressTodayWidget-Internal.entitlements */, - 93E5285719A7AA5C003A1A9C /* WordPressTodayWidget.entitlements */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; 93FA59DA18D88BDB001446BC /* Services */ = { isa = PBXGroup; children = ( @@ -13593,23 +13288,6 @@ path = Data; sourceTree = ""; }; - 9890650C237CC1E700218CD2 /* Shared Views */ = { - isa = PBXGroup; - children = ( - 989643EA23A0437B0070720A /* WidgetDifferenceCell.swift */, - 989643EB23A0437B0070720A /* WidgetDifferenceCell.xib */, - 989064FD237CC1DE00218CD2 /* WidgetTwoColumnCell.swift */, - 989064FE237CC1DE00218CD2 /* WidgetTwoColumnCell.xib */, - 989064FB237CC1DE00218CD2 /* WidgetUnconfiguredCell.swift */, - 989064FC237CC1DE00218CD2 /* WidgetUnconfiguredCell.xib */, - 988F073323D0CE8800AC67A6 /* WidgetUrlCell.swift */, - 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */, - 98712D1923DA1C7E00555316 /* WidgetNoConnectionCell.swift */, - 98712D1A23DA1C7E00555316 /* WidgetNoConnectionCell.xib */, - ); - path = "Shared Views"; - sourceTree = ""; - }; 98A047702821BFB6001B4E2D /* Blogging Prompts */ = { isa = PBXGroup; children = ( @@ -13623,32 +13301,6 @@ path = "Blogging Prompts"; sourceTree = ""; }; - 98A3C2F1239997DA0048D38D /* WordPressThisWeekWidget */ = { - isa = PBXGroup; - children = ( - 98A3C3002399A1850048D38D /* MainInterface.storyboard */, - 98A3C3042399A2370048D38D /* ThisWeekViewController.swift */, - 98A3C3032399A2370048D38D /* WordPressThisWeekWidget-Bridging-Header.h */, - 98A3C3062399A3040048D38D /* Supporting Files */, - 98E419DC2399B57F00D8C822 /* Tracks */, - ); - path = WordPressThisWeekWidget; - sourceTree = ""; - }; - 98A3C3062399A3040048D38D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 98A3C3072399A57D0048D38D /* Info-Alpha.plist */, - 98A3C3082399A57D0048D38D /* Info-Internal.plist */, - 98A3C2F7239997DA0048D38D /* Info.plist */, - 98E419E02399B6C300D8C822 /* ThisWeekWidgetPrefix.pch */, - 98A3C30C2399A6570048D38D /* WordPressThisWeekWidget-Alpha.entitlements */, - 98A3C30D2399A6580048D38D /* WordPressThisWeekWidget-Internal.entitlements */, - 98A3C30B2399A6570048D38D /* WordPressThisWeekWidget.entitlements */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; 98A9E48527F6238B00ECA96D /* Blogging Prompts */ = { isa = PBXGroup; children = ( @@ -13691,53 +13343,10 @@ name = "Social Signup"; sourceTree = ""; }; - 98D31B902396ED7F009CFF43 /* WordPressAllTimeWidget */ = { - isa = PBXGroup; - children = ( - 98D31BA52396F7BF009CFF43 /* AllTimeViewController.swift */, - 98DE9A9E239835C800A88D01 /* MainInterface.storyboard */, - 98D31BA82396FAD2009CFF43 /* WordPressAllTimeWidget-Bridging-Header.h */, - 98D31B9F2396EFAD009CFF43 /* Supporting Files */, - 98D31BAA23970060009CFF43 /* Tracks */, - ); - path = WordPressAllTimeWidget; - sourceTree = ""; - }; - 98D31B9F2396EFAD009CFF43 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 98D31BA92396FBDC009CFF43 /* AllTimeWidgetPrefix.pch */, - 98D31BA02396F417009CFF43 /* Info-Alpha.plist */, - 98D31BA12396F417009CFF43 /* Info-Internal.plist */, - 98D31B962396ED7F009CFF43 /* Info.plist */, - 98D31BA32396F5C1009CFF43 /* WordPressAllTimeWidget-Alpha.entitlements */, - 98D31BA42396F5C2009CFF43 /* WordPressAllTimeWidget-Internal.entitlements */, - 98D31BA22396F5C1009CFF43 /* WordPressAllTimeWidget.entitlements */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 98D31BAA23970060009CFF43 /* Tracks */ = { - isa = PBXGroup; - children = ( - 98D31BAB23970078009CFF43 /* Tracks+AllTimeWidget.swift */, - ); - name = Tracks; - sourceTree = ""; - }; - 98E419DC2399B57F00D8C822 /* Tracks */ = { - isa = PBXGroup; - children = ( - 98E419DD2399B5A700D8C822 /* Tracks+ThisWeekWidget.swift */, - ); - name = Tracks; - sourceTree = ""; - }; 98E58A2D2360D1FD00E5534B /* Today Widgets */ = { isa = PBXGroup; children = ( 989064F9237CC1A300218CD2 /* Data */, - 9890650C237CC1E700218CD2 /* Shared Views */, 985ED0E323C6950600B8D06A /* WidgetStyles.swift */, ); path = "Today Widgets"; @@ -14391,10 +14000,6 @@ EF379F0A70B6AC45330EE287 /* Pods-WordPressTest.release.xcconfig */, C9264D275F6288F66C33D2CE /* Pods-WordPressTest.release-internal.xcconfig */, 131D0EE49695795ECEDAA446 /* Pods-WordPressTest.release-alpha.xcconfig */, - 368127CE6F1CA15EC198147D /* Pods-WordPressTodayWidget.debug.xcconfig */, - 37E3F5EA2ED7005A5E0BBEC3 /* Pods-WordPressTodayWidget.release.xcconfig */, - 99D675225C3282AC88B89F04 /* Pods-WordPressTodayWidget.release-internal.xcconfig */, - 0F01F606071B0B9BD9DB34DE /* Pods-WordPressTodayWidget.release-alpha.xcconfig */, A27DA63A5ECD1D0262C589EC /* Pods-WordPressNotificationServiceExtension.debug.xcconfig */, 73FEFF1991AE9912FB2DA9BC /* Pods-WordPressNotificationServiceExtension.release.xcconfig */, 33D5016BDA00B45DFCAF3818 /* Pods-WordPressNotificationServiceExtension.release-internal.xcconfig */, @@ -14403,18 +14008,6 @@ B787A850C6163034630E7AF2 /* Pods-WordPressUITests.release.xcconfig */, 10BBFF34EBDA2F9B8CB48DF6 /* Pods-WordPressUITests.release-internal.xcconfig */, 1B77149F6C65D343E7E3AD09 /* Pods-WordPressUITests.release-alpha.xcconfig */, - D1216A69ECC61E7772AB8C41 /* Pods-WordPressThisWeekWidget.debug.xcconfig */, - 7DFD69454E24EC0A1A0BACCD /* Pods-WordPressThisWeekWidget.release.xcconfig */, - 8E65034AFB7DC85D70CCC064 /* Pods-WordPressThisWeekWidget.release-internal.xcconfig */, - 40F031E19B32BAF8654838C0 /* Pods-WordPressThisWeekWidget.release-alpha.xcconfig */, - 0EAD25F1E69B6B91783C4963 /* Pods-WordPressAllTimeWidget.debug.xcconfig */, - 6A9F41AAF18FB527262CC57C /* Pods-WordPressAllTimeWidget.release.xcconfig */, - 41341F0000A9A65A3326F2EC /* Pods-WordPressAllTimeWidget.release-internal.xcconfig */, - E5B3F5F559826C230DB0DCDD /* Pods-WordPressAllTimeWidget.release-alpha.xcconfig */, - E6C80205BDC1D7FF04D6316A /* Pods-WordPressHomeWidgetToday.debug.xcconfig */, - CF343E897B9953453334768C /* Pods-WordPressHomeWidgetToday.release.xcconfig */, - 0A27D496128FBCDFA3658994 /* Pods-WordPressHomeWidgetToday.release-internal.xcconfig */, - FEF93A01F06919BDB9486A8E /* Pods-WordPressHomeWidgetToday.release-alpha.xcconfig */, D67306CD28F2440FF6B0065C /* Pods-WordPressIntents.debug.xcconfig */, ADE06D6829F9044164BBA5AB /* Pods-WordPressIntents.release.xcconfig */, A0D83E08D5D2573348DE8926 /* Pods-WordPressIntents.release-internal.xcconfig */, @@ -16739,7 +16332,6 @@ F5660D06235D114500020B1E /* CalendarCollectionView.swift */, F59AAC0F235E430E00385EE6 /* ChosenValueRow.swift */, F5660D08235D1CDD00020B1E /* CalendarMonthView.swift */, - F5660CFF235CE82100020B1E /* SchedulingCalendarViewController.swift */, 03216EC5279946CA00D444CA /* SchedulingDatePickerViewController.swift */, 03216ECB27995F3500D444CA /* SchedulingViewControllerPresenter.swift */, F5844B6A235EAF3D007C6557 /* PartScreenPresentationController.swift */, @@ -17352,13 +16944,9 @@ ); dependencies = ( 096A92FD26E2A0AE00448C68 /* PBXTargetDependency */, - 93E5284519A7741A003A1A9C /* PBXTargetDependency */, - 93E5284819A7741A003A1A9C /* PBXTargetDependency */, 932225B01C7CE50300443B02 /* PBXTargetDependency */, 7457667B202B558C00F42E40 /* PBXTargetDependency */, 7358E6BE210BD318002323EB /* PBXTargetDependency */, - 98A3C2F9239997DA0048D38D /* PBXTargetDependency */, - 98D31B982396ED7F009CFF43 /* PBXTargetDependency */, 3F526C5B2538CF2B0069706C /* PBXTargetDependency */, F1F163D525658B4D003DC13B /* PBXTargetDependency */, ); @@ -17565,63 +17153,6 @@ productReference = 932225A71C7CE50300443B02 /* WordPressShareExtension.appex */; productType = "com.apple.product-type.app-extension"; }; - 93E5283919A7741A003A1A9C /* WordPressTodayWidget */ = { - isa = PBXNativeTarget; - buildConfigurationList = 93E5284D19A7741A003A1A9C /* Build configuration list for PBXNativeTarget "WordPressTodayWidget" */; - buildPhases = ( - 4CB8AA817C9BD74F3416B27C /* [CP] Check Pods Manifest.lock */, - 93E5283619A7741A003A1A9C /* Sources */, - 93E5283719A7741A003A1A9C /* Frameworks */, - 93E5283819A7741A003A1A9C /* Resources */, - 59B02D1583A9AC2ACCFFD153 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WordPressTodayWidget; - productName = WordPressTodayWidget; - productReference = 93E5283A19A7741A003A1A9C /* WordPressTodayWidget.appex */; - productType = "com.apple.product-type.app-extension"; - }; - 98A3C2EE239997DA0048D38D /* WordPressThisWeekWidget */ = { - isa = PBXNativeTarget; - buildConfigurationList = 98A3C2FF239997DB0048D38D /* Build configuration list for PBXNativeTarget "WordPressThisWeekWidget" */; - buildPhases = ( - 591AAEE0843D274DDFF16F69 /* [CP] Check Pods Manifest.lock */, - 98A3C2EB239997DA0048D38D /* Sources */, - 98A3C2EC239997DA0048D38D /* Frameworks */, - 98A3C2ED239997DA0048D38D /* Resources */, - 3E7D1BBC0746F969F0997C43 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WordPressThisWeekWidget; - productName = WordPressThisWeekWidget; - productReference = 98A3C2EF239997DA0048D38D /* WordPressThisWeekWidget.appex */; - productType = "com.apple.product-type.app-extension"; - }; - 98D31B8D2396ED7E009CFF43 /* WordPressAllTimeWidget */ = { - isa = PBXNativeTarget; - buildConfigurationList = 98D31B9E2396ED7F009CFF43 /* Build configuration list for PBXNativeTarget "WordPressAllTimeWidget" */; - buildPhases = ( - FF1C536C9FA7489B5AAA0FC2 /* [CP] Check Pods Manifest.lock */, - 98D31B8A2396ED7E009CFF43 /* Sources */, - 98D31B8B2396ED7E009CFF43 /* Frameworks */, - 98D31B8C2396ED7E009CFF43 /* Resources */, - 61CF58FC6EB9AB58632C4770 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WordPressAllTimeWidget; - productName = WordPressAllTimeWidget; - productReference = 98D31B8E2396ED7E009CFF43 /* WordPressAllTimeWidget.appex */; - productType = "com.apple.product-type.app-extension"; - }; E16AB92914D978240047A2E5 /* WordPressTest */ = { isa = PBXNativeTarget; buildConfigurationList = E16AB93D14D978240047A2E5 /* Build configuration list for PBXNativeTarget "WordPressTest" */; @@ -17841,28 +17372,6 @@ }; }; }; - 93E5283919A7741A003A1A9C = { - CreatedOnToolsVersion = 6.0; - DevelopmentTeam = PZYM8XX95Q; - LastSwiftMigration = 1000; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - com.apple.Keychain = { - enabled = 1; - }; - }; - }; - 98A3C2EE239997DA0048D38D = { - CreatedOnToolsVersion = 11.2.1; - LastSwiftMigration = 1120; - ProvisioningStyle = Manual; - }; - 98D31B8D2396ED7E009CFF43 = { - CreatedOnToolsVersion = 11.2.1; - ProvisioningStyle = Manual; - }; A2795807198819DE0031C6A3 = { DevelopmentTeam = PZYM8XX95Q; }; @@ -17947,9 +17456,6 @@ 1D6058900D05DD3D006BFB54 /* WordPress */, 932225A61C7CE50300443B02 /* WordPressShareExtension */, 74576671202B558C00F42E40 /* WordPressDraftActionExtension */, - 93E5283919A7741A003A1A9C /* WordPressTodayWidget */, - 98D31B8D2396ED7E009CFF43 /* WordPressAllTimeWidget */, - 98A3C2EE239997DA0048D38D /* WordPressThisWeekWidget */, 3F526C4B2538CF2A0069706C /* WordPressStatsWidgets */, 733F36022126197800988727 /* WordPressNotificationContentExtension */, 7358E6B7210BD318002323EB /* WordPressNotificationServiceExtension */, @@ -18041,7 +17547,6 @@ 9A9E3FB0230EA7A300909BC4 /* StatsGhostTopCell.xib in Resources */, 985793C922F23D7000643DBF /* CustomizeInsightsCell.xib in Resources */, 1761F17926209AEE000815EF /* wordpress-dark-icon-app-60x60@2x.png in Resources */, - 98906508237CC1DF00218CD2 /* WidgetTwoColumnCell.xib in Resources */, F5A34D0F25DF2F7F00C9654B /* oswald_upper.ttf in Resources */, 2FAE970D0E33B21600CA8540 /* xhtmlValidatorTemplate.xhtml in Resources */, 9826AE8821B5C73400C851FA /* PostingActivityDay.xib in Resources */, @@ -18182,7 +17687,6 @@ 17222D8B261DDDF90047B163 /* black-classic-icon-app-60x60@3x.png in Resources */, E6A3384E1BB0A50900371587 /* ReaderGapMarkerCell.xib in Resources */, 5DB767411588F64D00EBE36C /* postPreview.html in Resources */, - 989643EE23A0437B0070720A /* WidgetDifferenceCell.xib in Resources */, 17222D9E261DDDF90047B163 /* pink-classic-icon-app-83.5x83.5@2x.png in Resources */, 1761F17326209AEE000815EF /* open-source-dark-icon-app-60x60@2x.png in Resources */, 1761F18B26209AEE000815EF /* hot-pink-icon-app-83.5x83.5@2x.png in Resources */, @@ -18225,11 +17729,9 @@ E6D2E1611B8AA4410000ED14 /* ReaderTagStreamHeader.xib in Resources */, 577C2AB62294401800AD1F03 /* PostCompactCell.xib in Resources */, 17222D86261DDDF90047B163 /* celadon-icon-app-76x76.png in Resources */, - 98906504237CC1DF00218CD2 /* WidgetUnconfiguredCell.xib in Resources */, 5D69DBC4165428CA00A2D1F7 /* n.caf in Resources */, 17222D85261DDDF90047B163 /* celadon-icon-app-83.5x83.5@2x.png in Resources */, E1B912811BB00EFD003C25B9 /* People.storyboard in Resources */, - 98712D1C23DA1C7E00555316 /* WidgetNoConnectionCell.xib in Resources */, 9826AE8321B5C6A700C851FA /* LatestPostSummaryCell.xib in Resources */, 8BF281F927CE8E4100AF8CF3 /* DashboardGhostCardContent.xib in Resources */, 5D2FB2831AE98C4600F1D4ED /* RestorePostTableViewCell.xib in Resources */, @@ -18277,7 +17779,6 @@ 469CE06E24BCED75003BDC8B /* CategorySectionTableViewCell.xib in Resources */, 4034FDEE2007D4F700153B87 /* ExpandableCell.xib in Resources */, 1761F18026209AEE000815EF /* jetpack-green-icon-app-76x76.png in Resources */, - 988F073623D0CE8800AC67A6 /* WidgetUrlCell.xib in Resources */, 98F9FB2E270282C200ADF552 /* CommentModerationBar.xib in Resources */, B0088A97283D6FBC008C9676 /* StatsRevampV2FeatureDescriptionView.xib in Resources */, E61507E42220A13B00213D33 /* richEmbedScript.js in Resources */, @@ -18405,45 +17906,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 93E5283819A7741A003A1A9C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 93E5284319A7741A003A1A9C /* MainInterface.storyboard in Resources */, - 98906509237CC1DF00218CD2 /* WidgetTwoColumnCell.xib in Resources */, - 9A144AC822FD6A650069DD71 /* ColorPalette.xcassets in Resources */, - 98712D2023DA1D1000555316 /* WidgetNoConnectionCell.xib in Resources */, - 98906505237CC1DF00218CD2 /* WidgetUnconfiguredCell.xib in Resources */, - 988F073723D0D15D00AC67A6 /* WidgetUrlCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 98A3C2ED239997DA0048D38D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 989643EF23A0437B0070720A /* WidgetDifferenceCell.xib in Resources */, - 9880150623A840200003BD11 /* ColorPalette.xcassets in Resources */, - 98A3C3022399A19F0048D38D /* MainInterface.storyboard in Resources */, - 98712D2223DA1D1200555316 /* WidgetNoConnectionCell.xib in Resources */, - 989643E823A031CD0070720A /* WidgetUnconfiguredCell.xib in Resources */, - 988F073923D0D15E00AC67A6 /* WidgetUrlCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 98D31B8C2396ED7E009CFF43 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 98A6B9942398821B0031AEBD /* WidgetTwoColumnCell.xib in Resources */, - 985ED0E223C686CA00B8D06A /* ColorPalette.xcassets in Resources */, - 98712D2123DA1D1100555316 /* WidgetNoConnectionCell.xib in Resources */, - 98A6B996239882350031AEBD /* WidgetUnconfiguredCell.xib in Resources */, - 98D7ECCE23983D0800B87710 /* MainInterface.storyboard in Resources */, - 988F073823D0D15D00AC67A6 /* WidgetUrlCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E16AB92714D978240047A2E5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -18623,7 +18085,6 @@ C7124E4E2638528F00929318 /* JetpackPrologueViewController.xib in Resources */, F465978628E65E1800D5F49A /* blue-on-white-icon-app-83.5@2x.png in Resources */, FABB1FD62602FC2C00C8785C /* CustomizeInsightsCell.xib in Resources */, - FABB1FD72602FC2C00C8785C /* WidgetTwoColumnCell.xib in Resources */, FABB1FD92602FC2C00C8785C /* oswald_upper.ttf in Resources */, F46597F528E669D400D5F49A /* spectrum-on-white-icon-app-76@2x.png in Resources */, FABB1FDB2602FC2C00C8785C /* xhtmlValidatorTemplate.xhtml in Resources */, @@ -18761,7 +18222,6 @@ FABB205D2602FC2C00C8785C /* ReaderGapMarkerCell.xib in Resources */, F46597E028E6694200D5F49A /* pink-on-white-icon-app-76.png in Resources */, FABB205E2602FC2C00C8785C /* postPreview.html in Resources */, - FABB205F2602FC2C00C8785C /* WidgetDifferenceCell.xib in Resources */, FABB20602602FC2C00C8785C /* MediaSizeSliderCell.xib in Resources */, FABB20622602FC2C00C8785C /* ReaderBlockedSiteCell.xib in Resources */, FABB20632602FC2C00C8785C /* QuickStartChecklistCell.xib in Resources */, @@ -18792,7 +18252,6 @@ F465978428E65E1800D5F49A /* blue-on-white-icon-app-76@2x.png in Resources */, F46597EB28E6698D00D5F49A /* spectrum-on-black-icon-app-60@3x.png in Resources */, FABB20812602FC2C00C8785C /* PostCompactCell.xib in Resources */, - FABB20832602FC2C00C8785C /* WidgetUnconfiguredCell.xib in Resources */, FABB20862602FC2C00C8785C /* n.caf in Resources */, F465977D28E6598900D5F49A /* black-on-white-icon-app-83.5@2x.png in Resources */, F41E4EDA28F2424B001880C6 /* dark-glow-icon-app-76@2x.png in Resources */, @@ -18804,7 +18263,6 @@ F41E4EB828F225DB001880C6 /* stroke-dark-icon-app-60@3x.png in Resources */, F46597EA28E6698D00D5F49A /* spectrum-on-black-icon-app-76.png in Resources */, 98A047762821D069001B4E2D /* BloggingPromptsViewController.storyboard in Resources */, - FABB208A2602FC2C00C8785C /* WidgetNoConnectionCell.xib in Resources */, FABB208B2602FC2C00C8785C /* LatestPostSummaryCell.xib in Resources */, F41E4ECF28F23E00001880C6 /* green-on-white-icon-app-83.5@2x.png in Resources */, F46597C728E668B900D5F49A /* neumorphic-light-icon-app-76@2x.png in Resources */, @@ -18865,7 +18323,6 @@ FABB20B02602FC2C00C8785C /* CategorySectionTableViewCell.xib in Resources */, FABB20B22602FC2C00C8785C /* ExpandableCell.xib in Resources */, F465977C28E6598900D5F49A /* black-on-white-icon-app-60@2x.png in Resources */, - FABB20B42602FC2C00C8785C /* WidgetUrlCell.xib in Resources */, F41E4EED28F247D3001880C6 /* white-on-green-icon-app-60@3x.png in Resources */, FABB20B52602FC2C00C8785C /* richEmbedScript.js in Resources */, 98E5D4932620C2B40074A56A /* UserProfileSectionHeader.xib in Resources */, @@ -19231,28 +18688,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 3E7D1BBC0746F969F0997C43 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-WordPressThisWeekWidget/Pods-WordPressThisWeekWidget-resources.sh", - "${PODS_ROOT}/FormatterKit/FormatterKit/FormatterKit.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/WordPressShared/WordPressShared.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/WordPressUI/WordPressUIResources.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FormatterKit.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressShared.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressUIResources.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressThisWeekWidget/Pods-WordPressThisWeekWidget-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 3F32E4AE270EAF5100A33D51 /* Generate Credentials */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -19303,24 +18738,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JetpackShareExtension/Pods-JetpackShareExtension-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 4CB8AA817C9BD74F3416B27C /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressTodayWidget-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 4F4D5C2BB6478A3E90ADC3C5 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -19361,72 +18778,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 591AAEE0843D274DDFF16F69 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressThisWeekWidget-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 59B02D1583A9AC2ACCFFD153 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-WordPressTodayWidget/Pods-WordPressTodayWidget-resources.sh", - "${PODS_ROOT}/FormatterKit/FormatterKit/FormatterKit.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/WordPressShared/WordPressShared.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/WordPressUI/WordPressUIResources.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FormatterKit.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressShared.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressUIResources.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressTodayWidget/Pods-WordPressTodayWidget-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 61CF58FC6EB9AB58632C4770 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-WordPressAllTimeWidget/Pods-WordPressAllTimeWidget-resources.sh", - "${PODS_ROOT}/FormatterKit/FormatterKit/FormatterKit.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/WordPressShared/WordPressShared.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/WordPressUI/WordPressUIResources.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FormatterKit.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressShared.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressUIResources.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressAllTimeWidget/Pods-WordPressAllTimeWidget-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 72BB9EE3CC91D92F3735F4F3 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -20011,40 +19362,18 @@ shellPath = /bin/sh; shellScript = "# Print commands before executing them (useful for troubleshooting)\nset -x\nDEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\n\nif [[ \"$CONFIGURATION\" = *Debug* && ! \"$PLATFORM_NAME\" == *simulator ]]; then\nIP=$(ipconfig getifaddr en0)\nif [ -z \"$IP\" ]; then\nIP=$(ifconfig | grep 'inet ' | grep -v ' 127.' | cut -d\\ -f2 | awk 'NR==1{print $1}')\nfi\n\necho \"$IP\" > \"$DEST/ip.txt\"\nfi\n\nBUNDLE_FILE=\"$DEST/main.jsbundle\"\ncp ${PODS_ROOT}/Gutenberg/bundle/ios/App.js \"${BUNDLE_FILE}\"\n\nBUNDLE_ASSETS=\"$DEST/assets/\"\ncp -r ${PODS_ROOT}/Gutenberg/bundle/ios/assets/ \"${BUNDLE_ASSETS}\"\n"; }; - FF1C536C9FA7489B5AAA0FC2 /* [CP] Check Pods Manifest.lock */ = { + FFA8E2301F94E3EF0002170F /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressAllTimeWidget-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - FFA8E2301F94E3EF0002170F /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nrake lint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; + shellScript = "if which swiftlint >/dev/null; then\nrake lint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -20424,7 +19753,6 @@ 1750BD6D201144DB0050F13A /* MediaNoticeNavigationCoordinator.swift in Sources */, E66969E41B9E68B200EC9C00 /* ReaderPostToReaderPost37to38.swift in Sources */, FA6FAB3525EF7C5700666CED /* ReaderRelatedPostsSectionHeaderView.swift in Sources */, - 98712D1B23DA1C7E00555316 /* WidgetNoConnectionCell.swift in Sources */, CECEEB552823164800A28ADE /* MediaCacheSettingsViewController.swift in Sources */, 7E5887A020FE956100DB6F80 /* AppRatingUtilityType.swift in Sources */, 08216FD01CDBF96000304BA7 /* MenuItemSourceFooterView.m in Sources */, @@ -20524,7 +19852,6 @@ F11C9F76243B3C5E00921DDC /* MediaHost+AbstractPost.swift in Sources */, 46183D20251BD6A0004F9AFD /* PageTemplateCategory+CoreDataProperties.swift in Sources */, CE1CCB2D204DDD18000EE3AC /* MyProfileHeaderView.swift in Sources */, - 98906502237CC1DF00218CD2 /* WidgetUnconfiguredCell.swift in Sources */, C7F7BE4C2626301500CE547F /* AuthenticationHandler.swift in Sources */, FFDA7E501B8DF6E500B83C56 /* BlogSiteVisibilityHelper.m in Sources */, E66E2A691FE432BC00788F22 /* TitleBadgeDisclosureCell.swift in Sources */, @@ -20576,7 +19903,6 @@ F913BB0E24B3C58B00C19032 /* EventLoggingDelegate.swift in Sources */, 4089C51022371B120031CE78 /* TodayStatsRecordValue+CoreDataClass.swift in Sources */, DC772AF5282009BA00664C02 /* StatsLineChartView.swift in Sources */, - 988F073523D0CE8800AC67A6 /* WidgetUrlCell.swift in Sources */, 74729CAE205722E300D1394D /* AbstractPost+Searchable.swift in Sources */, 2906F812110CDA8900169D56 /* EditCommentViewController.m in Sources */, 98F93182239AF64800E4E96E /* ThisWeekWidgetStats.swift in Sources */, @@ -20739,7 +20065,6 @@ 5D6C4B091B603E03005E3C43 /* WPTableViewHandler.m in Sources */, C78543D225B889CC006CEAFB /* JetpackScanThreatViewModel.swift in Sources */, 40EE947F2213213F00CD264F /* PublicizeConnectionStatsRecordValue+CoreDataClass.swift in Sources */, - F5660D03235CF73800020B1E /* SchedulingCalendarViewController.swift in Sources */, 1702BBE01CF3034E00766A33 /* DomainsService.swift in Sources */, 8B1CF00F2433902700578582 /* PasswordAlertController.swift in Sources */, 1770BD0D267A368100D5F8C0 /* BloggingRemindersPushPromptViewController.swift in Sources */, @@ -21007,8 +20332,6 @@ 5903AE1B19B60A98009D5354 /* WPButtonForNavigationBar.m in Sources */, 1717139F265FE59700F3A022 /* ButtonStyles.swift in Sources */, C3FF78E828354A91008FA600 /* SiteDesignSectionLoader.swift in Sources */, - 989643EC23A0437B0070720A /* WidgetDifferenceCell.swift in Sources */, - 98906506237CC1DF00218CD2 /* WidgetTwoColumnCell.swift in Sources */, B58C4ECA207C5E1A00E32E4D /* UIImage+Assets.swift in Sources */, E684383E221F535900752258 /* LoadMoreCounter.swift in Sources */, E6158ACA1ECDF518005FA441 /* LoginEpilogueUserInfo.swift in Sources */, @@ -22375,106 +21698,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 93E5283619A7741A003A1A9C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 98906507237CC1DF00218CD2 /* WidgetTwoColumnCell.swift in Sources */, - 433ADC1C223B2A7E00ED9DE1 /* TextBundleWrapper.m in Sources */, - 93E5284119A7741A003A1A9C /* TodayViewController.swift in Sources */, - FAD2566C2611AEC300EDAF88 /* AppStyleGuide.swift in Sources */, - 938CF3DE1EF1BE8000AF838E /* CocoaLumberjack.swift in Sources */, - 98712D1D23DA1D0800555316 /* WidgetNoConnectionCell.swift in Sources */, - 0107E16728FFED1800DE87DB /* WidgetConfiguration.swift in Sources */, - 98C0CE9C23C559C800D0F27C /* Double+Stats.swift in Sources */, - 93C2075A1CC7FF9C00C94D04 /* Tracks.swift in Sources */, - 436110DA22C3ED44000773AD /* FeatureFlag.swift in Sources */, - 436110DB22C3ED4C000773AD /* BuildConfiguration.swift in Sources */, - 98906503237CC1DF00218CD2 /* WidgetUnconfiguredCell.swift in Sources */, - 01CE5009290A88BE00A9C2E0 /* TracksConfiguration.swift in Sources */, - 93C2075D1CC7FFC800C94D04 /* Tracks+TodayWidget.swift in Sources */, - 98E58A302360D23400E5534B /* TodayWidgetStats.swift in Sources */, - 83A1B19728AFE47A00E737AC /* KeychainUtils.swift in Sources */, - 4326191722FCB9F9003C7642 /* MurielColor.swift in Sources */, - 436110D922C3ED18000773AD /* UIColor+MurielColors.swift in Sources */, - FAD256CA2611B01C00EDAF88 /* UIColor+WordPressColors.swift in Sources */, - 092C3800275E718000BBBDD9 /* AppLocalizedString.swift in Sources */, - 988F073A23D0D16700AC67A6 /* WidgetUrlCell.swift in Sources */, - 8323789528526E6B003F4443 /* AppConfiguration.swift in Sources */, - 1752D4FB238D702F002B79E7 /* KeyValueDatabase.swift in Sources */, - 170BEC89239153120017AEC1 /* FeatureFlagOverrideStore.swift in Sources */, - 985ED0E723C6964500B8D06A /* WidgetStyles.swift in Sources */, - 93E3D3C819ACE8E300B1C509 /* SFHFKeychainUtils.m in Sources */, - 934884AB19B73BA6004028D8 /* Constants.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 98A3C2EB239997DA0048D38D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 17A4B6A124F91072002DFB8E /* FeatureFlagOverrideStore.swift in Sources */, - 984BE91523CE72D600B37D90 /* Double+Stats.swift in Sources */, - 983AE84C2399AC5B00E5B7F6 /* SFHFKeychainUtils.m in Sources */, - 17A4B69C24F91022002DFB8E /* FeatureFlag.swift in Sources */, - 98F93184239AF76900E4E96E /* CocoaLumberjack.swift in Sources */, - 98E419DF2399B62A00D8C822 /* Tracks.swift in Sources */, - 989643E423A02F4E0070720A /* UIColor+MurielColors.swift in Sources */, - 989643E223A02F080070720A /* WidgetUnconfiguredCell.swift in Sources */, - 17A4B69F24F91050002DFB8E /* BuildConfiguration.swift in Sources */, - 980D3B1B23C925F40060A890 /* WidgetStyles.swift in Sources */, - 988F073C23D0D16800AC67A6 /* WidgetUrlCell.swift in Sources */, - 98E419DE2399B5A700D8C822 /* Tracks+ThisWeekWidget.swift in Sources */, - 98712D1F23DA1D0A00555316 /* WidgetNoConnectionCell.swift in Sources */, - FAD257F42611B54100EDAF88 /* UIColor+WordPressColors.swift in Sources */, - 092C3802275E718100BBBDD9 /* AppLocalizedString.swift in Sources */, - 8323789728526E6C003F4443 /* AppConfiguration.swift in Sources */, - 98A3C3052399A2370048D38D /* ThisWeekViewController.swift in Sources */, - 17A4B6A324F911D5002DFB8E /* KeyValueDatabase.swift in Sources */, - 989643E523A02F640070720A /* MurielColor.swift in Sources */, - 0107E16928FFED1800DE87DB /* WidgetConfiguration.swift in Sources */, - 01CE500B290A88BF00A9C2E0 /* TracksConfiguration.swift in Sources */, - 83A1B19928AFE47B00E737AC /* KeychainUtils.swift in Sources */, - 983AE84D2399AC6B00E5B7F6 /* Constants.m in Sources */, - 989643ED23A0437B0070720A /* WidgetDifferenceCell.swift in Sources */, - FAD2566E2611AEC600EDAF88 /* AppStyleGuide.swift in Sources */, - 98F93183239AF64800E4E96E /* ThisWeekWidgetStats.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 98D31B8A2396ED7E009CFF43 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 17A4B6A024F91070002DFB8E /* FeatureFlagOverrideStore.swift in Sources */, - 98A6B98F2398807F0031AEBD /* WidgetTwoColumnCell.swift in Sources */, - 98D31BAD2397015C009CFF43 /* Tracks.swift in Sources */, - 17A4B69D24F91023002DFB8E /* FeatureFlag.swift in Sources */, - 98BFF57C2398406A008A1DCB /* CocoaLumberjack.swift in Sources */, - 98BFF57F23984345008A1DCB /* AllTimeWidgetStats.swift in Sources */, - 98A6B992239881630031AEBD /* UIColor+MurielColors.swift in Sources */, - 98A6B9902398808B0031AEBD /* WidgetUnconfiguredCell.swift in Sources */, - 17A4B69E24F9104F002DFB8E /* BuildConfiguration.swift in Sources */, - 98D31BAC23970078009CFF43 /* Tracks+AllTimeWidget.swift in Sources */, - 988F073B23D0D16800AC67A6 /* WidgetUrlCell.swift in Sources */, - 98D31BA72396F7E2009CFF43 /* AllTimeViewController.swift in Sources */, - 98712D1E23DA1D0900555316 /* WidgetNoConnectionCell.swift in Sources */, - 98A6B993239881860031AEBD /* MurielColor.swift in Sources */, - 092C3801275E718100BBBDD9 /* AppLocalizedString.swift in Sources */, - 8323789628526E6C003F4443 /* AppConfiguration.swift in Sources */, - FAD256EE2611B01F00EDAF88 /* UIColor+WordPressColors.swift in Sources */, - 17A4B6A224F911D4002DFB8E /* KeyValueDatabase.swift in Sources */, - 98D31BC223972A79009CFF43 /* SFHFKeychainUtils.m in Sources */, - 0107E16828FFED1800DE87DB /* WidgetConfiguration.swift in Sources */, - 01CE500A290A88BE00A9C2E0 /* TracksConfiguration.swift in Sources */, - 83A1B19828AFE47B00E737AC /* KeychainUtils.swift in Sources */, - 98D31BAE239708FB009CFF43 /* Constants.m in Sources */, - 98C0CE9B23C559C800D0F27C /* Double+Stats.swift in Sources */, - FAD2566D2611AEC500EDAF88 /* AppStyleGuide.swift in Sources */, - 985ED0E823C6964600B8D06A /* WidgetStyles.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E16AB92514D978240047A2E5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -22593,7 +21816,6 @@ D81C2F5E20F88CE5002AE1F1 /* MarkAsSpamActionTests.swift in Sources */, D848CC1520FF33FC00A9038F /* NotificationContentRangeTests.swift in Sources */, D826D67F211D21C700A5D8FE /* NullMockUserDefaults.swift in Sources */, - F582060423A88379005159A9 /* TimePickerViewControllerTests.swift in Sources */, 7E987F58210811CC00CAFB88 /* NotificationContentRouterTests.swift in Sources */, E1C9AA561C10427100732665 /* MathTest.swift in Sources */, 93A379EC19FFBF7900415023 /* KeychainTest.m in Sources */, @@ -22601,7 +21823,6 @@ 436D5655212209D600CEAA33 /* RegisterDomainDetailsServiceProxyMock.swift in Sources */, F1450CF92437EEBB00A28BFE /* MediaRequestAuthenticatorTests.swift in Sources */, D821C817210036D9002ED995 /* ActivityContentFactoryTests.swift in Sources */, - F543AF5923A84F200022F595 /* SchedulingCalendarViewControllerTests.swift in Sources */, 931D26F719ED7F7500114F17 /* ReaderPostServiceTest.m in Sources */, B5772AC61C9C84900031F97E /* GravatarServiceTests.swift in Sources */, 937E3AB61E3EBE1600CDA01A /* PostEditorStateTests.swift in Sources */, @@ -23157,7 +22378,6 @@ FABB21BC2602FC2C00C8785C /* MediaNoticeNavigationCoordinator.swift in Sources */, FABB21BD2602FC2C00C8785C /* ReaderPostToReaderPost37to38.swift in Sources */, FABB21BE2602FC2C00C8785C /* ReaderRelatedPostsSectionHeaderView.swift in Sources */, - FABB21BF2602FC2C00C8785C /* WidgetNoConnectionCell.swift in Sources */, 9804A098263780B500354097 /* LikeUserHelpers.swift in Sources */, FABB21C02602FC2C00C8785C /* AppRatingUtilityType.swift in Sources */, FABB21C12602FC2C00C8785C /* MenuItemSourceFooterView.m in Sources */, @@ -23265,7 +22485,6 @@ FABB220F2602FC2C00C8785C /* MediaHost+AbstractPost.swift in Sources */, FABB22102602FC2C00C8785C /* PageTemplateCategory+CoreDataProperties.swift in Sources */, FABB22112602FC2C00C8785C /* MyProfileHeaderView.swift in Sources */, - FABB22122602FC2C00C8785C /* WidgetUnconfiguredCell.swift in Sources */, FABB22132602FC2C00C8785C /* BlogSiteVisibilityHelper.m in Sources */, FABB22142602FC2C00C8785C /* TitleBadgeDisclosureCell.swift in Sources */, FABB22152602FC2C00C8785C /* FormattableContent.swift in Sources */, @@ -23313,7 +22532,6 @@ FABB22372602FC2C00C8785C /* JetpackRestoreStatusCoordinator.swift in Sources */, FABB22382602FC2C00C8785C /* EventLoggingDelegate.swift in Sources */, FABB22392602FC2C00C8785C /* TodayStatsRecordValue+CoreDataClass.swift in Sources */, - FABB223A2602FC2C00C8785C /* WidgetUrlCell.swift in Sources */, FABB223B2602FC2C00C8785C /* AbstractPost+Searchable.swift in Sources */, FAA9084D27BD60710093FFA8 /* MySiteViewController+QuickStart.swift in Sources */, FABB223C2602FC2C00C8785C /* EditCommentViewController.m in Sources */, @@ -23479,7 +22697,6 @@ FABB22BD2602FC2C00C8785C /* WPTableViewHandler.m in Sources */, FABB22BE2602FC2C00C8785C /* JetpackScanThreatViewModel.swift in Sources */, FABB22BF2602FC2C00C8785C /* PublicizeConnectionStatsRecordValue+CoreDataClass.swift in Sources */, - FABB22C02602FC2C00C8785C /* SchedulingCalendarViewController.swift in Sources */, FABB22C12602FC2C00C8785C /* DomainsService.swift in Sources */, 98BAA7C426F925F70073A2F9 /* InlineEditableSingleLineCell.swift in Sources */, FABB22C22602FC2C00C8785C /* PasswordAlertController.swift in Sources */, @@ -23738,9 +22955,7 @@ F41E32FF287B47A500F89082 /* SuggestionsListViewModel.swift in Sources */, FABB238E2602FC2C00C8785C /* NotificationSettingsService.swift in Sources */, FABB238F2602FC2C00C8785C /* WPButtonForNavigationBar.m in Sources */, - FABB23902602FC2C00C8785C /* WidgetDifferenceCell.swift in Sources */, FA347AEE26EB6E300096604B /* GrowAudienceCell.swift in Sources */, - FABB23912602FC2C00C8785C /* WidgetTwoColumnCell.swift in Sources */, FABB23922602FC2C00C8785C /* UIImage+Assets.swift in Sources */, FABB23932602FC2C00C8785C /* LoadMoreCounter.swift in Sources */, FABB23942602FC2C00C8785C /* LoginEpilogueUserInfo.swift in Sources */, @@ -24650,26 +23865,6 @@ target = 932225A61C7CE50300443B02 /* WordPressShareExtension */; targetProxy = 932225AF1C7CE50300443B02 /* PBXContainerItemProxy */; }; - 93E5284519A7741A003A1A9C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 93E5283919A7741A003A1A9C /* WordPressTodayWidget */; - targetProxy = 93E5284419A7741A003A1A9C /* PBXContainerItemProxy */; - }; - 93E5284819A7741A003A1A9C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 93E5283919A7741A003A1A9C /* WordPressTodayWidget */; - targetProxy = 93E5284719A7741A003A1A9C /* PBXContainerItemProxy */; - }; - 98A3C2F9239997DA0048D38D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 98A3C2EE239997DA0048D38D /* WordPressThisWeekWidget */; - targetProxy = 98A3C2F8239997DA0048D38D /* PBXContainerItemProxy */; - }; - 98D31B982396ED7F009CFF43 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 98D31B8D2396ED7E009CFF43 /* WordPressAllTimeWidget */; - targetProxy = 98D31B972396ED7F009CFF43 /* PBXContainerItemProxy */; - }; E16AB93F14D978520047A2E5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 1D6058900D05DD3D006BFB54 /* WordPress */; @@ -25368,7 +24563,6 @@ ); INFOPLIST_FILE = Info.plist; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25435,7 +24629,6 @@ ); INFOPLIST_FILE = Info.plist; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25500,7 +24693,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressStatsWidgets/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25554,7 +24746,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressStatsWidgets/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25607,7 +24798,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressStatsWidgets/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25660,7 +24850,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressStatsWidgets/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25713,7 +24902,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = UITestsFoundation/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25763,7 +24951,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = UITestsFoundation/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25811,7 +24998,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = UITestsFoundation/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25859,7 +25045,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = UITestsFoundation/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25906,7 +25091,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = WordPressNotificationContentExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -25955,7 +25139,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = WordPressNotificationContentExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26002,7 +25185,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressNotificationContentExtension/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26049,7 +25231,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressNotificationContentExtension/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26097,7 +25278,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = WordPressNotificationServiceExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26147,7 +25327,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = WordPressNotificationServiceExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26195,7 +25374,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressNotificationServiceExtension/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26243,7 +25421,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressNotificationServiceExtension/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26297,7 +25474,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = WordPressDraftActionExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26353,7 +25529,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = WordPressDraftActionExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26408,7 +25583,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = "WordPressDraftActionExtension/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26463,7 +25637,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = "WordPressDraftActionExtension/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26537,7 +25710,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = JetpackShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -26608,7 +25780,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = JetpackShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -26678,7 +25849,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = "JetpackShareExtension/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -26749,7 +25919,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = "JetpackShareExtension/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -26803,7 +25972,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = JetpackDraftActionExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26860,7 +26028,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = JetpackDraftActionExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26916,7 +26083,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = "JetpackDraftActionExtension/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -26972,7 +26138,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = "JetpackDraftActionExtension/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27022,7 +26187,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = JetpackNotificationServiceExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27073,7 +26237,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = JetpackNotificationServiceExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27122,7 +26285,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "JetpackNotificationServiceExtension/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27171,7 +26333,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "JetpackNotificationServiceExtension/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27226,7 +26387,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27276,7 +26436,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27323,7 +26482,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27369,7 +26527,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27422,7 +26579,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; OTHER_CFLAGS = ( "-Wno-incomplete-umbrella", "-Wno-format-security", @@ -27474,7 +26630,6 @@ ); INFOPLIST_FILE = "WordPress-Alpha-Info.plist"; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -27550,63 +26705,6 @@ }; name = "Release-Alpha"; }; - 8546B4471BEAD39700193C07 /* Release-Alpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0F01F606071B0B9BD9DB34DE /* Pods-WordPressTodayWidget.release-alpha.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = "$(inherited)"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "WordPressTodayWidget/WordPressTodayWidget-Alpha.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; - COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = 99KV9Z6BKV; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressTodayWidget/TodayWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - ALPHA_BUILD, - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - INFOPLIST_FILE = "WordPressTodayWidget/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.wordpress.alpha.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.wordpress.alpha.WordPressTodayWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressTodayWidget/WordPressTodayWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpalpha; - }; - name = "Release-Alpha"; - }; 932225B21C7CE50400443B02 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = CB1DAFB7DE085F2FF0314622 /* Pods-WordPressShareExtension.debug.xcconfig */; @@ -27660,7 +26758,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = WordPressShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -27729,7 +26826,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = WordPressShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -27797,7 +26893,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = "WordPressShareExtension/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -27866,7 +26961,6 @@ "\"$(SDKROOT)/usr/include/libxml2/\"", ); INFOPLIST_FILE = "WordPressShareExtension/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", "$(inherited)", @@ -27921,7 +27015,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; OTHER_CFLAGS = ( "-Wno-incomplete-umbrella", "-Wno-format-security", @@ -27974,7 +27067,6 @@ ); INFOPLIST_FILE = "WordPress-Internal-Info.plist"; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -28040,655 +27132,122 @@ }; name = "Release-Internal"; }; - 93E5284919A7741A003A1A9C /* Debug */ = { + A2795808198819DE0031C6A3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 368127CE6F1CA15EC198147D /* Pods-WordPressTodayWidget.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = "$(inherited)"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = WordPressTodayWidget/WordPressTodayWidget.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressTodayWidget/TodayWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - INFOPLIST_FILE = WordPressTodayWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.wordpress.$(PRODUCT_NAME:rfc1034identifier)"; + CLANG_ENABLE_OBJC_WEAK = YES; + GCC_GENERATE_TEST_COVERAGE_FILES = NO; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "WordPress Today Widget Development"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressTodayWidget/WordPressTodayWidget-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpdebug; }; name = Debug; }; - 93E5284A19A7741A003A1A9C /* Release */ = { + A2795809198819DE0031C6A3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = YES; + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + A279580A198819DE0031C6A3 /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 37E3F5EA2ED7005A5E0BBEC3 /* Pods-WordPressTodayWidget.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = YES; + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Release-Internal"; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F14B5F70208E648200439554 /* WordPress.debug.xcconfig */; + buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = "$(inherited)"; - CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = WordPressTodayWidget/WordPressTodayWidget.entitlements; - CODE_SIGN_IDENTITY = "Apple Distribution: Automattic, Inc. (PZYM8XX95Q)"; - COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; DEVELOPMENT_TEAM = PZYM8XX95Q; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressTodayWidget/TodayWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ); + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_THUMB_SUPPORT = NO; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; - INFOPLIST_FILE = WordPressTodayWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.wordpress.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match AppStore org.wordpress.WordPressTodayWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressTodayWidget/WordPressTodayWidget-Bridging-Header.h"; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "-Wno-incomplete-umbrella", + "-Wno-format-security", + "-DDEBUG", + ); + OTHER_LDFLAGS = ( + "-lxml2", + "-licucore", + ); + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wordpress; + WPCOM_CONFIG = "$(SRCROOT)/../.configure-files/wpcom_app_credentials"; }; - name = Release; + name = Debug; }; - 93E5284B19A7741A003A1A9C /* Release-Internal */ = { + C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 99D675225C3282AC88B89F04 /* Pods-WordPressTodayWidget.release-internal.xcconfig */; + baseConfigurationReference = F14B5F71208E648200439554 /* WordPress.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = "$(inherited)"; - CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "WordPressTodayWidget/WordPressTodayWidget-Internal.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; - COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = 99KV9Z6BKV; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = PZYM8XX95Q; ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressTodayWidget/TodayWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - INTERNAL_BUILD, - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - INFOPLIST_FILE = "WordPressTodayWidget/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.wordpress.internal.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.wordpress.internal.WordPressTodayWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressTodayWidget/WordPressTodayWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpinternal; - }; - name = "Release-Internal"; - }; - 98A3C2FB239997DB0048D38D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D1216A69ECC61E7772AB8C41 /* Pods-WordPressThisWeekWidget.debug.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = WordPressThisWeekWidget/WordPressThisWeekWidget.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = PZYM8XX95Q; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressThisWeekWidget/ThisWeekWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = WordPressThisWeekWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressThisWeekWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "WordPress This Week Widget Development"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressThisWeekWidget/WordPressThisWeekWidget-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpdebug; - }; - name = Debug; - }; - 98A3C2FC239997DB0048D38D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7DFD69454E24EC0A1A0BACCD /* Pods-WordPressThisWeekWidget.release.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = WordPressThisWeekWidget/WordPressThisWeekWidget.entitlements; - CODE_SIGN_IDENTITY = "Apple Distribution: Automattic, Inc. (PZYM8XX95Q)"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = PZYM8XX95Q; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressThisWeekWidget/ThisWeekWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - "$(inherited)", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = WordPressThisWeekWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressThisWeekWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match AppStore org.wordpress.WordPressThisWeekWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressThisWeekWidget/WordPressThisWeekWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wordpress; - }; - name = Release; - }; - 98A3C2FD239997DB0048D38D /* Release-Internal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8E65034AFB7DC85D70CCC064 /* Pods-WordPressThisWeekWidget.release-internal.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = "WordPressThisWeekWidget/WordPressThisWeekWidget-Internal.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 99KV9Z6BKV; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressThisWeekWidget/ThisWeekWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - INTERNAL_BUILD, - "$(inherited)", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = WordPressThisWeekWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.internal.WordPressThisWeekWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.wordpress.internal.WordPressThisWeekWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressThisWeekWidget/WordPressThisWeekWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpinternal; - }; - name = "Release-Internal"; - }; - 98A3C2FE239997DB0048D38D /* Release-Alpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 40F031E19B32BAF8654838C0 /* Pods-WordPressThisWeekWidget.release-alpha.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = "WordPressThisWeekWidget/WordPressThisWeekWidget-Alpha.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 99KV9Z6BKV; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressThisWeekWidget/ThisWeekWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ALPHA_BUILD, - "$(inherited)", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = WordPressThisWeekWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.alpha.WordPressThisWeekWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.wordpress.alpha.WordPressThisWeekWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressThisWeekWidget/WordPressThisWeekWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpalpha; - }; - name = "Release-Alpha"; - }; - 98D31B9A2396ED7F009CFF43 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0EAD25F1E69B6B91783C4963 /* Pods-WordPressAllTimeWidget.debug.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = WordPressAllTimeWidget/WordPressAllTimeWidget.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = PZYM8XX95Q; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressAllTimeWidget/AllTimeWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = WordPressAllTimeWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressAllTimeWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "WordPress All Time Widget Development"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressAllTimeWidget/WordPressAllTimeWidget-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpdebug; - }; - name = Debug; - }; - 98D31B9B2396ED7F009CFF43 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6A9F41AAF18FB527262CC57C /* Pods-WordPressAllTimeWidget.release.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = WordPressAllTimeWidget/WordPressAllTimeWidget.entitlements; - CODE_SIGN_IDENTITY = "Apple Distribution: Automattic, Inc. (PZYM8XX95Q)"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = PZYM8XX95Q; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressAllTimeWidget/AllTimeWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = WordPressAllTimeWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressAllTimeWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match AppStore org.wordpress.WordPressAllTimeWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressAllTimeWidget/WordPressAllTimeWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wordpress; - }; - name = Release; - }; - 98D31B9C2396ED7F009CFF43 /* Release-Internal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 41341F0000A9A65A3326F2EC /* Pods-WordPressAllTimeWidget.release-internal.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = "WordPressAllTimeWidget/WordPressAllTimeWidget-Internal.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 99KV9Z6BKV; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressAllTimeWidget/AllTimeWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - INTERNAL_BUILD, - "$(inherited)", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = "WordPressAllTimeWidget/Info-Internal.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.internal.WordPressAllTimeWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.wordpress.internal.WordPressAllTimeWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressAllTimeWidget/WordPressAllTimeWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpinternal; - }; - name = "Release-Internal"; - }; - 98D31B9D2396ED7F009CFF43 /* Release-Alpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E5B3F5F559826C230DB0DCDD /* Pods-WordPressAllTimeWidget.release-alpha.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = "WordPressAllTimeWidget/WordPressAllTimeWidget-Alpha.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 99KV9Z6BKV; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = WordPressAllTimeWidget/AllTimeWidgetPrefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = ( - ALPHA_BUILD, - "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", - "$(inherited)", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = "WordPressAllTimeWidget/Info-Alpha.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.alpha.WordPressAllTimeWidget; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.wordpress.alpha.WordPressAllTimeWidget"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "WordPressAllTimeWidget/WordPressAllTimeWidget-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - WPCOM_SCHEME = wpalpha; - }; - name = "Release-Alpha"; - }; - A2795808198819DE0031C6A3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - A2795809198819DE0031C6A3 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - A279580A198819DE0031C6A3 /* Release-Internal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = "Release-Internal"; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F14B5F70208E648200439554 /* WordPress.debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = PZYM8XX95Q; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = c99; GCC_NO_COMMON_BLOCKS = YES; GCC_THUMB_SUPPORT = NO; @@ -28699,64 +27258,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "-Wno-incomplete-umbrella", - "-Wno-format-security", - "-DDEBUG", - ); - OTHER_LDFLAGS = ( - "-lxml2", - "-licucore", - ); - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; - SWIFT_VERSION = 5.0; - WPCOM_CONFIG = "$(SRCROOT)/../.configure-files/wpcom_app_credentials"; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F14B5F71208E648200439554 /* WordPress.release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = PZYM8XX95Q; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_THUMB_SUPPORT = NO; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; OTHER_CFLAGS = ( "-Wno-incomplete-umbrella", "-Wno-format-security", @@ -28881,7 +27382,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressIntents/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -28933,7 +27433,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressIntents/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -28984,7 +27483,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressIntents/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29035,7 +27533,6 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = "WordPressIntents/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29090,7 +27587,6 @@ ); INFOPLIST_FILE = Jetpack/Info.plist; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29160,7 +27656,6 @@ ); INFOPLIST_FILE = Jetpack/Info.plist; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29229,7 +27724,6 @@ ); INFOPLIST_FILE = Jetpack/Info.plist; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29297,7 +27791,6 @@ ); INFOPLIST_FILE = Jetpack/Info.plist; INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29367,7 +27860,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = JetpackScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29417,7 +27909,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = JetpackScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29464,7 +27955,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = JetpackScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29510,7 +28000,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = JetpackScreenshotGeneration/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29564,7 +28053,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29614,7 +28102,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29661,7 +28148,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29706,7 +28192,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = WordPressUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -29913,39 +28398,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 93E5284D19A7741A003A1A9C /* Build configuration list for PBXNativeTarget "WordPressTodayWidget" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 93E5284919A7741A003A1A9C /* Debug */, - 93E5284A19A7741A003A1A9C /* Release */, - 93E5284B19A7741A003A1A9C /* Release-Internal */, - 8546B4471BEAD39700193C07 /* Release-Alpha */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 98A3C2FF239997DB0048D38D /* Build configuration list for PBXNativeTarget "WordPressThisWeekWidget" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 98A3C2FB239997DB0048D38D /* Debug */, - 98A3C2FC239997DB0048D38D /* Release */, - 98A3C2FD239997DB0048D38D /* Release-Internal */, - 98A3C2FE239997DB0048D38D /* Release-Alpha */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 98D31B9E2396ED7F009CFF43 /* Build configuration list for PBXNativeTarget "WordPressAllTimeWidget" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 98D31B9A2396ED7F009CFF43 /* Debug */, - 98D31B9B2396ED7F009CFF43 /* Release */, - 98D31B9C2396ED7F009CFF43 /* Release-Internal */, - 98D31B9D2396ED7F009CFF43 /* Release-Alpha */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; A279580C198819DE0031C6A3 /* Build configuration list for PBXAggregateTarget "OCLint" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/WordPress/WordPress.xcodeproj/xcshareddata/xcschemes/WordPressTodayWidget.xcscheme b/WordPress/WordPress.xcodeproj/xcshareddata/xcschemes/WordPressTodayWidget.xcscheme deleted file mode 100644 index b9516b827d6d..000000000000 --- a/WordPress/WordPress.xcodeproj/xcshareddata/xcschemes/WordPressTodayWidget.xcscheme +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/WordPressAllTimeWidget/AllTimeViewController.swift b/WordPress/WordPressAllTimeWidget/AllTimeViewController.swift deleted file mode 100644 index b31e3419fc6a..000000000000 --- a/WordPress/WordPressAllTimeWidget/AllTimeViewController.swift +++ /dev/null @@ -1,490 +0,0 @@ -import UIKit -import NotificationCenter -import WordPressKit -import WordPressUI -import Reachability - -class AllTimeViewController: UIViewController { - - // MARK: - Properties - - @IBOutlet private var tableView: UITableView! - - private var statsValues: AllTimeWidgetStats? { - didSet { - updateStatsLabels() - tableView.reloadData() - } - } - - private var visitorCount: String = Constants.noDataLabel - private var viewCount: String = Constants.noDataLabel - private var postCount: String = Constants.noDataLabel - private var bestCount: String = Constants.noDataLabel - private var siteUrl: String = Constants.noDataLabel - - private var haveSiteUrl: Bool { - siteUrl != Constants.noDataLabel - } - - private var siteID: NSNumber? - private var timeZone: TimeZone? - private var oauthToken: String? - - private var isConfigured = false { - didSet { - setAvailableDisplayMode() - } - } - - private var isReachable = true { - didSet { - setAvailableDisplayMode() - - if isReachable != oldValue, - let completionHandler = widgetCompletionBlock { - widgetPerformUpdate(completionHandler: completionHandler) - } - } - } - - private var showNoConnection: Bool { - return !isReachable && statsValues == nil - } - - private var loadingFailed = false { - didSet { - setAvailableDisplayMode() - - if loadingFailed != oldValue { - tableView.reloadData() - } - } - } - - private var failedState: Bool { - return !isConfigured || showNoConnection || loadingFailed - } - - private let tracks = Tracks(appGroupName: WPAppGroupName) - private let reachability: Reachability = .forInternetConnection() - - private typealias WidgetCompletionBlock = (NCUpdateResult) -> Void - private var widgetCompletionBlock: WidgetCompletionBlock? - - // MARK: - View - - override func viewDidLoad() { - super.viewDidLoad() - retrieveSiteConfiguration() - registerTableCells() - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - loadSavedData() - setupReachability() - resizeView() - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - reachability.stopNotifier() - } - - override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { - super.viewWillTransition(to: size, with: coordinator) - - let updatedRowCount = numberOfRowsToDisplay() - - // If the number of rows has not changed, do nothing. - guard updatedRowCount != tableView.numberOfRows(inSection: 0) else { - return - } - - coordinator.animate(alongsideTransition: { _ in - self.tableView.performBatchUpdates({ - - var indexPathsToInsert = [IndexPath]() - var indexPathsToDelete = [IndexPath]() - - // If no connection was displayed, then rows are just being added. - // Otherwise, a data row is being inserted/deleted. - if self.tableView.visibleCells.first is WidgetNoConnectionCell { - let indexRange = (1.. self.minRowsToDisplay() ? - self.tableView.insertRows(at: indexPathsToInsert, with: .fade) : - self.tableView.deleteRows(at: indexPathsToDelete, with: .fade) - }) - }) - } - -} - -// MARK: - Widget Updating - -extension AllTimeViewController: NCWidgetProviding { - - func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) { - widgetCompletionBlock = completionHandler - retrieveSiteConfiguration() - isReachable = reachability.isReachable() - - if !isConfigured || !isReachable { - DDLogError("All Time Widget: unable to update. Configured: \(isConfigured) Reachable: \(isReachable)") - - DispatchQueue.main.async { [weak self] in - self?.tableView.reloadData() - } - - completionHandler(.failed) - return - } - - fetchData(completionHandler: completionHandler) - } - - func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { - tracks.trackDisplayModeChanged(properties: ["expanded": activeDisplayMode == .expanded]) - resizeView(withMaximumSize: maxSize) - } - -} - -// MARK: - Table View Methods - -extension AllTimeViewController: UITableViewDelegate, UITableViewDataSource { - - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return numberOfRowsToDisplay() - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - if showNoConnection { - return noConnectionCellFor(indexPath: indexPath) - } - - if !isConfigured || loadingFailed { - return unconfiguredCellFor(indexPath: indexPath) - } - - return statCellFor(indexPath: indexPath) - } - - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - - if failedState, - let maxCompactSize = extensionContext?.widgetMaximumSize(for: .compact) { - // Use the max compact height for unconfigured view. - return maxCompactSize.height - } - - if showUrl() && indexPath.row == numberOfRowsToDisplay() - 1 { - return WidgetUrlCell.height - } - - return UITableView.automaticDimension - } - -} - -// MARK: - Private Extension - -private extension AllTimeViewController { - - // MARK: - Tap Gesture Handling - - @IBAction func handleTapGesture() { - - // If showing the loading failed view, reload the widget. - if loadingFailed, - let completionHandler = widgetCompletionBlock { - widgetPerformUpdate(completionHandler: completionHandler) - return - } - - // Otherwise, open the app. - guard isReachable, - let extensionContext = extensionContext, - let containingAppURL = appURL() else { - DDLogError("All Time Widget: Unable to get extensionContext or appURL.") - return - } - - trackAppLaunch() - extensionContext.open(containingAppURL, completionHandler: nil) - } - - func appURL() -> URL? { - let urlString = (siteID != nil) ? (Constants.statsUrl + siteID!.stringValue) : Constants.baseUrl - return URL(string: urlString) - } - - func trackAppLaunch() { - guard let siteID = siteID else { - tracks.trackExtensionConfigureLaunched() - return - } - - tracks.trackExtensionStatsLaunched(siteID.intValue) - } - - // MARK: - Site Configuration - - func retrieveSiteConfiguration() { - guard let sharedDefaults = UserDefaults(suiteName: WPAppGroupName) else { - DDLogError("All Time Widget: Unable to get sharedDefaults.") - isConfigured = false - return - } - - siteID = sharedDefaults.object(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteIdKey) as? NSNumber - siteUrl = sharedDefaults.string(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteUrlKey) ?? Constants.noDataLabel - oauthToken = fetchOAuthBearerToken() - - if let timeZoneName = sharedDefaults.string(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteTimeZoneKey) { - timeZone = TimeZone(identifier: timeZoneName) - } - - isConfigured = siteID != nil && timeZone != nil && oauthToken != nil - } - - func fetchOAuthBearerToken() -> String? { - let oauth2Token = try? KeychainUtils.shared.getPasswordForUsername(AppConfiguration.Widget.Stats.keychainTokenKey, serviceName: AppConfiguration.Widget.Stats.keychainServiceName, accessGroup: WPAppKeychainAccessGroup) - - return oauth2Token as String? - } - - // MARK: - Data Management - - func loadSavedData() { - statsValues = AllTimeWidgetStats.loadSavedData() - } - - func saveData() { - statsValues?.saveData() - } - - func fetchData(completionHandler: (@escaping (NCUpdateResult) -> Void)) { - guard let statsRemote = statsRemote() else { - return - } - - statsRemote.getInsight { [weak self] (allTimesStats: StatsAllTimesInsight?, error) in - self?.loadingFailed = (error != nil) - - if error != nil { - DDLogError("All Time Widget: Error fetching StatsAllTimesInsight: \(String(describing: error?.localizedDescription))") - completionHandler(.failed) - return - } - - DDLogDebug("All Time Widget: Fetched StatsAllTimesInsight data.") - - DispatchQueue.main.async { [weak self] in - let updatedStats = AllTimeWidgetStats(views: allTimesStats?.viewsCount, - visitors: allTimesStats?.visitorsCount, - posts: allTimesStats?.postsCount, - bestViews: allTimesStats?.bestViewsPerDayCount) - - // Update the widget only if the data has changed. - guard updatedStats != self?.statsValues else { - completionHandler(.noData) - return - } - - self?.statsValues = updatedStats - completionHandler(.newData) - self?.saveData() - } - } - } - - func statsRemote() -> StatsServiceRemoteV2? { - guard - let siteID = siteID, - let timeZone = timeZone, - let oauthToken = oauthToken - else { - DDLogError("All Time Widget: Missing site ID, timeZone or oauth2Token") - return nil - } - - let wpApi = WordPressComRestApi(oAuthToken: oauthToken) - return StatsServiceRemoteV2(wordPressComRestApi: wpApi, siteID: siteID.intValue, siteTimezone: timeZone) - } - - // MARK: - Table Helpers - - func registerTableCells() { - let twoColumnCellNib = UINib(nibName: String(describing: WidgetTwoColumnCell.self), bundle: Bundle(for: WidgetTwoColumnCell.self)) - tableView.register(twoColumnCellNib, forCellReuseIdentifier: WidgetTwoColumnCell.reuseIdentifier) - - let unconfiguredCellNib = UINib(nibName: String(describing: WidgetUnconfiguredCell.self), bundle: Bundle(for: WidgetUnconfiguredCell.self)) - tableView.register(unconfiguredCellNib, forCellReuseIdentifier: WidgetUnconfiguredCell.reuseIdentifier) - - let urlCellNib = UINib(nibName: String(describing: WidgetUrlCell.self), bundle: Bundle(for: WidgetUrlCell.self)) - tableView.register(urlCellNib, forCellReuseIdentifier: WidgetUrlCell.reuseIdentifier) - - let noConnectionCellNib = UINib(nibName: String(describing: WidgetNoConnectionCell.self), bundle: Bundle(for: WidgetNoConnectionCell.self)) - tableView.register(noConnectionCellNib, forCellReuseIdentifier: WidgetNoConnectionCell.reuseIdentifier) - } - - func noConnectionCellFor(indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetNoConnectionCell.reuseIdentifier, for: indexPath) as? WidgetNoConnectionCell else { - return UITableViewCell() - } - - return cell - } - - func unconfiguredCellFor(indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetUnconfiguredCell.reuseIdentifier, for: indexPath) as? WidgetUnconfiguredCell else { - return UITableViewCell() - } - - loadingFailed ? cell.configure(for: .loadingFailed) : cell.configure(for: .allTime) - return cell - } - - func statCellFor(indexPath: IndexPath) -> UITableViewCell { - - // URL Cell - if showUrl() && indexPath.row == numberOfRowsToDisplay() - 1 { - guard let urlCell = tableView.dequeueReusableCell(withIdentifier: WidgetUrlCell.reuseIdentifier, for: indexPath) as? WidgetUrlCell else { - return UITableViewCell() - } - - urlCell.configure(siteUrl: siteUrl) - return urlCell - } - - // Data Cells - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetTwoColumnCell.reuseIdentifier, for: indexPath) as? WidgetTwoColumnCell else { - return UITableViewCell() - } - - if indexPath.row == 0 { - cell.configure(leftItemName: LocalizedText.views, - leftItemData: viewCount, - rightItemName: LocalizedText.visitors, - rightItemData: visitorCount) - } else { - cell.configure(leftItemName: LocalizedText.posts, - leftItemData: postCount, - rightItemName: LocalizedText.bestViews, - rightItemData: bestCount) - } - - return cell - } - - func showUrl() -> Bool { - return (isConfigured && haveSiteUrl) - } - - // MARK: - Expand / Compact View Helpers - - func setAvailableDisplayMode() { - // If something went wrong, don't allow the widget to be expanded. - extensionContext?.widgetLargestAvailableDisplayMode = failedState ? .compact : .expanded - } - - func minRowsToDisplay() -> Int { - return showUrl() ? 2 : 1 - } - - func maxRowsToDisplay() -> Int { - return showUrl() ? 3 : 2 - } - - func numberOfRowsToDisplay() -> Int { - return extensionContext?.widgetActiveDisplayMode == .compact ? minRowsToDisplay() : maxRowsToDisplay() - } - - func resizeView(withMaximumSize size: CGSize? = nil) { - guard let maxSize = size ?? extensionContext?.widgetMaximumSize(for: .compact) else { - return - } - - let expanded = extensionContext?.widgetActiveDisplayMode == .expanded - preferredContentSize = expanded ? CGSize(width: maxSize.width, height: expandedHeight()) : maxSize - } - - func expandedHeight() -> CGFloat { - var height: CGFloat = 0 - let dataRowHeight: CGFloat - - // This method is called before the rows are updated. - // So if a no connection cell was displayed, use the default height for data rows. - // Otherwise, use the actual height from the first data row. - if tableView.visibleCells.first is WidgetNoConnectionCell { - dataRowHeight = WidgetTwoColumnCell.defaultHeight - } else { - dataRowHeight = tableView.rectForRow(at: IndexPath(row: 0, section: 0)).height - } - - let numRows = numberOfRowsToDisplay() - - if showUrl() { - height += WidgetUrlCell.height - height += (dataRowHeight * CGFloat(numRows - 1)) - } else { - height += (dataRowHeight * CGFloat(numRows)) - } - - return height - } - // MARK: - Reachability - - func setupReachability() { - isReachable = reachability.isReachable() - - NotificationCenter.default.addObserver(self, - selector: #selector(reachabilityChanged), - name: NSNotification.Name.reachabilityChanged, - object: nil) - reachability.startNotifier() - } - - @objc func reachabilityChanged() { - isReachable = reachability.isReachable() - } - - // MARK: - Helpers - - func updateStatsLabels() { - guard let values = statsValues else { - return - } - - viewCount = values.views.abbreviatedString() - visitorCount = values.visitors.abbreviatedString() - postCount = values.posts.abbreviatedString() - bestCount = values.bestViews.abbreviatedString() - } - - // MARK: - Constants - - enum LocalizedText { - static let visitors = AppLocalizedString("Visitors", comment: "Stats Visitors Label") - static let views = AppLocalizedString("Views", comment: "Stats Views Label") - static let posts = AppLocalizedString("Posts", comment: "Stats Posts Label") - static let bestViews = AppLocalizedString("Best views ever", comment: "Stats 'Best views ever' Label") - } - - enum Constants { - static let noDataLabel = "-" - static let baseUrl: String = "\(WPComScheme)://" - static let statsUrl: String = Constants.baseUrl + "viewstats?siteId=" - } - -} diff --git a/WordPress/WordPressAllTimeWidget/AllTimeWidgetPrefix.pch b/WordPress/WordPressAllTimeWidget/AllTimeWidgetPrefix.pch deleted file mode 100644 index eb1f13aa03b1..000000000000 --- a/WordPress/WordPressAllTimeWidget/AllTimeWidgetPrefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -#ifdef __OBJC__ - -#ifndef WPCOM_SCHEME -#warning WPCOM_SCHEME is not defined for this target configuration! Defaulting to "wordpress". -#define WPCOM_SCHEME @"wordpress" -#endif - -#endif diff --git a/WordPress/WordPressAllTimeWidget/Info-Alpha.plist b/WordPress/WordPressAllTimeWidget/Info-Alpha.plist deleted file mode 100644 index ce19037c41dd..000000000000 --- a/WordPress/WordPressAllTimeWidget/Info-Alpha.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - WordPress All-Time (Alpha) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleSignature - ???? - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressAllTimeWidget/Info-Internal.plist b/WordPress/WordPressAllTimeWidget/Info-Internal.plist deleted file mode 100644 index 8cbe937b2004..000000000000 --- a/WordPress/WordPressAllTimeWidget/Info-Internal.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - WordPress All-Time (Internal) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleSignature - ???? - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressAllTimeWidget/Info.plist b/WordPress/WordPressAllTimeWidget/Info.plist deleted file mode 100644 index 3f9ac883dfc1..000000000000 --- a/WordPress/WordPressAllTimeWidget/Info.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - WordPress All-Time - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleSignature - ???? - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressAllTimeWidget/MainInterface.storyboard b/WordPress/WordPressAllTimeWidget/MainInterface.storyboard deleted file mode 100644 index 142c2c92e912..000000000000 --- a/WordPress/WordPressAllTimeWidget/MainInterface.storyboard +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/WordPressAllTimeWidget/Tracks+AllTimeWidget.swift b/WordPress/WordPressAllTimeWidget/Tracks+AllTimeWidget.swift deleted file mode 100644 index 37b74650a2b5..000000000000 --- a/WordPress/WordPressAllTimeWidget/Tracks+AllTimeWidget.swift +++ /dev/null @@ -1,37 +0,0 @@ -import Foundation - - -/// This extension implements helper tracking methods, meant for Today Widget Usage. -/// -extension Tracks { - - // MARK: - Public Methods - - public func trackExtensionStatsLaunched(_ siteID: Int) { - let properties = ["site_id": siteID] - trackExtensionEvent(.statsLaunched, properties: properties as [String: AnyObject]?) - } - - public func trackExtensionConfigureLaunched() { - trackExtensionEvent(.configureLaunched) - } - - public func trackDisplayModeChanged(properties: [String: Bool]) { - trackExtensionEvent(.displayModeChanged, properties: properties as [String: AnyObject]) - } - - // MARK: - Private Helpers - - fileprivate func trackExtensionEvent(_ event: ExtensionEvents, properties: [String: AnyObject]? = nil) { - track(event.rawValue, properties: properties) - } - - - // MARK: - Private Enums - - fileprivate enum ExtensionEvents: String { - case statsLaunched = "wpios_all_time_extension_stats_launched" - case configureLaunched = "wpios_all_time_extension_configure_launched" - case displayModeChanged = "wpios_all_time_extension_display_mode_changed" - } -} diff --git a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Alpha.entitlements b/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Alpha.entitlements deleted file mode 100644 index dca30c5b176d..000000000000 --- a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Alpha.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress.alpha - - keychain-access-groups - - 99KV9Z6BKV.org.wordpress.alpha - - - diff --git a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Bridging-Header.h b/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Bridging-Header.h deleted file mode 100644 index ff4dac2f06fc..000000000000 --- a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Bridging-Header.h +++ /dev/null @@ -1,2 +0,0 @@ -#import "SFHFKeychainUtils.h" -#import "Constants.h" diff --git a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Internal.entitlements b/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Internal.entitlements deleted file mode 100644 index 54ecf75e3680..000000000000 --- a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget-Internal.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress.internal - - keychain-access-groups - - 99KV9Z6BKV.org.wordpress.internal - - - diff --git a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget.entitlements b/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget.entitlements deleted file mode 100644 index 7eb5daa80a0d..000000000000 --- a/WordPress/WordPressAllTimeWidget/WordPressAllTimeWidget.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress - - keychain-access-groups - - 3TMU3BH3NK.org.wordpress - - - diff --git a/WordPress/WordPressTest/ViewRelated/Post/Controllers/SchedulingCalendarViewControllerTests.swift b/WordPress/WordPressTest/ViewRelated/Post/Controllers/SchedulingCalendarViewControllerTests.swift deleted file mode 100644 index 2fb4ce31e19b..000000000000 --- a/WordPress/WordPressTest/ViewRelated/Post/Controllers/SchedulingCalendarViewControllerTests.swift +++ /dev/null @@ -1,70 +0,0 @@ -import XCTest -@testable import WordPress - -class SchedulingCalendarViewControllerTests: XCTestCase { - - var calendarVC: SchedulingCalendarViewController? - var navigationController: UINavigationController? - - override func setUp() { - calendarVC = SchedulingCalendarViewController() - navigationController = UINavigationController(rootViewController: calendarVC!) - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testVCCoordinatorPassing() { - let dateValue = Date() - let coordinator = DateCoordinator(date: dateValue, timeZone: TimeZone(secondsFromGMT: 0)!, dateFormatter: DateFormatter(), dateTimeFormatter: DateFormatter(), updated: { _ in }) - calendarVC?.coordinator = coordinator - calendarVC?.nextButtonPressed() - - let coordinatorDate = (navigationController?.topViewController as? DateCoordinatorHandler)?.coordinator?.date - - XCTAssertEqual(coordinatorDate, dateValue, "Passed date should be the same") - } - - /// Tests that the hours and minutes are retained even with a date change - func testVCCoordinatorComponents() { - let dateValue = Date() - let coordinator = DateCoordinator(date: dateValue, timeZone: TimeZone(secondsFromGMT: 0)!, dateFormatter: DateFormatter(), dateTimeFormatter: DateFormatter(), updated: { _ in }) - calendarVC?.coordinator = coordinator - calendarVC?.calendarMonthView.updated?(dateValue.addingTimeInterval(24000)) - calendarVC?.nextButtonPressed() - - let coordinatorDate = (navigationController?.topViewController as? DateCoordinatorHandler)?.coordinator?.date - - XCTAssertNotNil(coordinatorDate, "Coordinator date should not be nil") - - let newComponents = Calendar.current.dateComponents([.hour, .minute], from: coordinatorDate!) - let originalComponents = Calendar.current.dateComponents([.hour, .minute], from: dateValue) - - XCTAssertNotEqual(dateValue, coordinatorDate, "Dates should not be equal.") - XCTAssertEqual(newComponents, originalComponents, "Date should retain its hours and minutes") - } - - /// Tests that proper calendar is used based on site time zone insted of device time zone - func testVCCoordinatorCalendar() { - - let currentDate = Date() - let dateValue = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: currentDate)! - let timeZone = TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT(for: currentDate) - 60 * 60)! - - let coordinator = DateCoordinator(date: nil, timeZone: timeZone, dateFormatter: DateFormatter(), dateTimeFormatter: DateFormatter(), updated: { _ in }) - calendarVC?.coordinator = coordinator - calendarVC?.calendarMonthView.updated?(dateValue) - calendarVC?.nextButtonPressed() - - let coordinatorDate = calendarVC?.coordinator?.date - - var calendar = Calendar.current - calendar.timeZone = timeZone - - let convertedComponents = calendar.dateComponents([.year, .month, .day], from: dateValue) - let coordinatorComponents = calendar.dateComponents([.year, .month, .day], from: coordinatorDate!) - - XCTAssertEqual(coordinatorComponents, convertedComponents, "Date should be converted to proper day of time zone.") - } -} diff --git a/WordPress/WordPressTest/ViewRelated/Post/Controllers/TimePickerViewControllerTests.swift b/WordPress/WordPressTest/ViewRelated/Post/Controllers/TimePickerViewControllerTests.swift deleted file mode 100644 index a3b9c4af3ef1..000000000000 --- a/WordPress/WordPressTest/ViewRelated/Post/Controllers/TimePickerViewControllerTests.swift +++ /dev/null @@ -1,28 +0,0 @@ -import XCTest -@testable import WordPress - -class TimePickerViewControllerTests: XCTestCase { - - var timePickerVC: TimePickerViewController? - var navigationController: UINavigationController? - - override func setUp() { - timePickerVC = TimePickerViewController() - navigationController = UINavigationController(rootViewController: timePickerVC!) - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testVCCoordinatorPassing() { - let dateValue = Date() - let coordinator = DateCoordinator(date: dateValue, timeZone: TimeZone(secondsFromGMT: 0)!, dateFormatter: DateFormatter(), dateTimeFormatter: DateFormatter(), updated: { _ in }) - timePickerVC?.coordinator = coordinator - timePickerVC?.timePickerChanged(0) - - let coordinatorDate = (navigationController?.topViewController as? DateCoordinatorHandler)?.coordinator?.date - - XCTAssertEqual(coordinatorDate, dateValue, "Passed date should be the same") - } -} diff --git a/WordPress/WordPressThisWeekWidget/Info-Alpha.plist b/WordPress/WordPressThisWeekWidget/Info-Alpha.plist deleted file mode 100644 index a897f6a160f8..000000000000 --- a/WordPress/WordPressThisWeekWidget/Info-Alpha.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - WordPress This Week (Alpha) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleSignature - ???? - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressThisWeekWidget/Info-Internal.plist b/WordPress/WordPressThisWeekWidget/Info-Internal.plist deleted file mode 100644 index cf1cd66c5fc0..000000000000 --- a/WordPress/WordPressThisWeekWidget/Info-Internal.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - WordPress This Week (Internal) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleSignature - ???? - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressThisWeekWidget/Info.plist b/WordPress/WordPressThisWeekWidget/Info.plist deleted file mode 100644 index 2ad9042eac2a..000000000000 --- a/WordPress/WordPressThisWeekWidget/Info.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - WordPress This Week - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleSignature - ???? - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressThisWeekWidget/MainInterface.storyboard b/WordPress/WordPressThisWeekWidget/MainInterface.storyboard deleted file mode 100644 index 97bb81ea249d..000000000000 --- a/WordPress/WordPressThisWeekWidget/MainInterface.storyboard +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/WordPressThisWeekWidget/ThisWeekViewController.swift b/WordPress/WordPressThisWeekWidget/ThisWeekViewController.swift deleted file mode 100644 index 9d0e127ae9a8..000000000000 --- a/WordPress/WordPressThisWeekWidget/ThisWeekViewController.swift +++ /dev/null @@ -1,490 +0,0 @@ -import UIKit -import NotificationCenter -import WordPressKit -import WordPressUI -import Reachability - -class ThisWeekViewController: UIViewController { - - // MARK: - Properties - - @IBOutlet private var tableView: UITableView! - - private var siteUrl: String = Constants.noDataLabel - private var siteID: NSNumber? - private var timeZone: TimeZone? - private var oauthToken: String? - private let tracks = Tracks(appGroupName: WPAppGroupName) - private let reachability: Reachability = .forInternetConnection() - private var calculatedDataRowHeight: CGFloat? - - private typealias WidgetCompletionBlock = (NCUpdateResult) -> Void - private var widgetCompletionBlock: WidgetCompletionBlock? - - private var statsValues: ThisWeekWidgetStats? { - didSet { - tableView.reloadData() - } - } - - private var haveSiteUrl: Bool { - siteUrl != Constants.noDataLabel - } - - private var isConfigured = false { - didSet { - setAvailableDisplayMode() - } - } - - private var isReachable = true { - didSet { - setAvailableDisplayMode() - resizeView() - tableView.separatorStyle = showNoConnection ? .none : .singleLine - - if isReachable != oldValue, - let completionHandler = widgetCompletionBlock { - widgetPerformUpdate(completionHandler: completionHandler) - } - } - } - - private var showNoConnection: Bool { - return !isReachable && statsValues == nil - } - - private var loadingFailed = false { - didSet { - setAvailableDisplayMode() - - if loadingFailed != oldValue { - tableView.reloadData() - } - } - } - - private var failedState: Bool { - return !isConfigured || showNoConnection || loadingFailed - } - - // MARK: - View - - override func viewDidLoad() { - super.viewDidLoad() - retrieveSiteConfiguration() - registerTableCells() - configureTableSeparator() - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - loadSavedData() - setupReachability() - resizeView() - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - reachability.stopNotifier() - } - - override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { - super.viewWillTransition(to: size, with: coordinator) - - let updatedRowCount = numberOfRowsToDisplay() - let rowDifference = abs(updatedRowCount - tableView.numberOfRows(inSection: 0)) - - // If the number of rows has not changed, do nothing. - guard rowDifference != 0 else { - return - } - - coordinator.animate(alongsideTransition: { _ in - self.tableView.performBatchUpdates({ - - var indexPathsToInsert = [IndexPath]() - var indexPathsToDelete = [IndexPath]() - - // If no connection was displayed, then rows are just being added. - // Otherwise, data rows are being inserted/deleted. - if self.tableView.visibleCells.first is WidgetNoConnectionCell { - let indexRange = (1.. Constants.minRows ? - self.tableView.insertRows(at: indexPathsToInsert, with: .fade) : - self.tableView.deleteRows(at: indexPathsToDelete, with: .fade) - }) - }) - } - -} - -// MARK: - Widget Updating - -extension ThisWeekViewController: NCWidgetProviding { - - func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) { - widgetCompletionBlock = completionHandler - retrieveSiteConfiguration() - isReachable = reachability.isReachable() - - if !isConfigured || !isReachable { - DDLogError("This Week Widget: unable to update. Configured: \(isConfigured) Reachable: \(isReachable)") - - DispatchQueue.main.async { [weak self] in - self?.tableView.reloadData() - } - - completionHandler(.failed) - return - } - - fetchData(completionHandler: completionHandler) - } - - func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { - tracks.trackDisplayModeChanged(properties: ["expanded": activeDisplayMode == .expanded]) - resizeView(withMaximumSize: maxSize) - } - -} - -// MARK: - Table View Methods - -extension ThisWeekViewController: UITableViewDelegate, UITableViewDataSource { - - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return numberOfRowsToDisplay() - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - if showNoConnection { - return noConnectionCellFor(indexPath: indexPath) - } - - if !isConfigured || loadingFailed { - return unconfiguredCellFor(indexPath: indexPath) - } - - return statCellFor(indexPath: indexPath) - } - - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - if failedState, - let maxCompactSize = extensionContext?.widgetMaximumSize(for: .compact) { - // Use the max compact height for unconfigured view. - return maxCompactSize.height - } - - return UITableView.automaticDimension - } - -} - -// MARK: - Private Extension - -private extension ThisWeekViewController { - - // MARK: - Tap Gesture Handling - - @IBAction func handleTapGesture() { - - // If showing the loading failed view, reload the widget. - if loadingFailed, - let completionHandler = widgetCompletionBlock { - widgetPerformUpdate(completionHandler: completionHandler) - return - } - - // Otherwise, open the app. - guard isReachable, - let extensionContext = extensionContext, - let containingAppURL = appURL() else { - DDLogError("This Week Widget: Unable to get extensionContext or appURL.") - return - } - - trackAppLaunch() - extensionContext.open(containingAppURL, completionHandler: nil) - } - - func appURL() -> URL? { - let urlString = (siteID != nil) ? (Constants.statsUrl + siteID!.stringValue) : Constants.baseUrl - return URL(string: urlString) - } - - func trackAppLaunch() { - guard let siteID = siteID else { - tracks.trackExtensionConfigureLaunched() - return - } - - tracks.trackExtensionStatsLaunched(siteID.intValue) - } - - // MARK: - Site Configuration - - func retrieveSiteConfiguration() { - guard let sharedDefaults = UserDefaults(suiteName: WPAppGroupName) else { - DDLogError("This Week Widget: Unable to get sharedDefaults.") - isConfigured = false - return - } - - siteID = sharedDefaults.object(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteIdKey) as? NSNumber - siteUrl = sharedDefaults.string(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteUrlKey) ?? Constants.noDataLabel - oauthToken = fetchOAuthBearerToken() - - if let timeZoneName = sharedDefaults.string(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteTimeZoneKey) { - timeZone = TimeZone(identifier: timeZoneName) - } - - isConfigured = siteID != nil && timeZone != nil && oauthToken != nil - } - - func fetchOAuthBearerToken() -> String? { - let oauth2Token = try? KeychainUtils.shared.getPasswordForUsername(AppConfiguration.Widget.Stats.keychainTokenKey, serviceName: AppConfiguration.Widget.Stats.keychainServiceName, accessGroup: WPAppKeychainAccessGroup) - - return oauth2Token as String? - } - - // MARK: - Data Management - - func loadSavedData() { - statsValues = ThisWeekWidgetStats.loadSavedData() - } - - func saveData() { - statsValues?.saveData() - } - - func fetchData(completionHandler: (@escaping (NCUpdateResult) -> Void)) { - guard let statsRemote = statsRemote() else { - return - } - - // Get the current date in the site's time zone. - let siteTimeZone = timeZone ?? .autoupdatingCurrent - let weekEndingDate = Date().convert(from: siteTimeZone).normalizedDate() - - // Include an extra day. It's needed to get the dailyChange for the last day. - statsRemote.getData(for: .day, endingOn: weekEndingDate, limit: ThisWeekWidgetStats.maxDaysToDisplay + 1) { [weak self] (summary: StatsSummaryTimeIntervalData?, error: Error?) in - - self?.loadingFailed = (error != nil) - - if error != nil { - DDLogError("This Week Widget: Error fetching summary: \(String(describing: error?.localizedDescription))") - completionHandler(.failed) - return - } - - DDLogDebug("This Week Widget: Fetched summary data.") - - DispatchQueue.main.async { [weak self] in - let summaryData = summary?.summaryData.reversed() ?? [] - let updatedStats = ThisWeekWidgetStats(days: ThisWeekWidgetStats.daysFrom(summaryData: summaryData)) - - // Update the widget only if the data has changed. - guard updatedStats != self?.statsValues else { - completionHandler(.noData) - return - } - - self?.statsValues = updatedStats - completionHandler(.newData) - self?.saveData() - } - } - } - - func statsRemote() -> StatsServiceRemoteV2? { - guard - let siteID = siteID, - let timeZone = timeZone, - let oauthToken = oauthToken - else { - DDLogError("This Week Widget: Missing site ID, timeZone or oauth2Token") - return nil - } - - let wpApi = WordPressComRestApi(oAuthToken: oauthToken) - return StatsServiceRemoteV2(wordPressComRestApi: wpApi, siteID: siteID.intValue, siteTimezone: timeZone) - } - - // MARK: - Table Helpers - - func registerTableCells() { - let differenceCellNib = UINib(nibName: String(describing: WidgetDifferenceCell.self), bundle: Bundle(for: WidgetDifferenceCell.self)) - tableView.register(differenceCellNib, forCellReuseIdentifier: WidgetDifferenceCell.reuseIdentifier) - - let unconfiguredCellNib = UINib(nibName: String(describing: WidgetUnconfiguredCell.self), bundle: Bundle(for: WidgetUnconfiguredCell.self)) - tableView.register(unconfiguredCellNib, forCellReuseIdentifier: WidgetUnconfiguredCell.reuseIdentifier) - - let urlCellNib = UINib(nibName: String(describing: WidgetUrlCell.self), bundle: Bundle(for: WidgetUrlCell.self)) - tableView.register(urlCellNib, forCellReuseIdentifier: WidgetUrlCell.reuseIdentifier) - - let noConnectionCellNib = UINib(nibName: String(describing: WidgetNoConnectionCell.self), bundle: Bundle(for: WidgetNoConnectionCell.self)) - tableView.register(noConnectionCellNib, forCellReuseIdentifier: WidgetNoConnectionCell.reuseIdentifier) - } - - func configureTableSeparator() { - tableView.separatorColor = WidgetStyles.separatorColor - tableView.separatorEffect = WidgetStyles.separatorVibrancyEffect - } - - func noConnectionCellFor(indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetNoConnectionCell.reuseIdentifier, for: indexPath) as? WidgetNoConnectionCell else { - return UITableViewCell() - } - - return cell - } - - func unconfiguredCellFor(indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetUnconfiguredCell.reuseIdentifier, for: indexPath) as? WidgetUnconfiguredCell else { - return UITableViewCell() - } - - loadingFailed ? cell.configure(for: .loadingFailed) : cell.configure(for: .thisWeek) - return cell - } - - func statCellFor(indexPath: IndexPath) -> UITableViewCell { - - // URL Cell - if showUrl() && indexPath.row == numberOfRowsToDisplay() - 1 { - guard let urlCell = tableView.dequeueReusableCell(withIdentifier: WidgetUrlCell.reuseIdentifier, for: indexPath) as? WidgetUrlCell else { - return UITableViewCell() - } - - urlCell.configure(siteUrl: siteUrl, hideSeparator: true) - return urlCell - } - - - // Data Cells - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetDifferenceCell.reuseIdentifier, for: indexPath) as? WidgetDifferenceCell else { - return UITableViewCell() - } - - guard let statsValues = statsValues, - indexPath.row < statsValues.days.endIndex else { - cell.configure() - return cell - } - - cell.configure(day: statsValues.days[indexPath.row], isToday: indexPath.row == 0) - - return cell - } - - func showUrl() -> Bool { - return (extensionContext?.widgetActiveDisplayMode == .expanded && isConfigured && !showNoConnection && haveSiteUrl) - } - - // MARK: - Expand / Compact View Helpers - - func setAvailableDisplayMode() { - // If something went wrong, don't allow the widget to be expanded. - extensionContext?.widgetLargestAvailableDisplayMode = failedState ? .compact : .expanded - } - - func numberOfRowsToDisplay() -> Int { - if !isConfigured { - return Constants.minRows - } - - return maxRowsToDisplay() - } - - func maxRowsToDisplay() -> Int { - if showNoConnection { - return 1 - } - - guard let values = statsValues, - !values.days.isEmpty else { - // Add one for URL row - return ThisWeekWidgetStats.maxDaysToDisplay + 1 - } - - // Add one for URL row - return values.days.count + 1 - } - - func resizeView(withMaximumSize size: CGSize? = nil) { - guard let maxSize = size ?? extensionContext?.widgetMaximumSize(for: .compact) else { - return - } - - let expanded = extensionContext?.widgetActiveDisplayMode == .expanded - preferredContentSize = expanded ? CGSize(width: maxSize.width, height: expandedHeight()) : maxSize - } - - func expandedHeight() -> CGFloat { - var height: CGFloat = 0 - let dataRowHeight: CGFloat - - // This method is called before the rows are updated. - // So if a no connection cell was displayed, use either the previously calculated - // height or the default height for data rows. - // Otherwise, use the actual height from the first data row. - if tableView.visibleCells.first is WidgetNoConnectionCell { - dataRowHeight = calculatedDataRowHeight ?? WidgetDifferenceCell.defaultHeight - } else { - dataRowHeight = tableView.rectForRow(at: IndexPath(row: 0, section: 0)).height - calculatedDataRowHeight = dataRowHeight - } - - height += (dataRowHeight * CGFloat(numberOfRowsToDisplay() - 1)) - - if showUrl() { - height += WidgetUrlCell.height - } - - return height - } - - // MARK: - Reachability - - func setupReachability() { - isReachable = reachability.isReachable() - - NotificationCenter.default.addObserver(self, - selector: #selector(reachabilityChanged), - name: NSNotification.Name.reachabilityChanged, - object: nil) - reachability.startNotifier() - } - - @objc func reachabilityChanged() { - isReachable = reachability.isReachable() - } - - // MARK: - Constants - - enum Constants { - static let noDataLabel = "-" - static let baseUrl: String = "\(WPComScheme)://" - static let statsUrl: String = Constants.baseUrl + "viewstats?siteId=" - static let minRows: Int = 2 - } - -} - -private extension Date { - func convert(from timeZone: TimeZone, comparedWith target: TimeZone = TimeZone.current) -> Date { - let delta = TimeInterval(timeZone.secondsFromGMT(for: self) - target.secondsFromGMT(for: self)) - return addingTimeInterval(delta) - } -} diff --git a/WordPress/WordPressThisWeekWidget/ThisWeekWidgetPrefix.pch b/WordPress/WordPressThisWeekWidget/ThisWeekWidgetPrefix.pch deleted file mode 100644 index eb1f13aa03b1..000000000000 --- a/WordPress/WordPressThisWeekWidget/ThisWeekWidgetPrefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -#ifdef __OBJC__ - -#ifndef WPCOM_SCHEME -#warning WPCOM_SCHEME is not defined for this target configuration! Defaulting to "wordpress". -#define WPCOM_SCHEME @"wordpress" -#endif - -#endif diff --git a/WordPress/WordPressThisWeekWidget/Tracks+ThisWeekWidget.swift b/WordPress/WordPressThisWeekWidget/Tracks+ThisWeekWidget.swift deleted file mode 100644 index ab89870171fc..000000000000 --- a/WordPress/WordPressThisWeekWidget/Tracks+ThisWeekWidget.swift +++ /dev/null @@ -1,37 +0,0 @@ -import Foundation - - -/// This extension implements helper tracking methods, meant for Today Widget Usage. -/// -extension Tracks { - - // MARK: - Public Methods - - public func trackExtensionStatsLaunched(_ siteID: Int) { - let properties = ["site_id": siteID] - trackExtensionEvent(.statsLaunched, properties: properties as [String: AnyObject]?) - } - - public func trackExtensionConfigureLaunched() { - trackExtensionEvent(.configureLaunched) - } - - public func trackDisplayModeChanged(properties: [String: Bool]) { - trackExtensionEvent(.displayModeChanged, properties: properties as [String: AnyObject]) - } - - // MARK: - Private Helpers - - fileprivate func trackExtensionEvent(_ event: ExtensionEvents, properties: [String: AnyObject]? = nil) { - track(event.rawValue, properties: properties) - } - - - // MARK: - Private Enums - - fileprivate enum ExtensionEvents: String { - case statsLaunched = "wpios_week_views_extension_stats_launched" - case configureLaunched = "wpios_week_views_extension_configure_launched" - case displayModeChanged = "wpios_week_views_extension_display_mode_changed" - } -} diff --git a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Alpha.entitlements b/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Alpha.entitlements deleted file mode 100644 index dca30c5b176d..000000000000 --- a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Alpha.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress.alpha - - keychain-access-groups - - 99KV9Z6BKV.org.wordpress.alpha - - - diff --git a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Bridging-Header.h b/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Bridging-Header.h deleted file mode 100644 index ff4dac2f06fc..000000000000 --- a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Bridging-Header.h +++ /dev/null @@ -1,2 +0,0 @@ -#import "SFHFKeychainUtils.h" -#import "Constants.h" diff --git a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Internal.entitlements b/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Internal.entitlements deleted file mode 100644 index 54ecf75e3680..000000000000 --- a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget-Internal.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress.internal - - keychain-access-groups - - 99KV9Z6BKV.org.wordpress.internal - - - diff --git a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget.entitlements b/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget.entitlements deleted file mode 100644 index 7eb5daa80a0d..000000000000 --- a/WordPress/WordPressThisWeekWidget/WordPressThisWeekWidget.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress - - keychain-access-groups - - 3TMU3BH3NK.org.wordpress - - - diff --git a/WordPress/WordPressTodayWidget/Info-Alpha.plist b/WordPress/WordPressTodayWidget/Info-Alpha.plist deleted file mode 100644 index abe4acb8a34f..000000000000 --- a/WordPress/WordPressTodayWidget/Info-Alpha.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - WordPress Today (Alpha) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleSignature - ???? - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressTodayWidget/Info-Internal.plist b/WordPress/WordPressTodayWidget/Info-Internal.plist deleted file mode 100644 index 2b30787ddb2f..000000000000 --- a/WordPress/WordPressTodayWidget/Info-Internal.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - WordPress Today (Internal) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleSignature - ???? - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressTodayWidget/Info.plist b/WordPress/WordPressTodayWidget/Info.plist deleted file mode 100644 index 7e8abd5a3e20..000000000000 --- a/WordPress/WordPressTodayWidget/Info.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - WordPress Today - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleShortVersionString - ${VERSION_SHORT} - CFBundleSignature - ???? - CFBundleVersion - ${VERSION_LONG} - NSExtension - - NSExtensionMainStoryboard - MainInterface - NSExtensionPointIdentifier - com.apple.widget-extension - - - diff --git a/WordPress/WordPressTodayWidget/MainInterface.storyboard b/WordPress/WordPressTodayWidget/MainInterface.storyboard deleted file mode 100644 index 09af3c01057d..000000000000 --- a/WordPress/WordPressTodayWidget/MainInterface.storyboard +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/WordPressTodayWidget/TodayViewController.swift b/WordPress/WordPressTodayWidget/TodayViewController.swift deleted file mode 100644 index 0904e1e95b89..000000000000 --- a/WordPress/WordPressTodayWidget/TodayViewController.swift +++ /dev/null @@ -1,499 +0,0 @@ -import UIKit -import NotificationCenter -import CocoaLumberjack -import WordPressKit -import WordPressUI -import Reachability - -class TodayViewController: UIViewController { - - // MARK: - Properties - - @IBOutlet private var tableView: UITableView! - - private var statsValues: TodayWidgetStats? { - didSet { - updateStatsLabels() - tableView.reloadData() - } - } - - private var visitorCount: String = Constants.noDataLabel - private var viewCount: String = Constants.noDataLabel - private var likeCount: String = Constants.noDataLabel - private var commentCount: String = Constants.noDataLabel - private var siteUrl: String = Constants.noDataLabel - - private var haveSiteUrl: Bool { - siteUrl != Constants.noDataLabel - } - - private var siteID: NSNumber? - private var timeZone: TimeZone? - private var oauthToken: String? - private var isConfigured = false { - didSet { - setAvailableDisplayMode() - } - } - - private var isReachable = true { - didSet { - setAvailableDisplayMode() - - if isReachable != oldValue, - let completionHandler = widgetCompletionBlock { - widgetPerformUpdate(completionHandler: completionHandler) - } - } - } - - private var showNoConnection: Bool { - return !isReachable && statsValues == nil - } - - private var loadingFailed = false { - didSet { - setAvailableDisplayMode() - - if loadingFailed != oldValue { - tableView.reloadData() - } - } - } - - private var failedState: Bool { - return !isConfigured || showNoConnection || loadingFailed - } - - private let tracks = Tracks(appGroupName: WPAppGroupName) - private let reachability: Reachability = .forInternetConnection() - - private typealias WidgetCompletionBlock = (NCUpdateResult) -> Void - private var widgetCompletionBlock: WidgetCompletionBlock? - - // MARK: - View - - override func viewDidLoad() { - super.viewDidLoad() - retrieveSiteConfiguration() - registerTableCells() - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - setupReachability() - loadSavedData() - resizeView() - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - reachability.stopNotifier() - } - - override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { - super.viewWillTransition(to: size, with: coordinator) - - let updatedRowCount = numberOfRowsToDisplay() - - // If the number of rows has not changed, do nothing. - guard updatedRowCount != tableView.numberOfRows(inSection: 0) else { - return - } - - coordinator.animate(alongsideTransition: { _ in - self.tableView.performBatchUpdates({ - - var indexPathsToInsert = [IndexPath]() - var indexPathsToDelete = [IndexPath]() - - // If no connection was displayed, then rows are just being added. - // Otherwise, a data row is being inserted/deleted. - if self.tableView.visibleCells.first is WidgetNoConnectionCell { - let indexRange = (1.. self.minRowsToDisplay() ? - self.tableView.insertRows(at: indexPathsToInsert, with: .fade) : - self.tableView.deleteRows(at: indexPathsToDelete, with: .fade) - }) - }) - } - -} - -// MARK: - Widget Updating - -extension TodayViewController: NCWidgetProviding { - - func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) { - widgetCompletionBlock = completionHandler - retrieveSiteConfiguration() - isReachable = reachability.isReachable() - - if !isConfigured || !isReachable { - DDLogError("Today Widget: unable to update. Configured: \(isConfigured) Reachable: \(isReachable)") - - DispatchQueue.main.async { [weak self] in - self?.tableView.reloadData() - } - - completionHandler(.failed) - return - } - - fetchData(completionHandler: completionHandler) - } - - func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { - tracks.trackDisplayModeChanged(properties: ["expanded": activeDisplayMode == .expanded]) - resizeView(withMaximumSize: maxSize) - } - -} - -// MARK: - Table View Methods - -extension TodayViewController: UITableViewDelegate, UITableViewDataSource { - - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return numberOfRowsToDisplay() - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - if showNoConnection { - return noConnectionCellFor(indexPath: indexPath) - } - - if !isConfigured || loadingFailed { - return unconfiguredCellFor(indexPath: indexPath) - } - - return statCellFor(indexPath: indexPath) - } - - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - - if failedState, - let maxCompactSize = extensionContext?.widgetMaximumSize(for: .compact) { - // Use the max compact height for unconfigured view. - return maxCompactSize.height - } - - if showUrl() && indexPath.row == numberOfRowsToDisplay() - 1 { - return WidgetUrlCell.height - } - - return UITableView.automaticDimension - } - -} - -// MARK: - Private Extension - -private extension TodayViewController { - - // MARK: - Tap Gesture Handling - - @IBAction func handleTapGesture() { - - // If showing the loading failed view, reload the widget. - if loadingFailed, - let completionHandler = widgetCompletionBlock { - widgetPerformUpdate(completionHandler: completionHandler) - return - } - - // Otherwise, open the app. - guard isReachable, - let extensionContext = extensionContext, - let containingAppURL = appURL() else { - DDLogError("Today Widget: Unable to get extensionContext or appURL.") - return - } - - trackAppLaunch() - extensionContext.open(containingAppURL, completionHandler: nil) - } - - func appURL() -> URL? { - let urlString = (siteID != nil) ? (Constants.statsUrl + siteID!.stringValue) : Constants.baseUrl - return URL(string: urlString) - } - - func trackAppLaunch() { - guard let siteID = siteID else { - tracks.trackExtensionConfigureLaunched() - return - } - - tracks.trackExtensionStatsLaunched(siteID.intValue) - } - - // MARK: - Site Configuration - - func retrieveSiteConfiguration() { - guard let sharedDefaults = UserDefaults(suiteName: WPAppGroupName) else { - DDLogError("Today Widget: Unable to get sharedDefaults.") - isConfigured = false - return - } - - siteID = sharedDefaults.object(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteIdKey) as? NSNumber - siteUrl = sharedDefaults.string(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteUrlKey) ?? Constants.noDataLabel - oauthToken = fetchOAuthBearerToken() - - if let timeZoneName = sharedDefaults.string(forKey: AppConfiguration.Widget.StatsToday.userDefaultsSiteTimeZoneKey) { - timeZone = TimeZone(identifier: timeZoneName) - } - - isConfigured = siteID != nil && timeZone != nil && oauthToken != nil - } - - func fetchOAuthBearerToken() -> String? { - let oauth2Token = try? KeychainUtils.shared.getPasswordForUsername(AppConfiguration.Widget.Stats.keychainTokenKey, serviceName: AppConfiguration.Widget.Stats.keychainServiceName, accessGroup: WPAppKeychainAccessGroup) - - return oauth2Token as String? - } - - // MARK: - Data Management - - func loadSavedData() { - statsValues = TodayWidgetStats.loadSavedData() - } - - func saveData() { - statsValues?.saveData() - } - - func fetchData(completionHandler: (@escaping (NCUpdateResult) -> Void)) { - guard let statsRemote = statsRemote() else { - return - } - - statsRemote.getInsight { [weak self] (todayInsight: StatsTodayInsight?, error) in - self?.loadingFailed = (error != nil) - - if error != nil { - DDLogError("Today Widget: Error fetching StatsTodayInsight: \(String(describing: error?.localizedDescription))") - completionHandler(.failed) - return - } - - DDLogDebug("Today Widget: Fetched StatsTodayInsight data.") - - DispatchQueue.main.async { [weak self] in - let updatedStats = TodayWidgetStats(views: todayInsight?.viewsCount, - visitors: todayInsight?.visitorsCount, - likes: todayInsight?.likesCount, - comments: todayInsight?.commentsCount) - - // Update the widget only if the data has changed. - guard updatedStats != self?.statsValues else { - completionHandler(.noData) - return - } - - self?.statsValues = updatedStats - completionHandler(.newData) - self?.saveData() - } - } - } - - func statsRemote() -> StatsServiceRemoteV2? { - guard - let siteID = siteID, - let timeZone = timeZone, - let oauthToken = oauthToken - else { - DDLogError("Today Widget: Missing site ID, timeZone or oauth2Token") - return nil - } - - let wpApi = WordPressComRestApi(oAuthToken: oauthToken) - return StatsServiceRemoteV2(wordPressComRestApi: wpApi, siteID: siteID.intValue, siteTimezone: timeZone) - } - - // MARK: - Table Helpers - - func registerTableCells() { - let twoColumnCellNib = UINib(nibName: String(describing: WidgetTwoColumnCell.self), bundle: Bundle(for: WidgetTwoColumnCell.self)) - tableView.register(twoColumnCellNib, forCellReuseIdentifier: WidgetTwoColumnCell.reuseIdentifier) - - let unconfiguredCellNib = UINib(nibName: String(describing: WidgetUnconfiguredCell.self), bundle: Bundle(for: WidgetUnconfiguredCell.self)) - tableView.register(unconfiguredCellNib, forCellReuseIdentifier: WidgetUnconfiguredCell.reuseIdentifier) - - let urlCellNib = UINib(nibName: String(describing: WidgetUrlCell.self), bundle: Bundle(for: WidgetUrlCell.self)) - tableView.register(urlCellNib, forCellReuseIdentifier: WidgetUrlCell.reuseIdentifier) - - let noConnectionCellNib = UINib(nibName: String(describing: WidgetNoConnectionCell.self), bundle: Bundle(for: WidgetNoConnectionCell.self)) - tableView.register(noConnectionCellNib, forCellReuseIdentifier: WidgetNoConnectionCell.reuseIdentifier) - } - - func noConnectionCellFor(indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetNoConnectionCell.reuseIdentifier, for: indexPath) as? WidgetNoConnectionCell else { - return UITableViewCell() - } - - return cell - } - - func unconfiguredCellFor(indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetUnconfiguredCell.reuseIdentifier, for: indexPath) as? WidgetUnconfiguredCell else { - return UITableViewCell() - } - - loadingFailed ? cell.configure(for: .loadingFailed) : cell.configure(for: .today) - return cell - } - - func statCellFor(indexPath: IndexPath) -> UITableViewCell { - - // URL Cell - if showUrl() && indexPath.row == numberOfRowsToDisplay() - 1 { - guard let urlCell = tableView.dequeueReusableCell(withIdentifier: WidgetUrlCell.reuseIdentifier, for: indexPath) as? WidgetUrlCell else { - return UITableViewCell() - } - - urlCell.configure(siteUrl: siteUrl) - return urlCell - } - - // Data Cells - guard let cell = tableView.dequeueReusableCell(withIdentifier: WidgetTwoColumnCell.reuseIdentifier, for: indexPath) as? WidgetTwoColumnCell else { - return UITableViewCell() - } - - if indexPath.row == 0 { - cell.configure(leftItemName: LocalizedText.views, - leftItemData: viewCount, - rightItemName: LocalizedText.visitors, - rightItemData: visitorCount) - } else { - cell.configure(leftItemName: LocalizedText.likes, - leftItemData: likeCount, - rightItemName: LocalizedText.comments, - rightItemData: commentCount) - } - - return cell - } - - func showUrl() -> Bool { - return (isConfigured && haveSiteUrl) - } - - // MARK: - Expand / Compact View Helpers - - func setAvailableDisplayMode() { - // If something went wrong, don't allow the widget to be expanded. - extensionContext?.widgetLargestAvailableDisplayMode = failedState ? .compact : .expanded - } - - func minRowsToDisplay() -> Int { - if showNoConnection { - return 1 - } - - return showUrl() ? 2 : 1 - } - - func maxRowsToDisplay() -> Int { - if showNoConnection { - return 1 - } - - return showUrl() ? 3 : 2 - } - - func numberOfRowsToDisplay() -> Int { - return extensionContext?.widgetActiveDisplayMode == .compact ? minRowsToDisplay() : maxRowsToDisplay() - } - - func resizeView(withMaximumSize size: CGSize? = nil) { - guard let maxSize = size ?? extensionContext?.widgetMaximumSize(for: .compact) else { - return - } - - let expanded = extensionContext?.widgetActiveDisplayMode == .expanded - preferredContentSize = expanded ? CGSize(width: maxSize.width, height: expandedHeight()) : maxSize - } - - func expandedHeight() -> CGFloat { - var height: CGFloat = 0 - let dataRowHeight: CGFloat - - // This method is called before the rows are updated. - // So if a no connection cell was displayed, use the default height for data rows. - // Otherwise, use the actual height from the first data row. - if tableView.visibleCells.first is WidgetNoConnectionCell { - dataRowHeight = WidgetTwoColumnCell.defaultHeight - } else { - dataRowHeight = tableView.rectForRow(at: IndexPath(row: 0, section: 0)).height - } - - let numRows = numberOfRowsToDisplay() - - if showUrl() { - height += WidgetUrlCell.height - height += (dataRowHeight * CGFloat(numRows - 1)) - } else { - height += (dataRowHeight * CGFloat(numRows)) - } - - return height - } - - // MARK: - Reachability - - func setupReachability() { - isReachable = reachability.isReachable() - - NotificationCenter.default.addObserver(self, - selector: #selector(reachabilityChanged), - name: NSNotification.Name.reachabilityChanged, - object: nil) - reachability.startNotifier() - } - - @objc func reachabilityChanged() { - isReachable = reachability.isReachable() - } - - // MARK: - Helpers - - func updateStatsLabels() { - guard let values = statsValues else { - return - } - - viewCount = values.views.abbreviatedString() - visitorCount = values.visitors.abbreviatedString() - likeCount = values.likes.abbreviatedString() - commentCount = values.comments.abbreviatedString() - } - - // MARK: - Constants - - enum LocalizedText { - static let visitors = AppLocalizedString("Visitors", comment: "Stats Visitors Label") - static let views = AppLocalizedString("Views", comment: "Stats Views Label") - static let likes = AppLocalizedString("Likes", comment: "Stats Likes Label") - static let comments = AppLocalizedString("Comments", comment: "Stats Comments Label") - } - - enum Constants { - static let noDataLabel = "-" - static let baseUrl: String = "\(WPComScheme)://" - static let statsUrl: String = Constants.baseUrl + "viewstats?siteId=" - } - -} diff --git a/WordPress/WordPressTodayWidget/TodayWidgetPrefix.pch b/WordPress/WordPressTodayWidget/TodayWidgetPrefix.pch deleted file mode 100644 index eb1f13aa03b1..000000000000 --- a/WordPress/WordPressTodayWidget/TodayWidgetPrefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -#ifdef __OBJC__ - -#ifndef WPCOM_SCHEME -#warning WPCOM_SCHEME is not defined for this target configuration! Defaulting to "wordpress". -#define WPCOM_SCHEME @"wordpress" -#endif - -#endif diff --git a/WordPress/WordPressTodayWidget/Tracks+TodayWidget.swift b/WordPress/WordPressTodayWidget/Tracks+TodayWidget.swift deleted file mode 100644 index 0c9ad6a99b6a..000000000000 --- a/WordPress/WordPressTodayWidget/Tracks+TodayWidget.swift +++ /dev/null @@ -1,37 +0,0 @@ -import Foundation - - -/// This extension implements helper tracking methods, meant for Today Widget Usage. -/// -extension Tracks { - - // MARK: - Public Methods - - public func trackExtensionStatsLaunched(_ siteID: Int) { - let properties = ["site_id": siteID] - trackExtensionEvent(.statsLaunched, properties: properties as [String: AnyObject]?) - } - - public func trackExtensionConfigureLaunched() { - trackExtensionEvent(.configureLaunched) - } - - public func trackDisplayModeChanged(properties: [String: Bool]) { - trackExtensionEvent(.displayModeChanged, properties: properties as [String: AnyObject]) - } - - // MARK: - Private Helpers - - fileprivate func trackExtensionEvent(_ event: ExtensionEvents, properties: [String: AnyObject]? = nil) { - track(event.rawValue, properties: properties) - } - - - // MARK: - Private Enums - - fileprivate enum ExtensionEvents: String { - case statsLaunched = "wpios_today_extension_stats_launched" - case configureLaunched = "wpios_today_extension_configure_launched" - case displayModeChanged = "wpios_today_extension_display_mode_changed" - } -} diff --git a/WordPress/WordPressTodayWidget/WordPressTodayWidget-Alpha.entitlements b/WordPress/WordPressTodayWidget/WordPressTodayWidget-Alpha.entitlements deleted file mode 100644 index dca30c5b176d..000000000000 --- a/WordPress/WordPressTodayWidget/WordPressTodayWidget-Alpha.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress.alpha - - keychain-access-groups - - 99KV9Z6BKV.org.wordpress.alpha - - - diff --git a/WordPress/WordPressTodayWidget/WordPressTodayWidget-Bridging-Header.h b/WordPress/WordPressTodayWidget/WordPressTodayWidget-Bridging-Header.h deleted file mode 100644 index ff4dac2f06fc..000000000000 --- a/WordPress/WordPressTodayWidget/WordPressTodayWidget-Bridging-Header.h +++ /dev/null @@ -1,2 +0,0 @@ -#import "SFHFKeychainUtils.h" -#import "Constants.h" diff --git a/WordPress/WordPressTodayWidget/WordPressTodayWidget-Internal.entitlements b/WordPress/WordPressTodayWidget/WordPressTodayWidget-Internal.entitlements deleted file mode 100644 index 54ecf75e3680..000000000000 --- a/WordPress/WordPressTodayWidget/WordPressTodayWidget-Internal.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress.internal - - keychain-access-groups - - 99KV9Z6BKV.org.wordpress.internal - - - diff --git a/WordPress/WordPressTodayWidget/WordPressTodayWidget.entitlements b/WordPress/WordPressTodayWidget/WordPressTodayWidget.entitlements deleted file mode 100644 index 7eb5daa80a0d..000000000000 --- a/WordPress/WordPressTodayWidget/WordPressTodayWidget.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.org.wordpress - - keychain-access-groups - - 3TMU3BH3NK.org.wordpress - - - diff --git a/WordPress/Wordpress-Alpha-Info.plist b/WordPress/Wordpress-Alpha-Info.plist index 1d295453d98a..c6d5ac195404 100644 --- a/WordPress/Wordpress-Alpha-Info.plist +++ b/WordPress/Wordpress-Alpha-Info.plist @@ -491,8 +491,6 @@ Noticons.ttf - UIApplicationShortcutWidget - org.wordpress.alpha.WordPressTodayWidget UIBackgroundModes fetch diff --git a/config/SDKVersions.xcconfig b/config/SDKVersions.xcconfig index 9d7a1c81abb3..0a7ce8b64085 100644 --- a/config/SDKVersions.xcconfig +++ b/config/SDKVersions.xcconfig @@ -7,3 +7,4 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) $(WP_IOS_SDK) // TODO: Move to dedicated file WARNING_CFLAGS = -Wno-nullability-completeness +IPHONEOS_DEPLOYMENT_TARGET = 14.0 diff --git a/fastlane/Fastfile b/fastlane/Fastfile index da90e149d69d..5d6275890da3 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -31,12 +31,9 @@ WORDPRESS_BUNDLE_IDENTIFIER = 'org.wordpress' WORDPRESS_EXTENSIONS_BUNDLE_IDENTIFIERS = %w[ WordPressShare WordPressDraftAction - WordPressTodayWidget WordPressStatsWidgets WordPressNotificationServiceExtension WordPressNotificationContentExtension - WordPressAllTimeWidget - WordPressThisWeekWidget WordPressIntents ].map { |suffix| "#{WORDPRESS_BUNDLE_IDENTIFIER}.#{suffix}" } ALL_WORDPRESS_BUNDLE_IDENTIFIERS = [WORDPRESS_BUNDLE_IDENTIFIER, *WORDPRESS_EXTENSIONS_BUNDLE_IDENTIFIERS].freeze @@ -45,11 +42,8 @@ JETPACK_BUNDLE_IDENTIFIER = 'com.automattic.jetpack' JETPACK_EXTENSIONS_BUNDLE_IDENTIFIERS = %w[ JetpackShare JetpackDraftAction - JetpackTodayWidget JetpackStatsWidgets JetpackNotificationServiceExtension - JetpackAllTimeWidget - JetpackThisWeekWidget JetpackIntents ].map { |suffix| "#{JETPACK_BUNDLE_IDENTIFIER}.#{suffix}" } ALL_JETPACK_BUNDLE_IDENTIFIERS = [JETPACK_BUNDLE_IDENTIFIER, *JETPACK_EXTENSIONS_BUNDLE_IDENTIFIERS].freeze