Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ fileprivate let fadeAnimationDuration: TimeInterval = 0.1
// UIKit glitch.
extension UINavigationController {
@objc func pushFullscreenViewController(_ viewController: UIViewController, animated: Bool) {
guard let splitViewController = splitViewController, splitViewController.preferredDisplayMode != .primaryHidden else {
guard let splitViewController = splitViewController, splitViewController.preferredDisplayMode != .secondaryOnly else {
pushViewController(viewController, animated: animated)
return
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,10 @@ extension UITextField {
/// Once we drop support for iOS 14, we could remove this extension entirely.
///
public class func shouldActivateWorkaroundForBulgarianKeyboardCrash() -> Bool {
if #available(iOS 14.0, *) {
return true
}

return false
// FIXME: Do _all_ versions above iOS 14 require the workaround?
//
// This code was changed to `true` at the time of making iOS 14 the minimum target.
true
}

/// We're swizzling `UITextField.becomeFirstResponder()` so that we can fix an issue with
Expand Down
13 changes: 3 additions & 10 deletions WordPress/Classes/Services/Stories/WPMediaPicker+MediaPicker.swift
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,7 @@ class WPMediaPickerForKanvas: WPNavigationMediaPickerViewController, MediaPicker
photoPicker.dataSource = WPPHAssetDataSource.sharedInstance()
photoPicker.tabBarItem = UITabBarItem(title: Constants.photosTabBarTitle, image: Constants.photosTabBarIcon, tag: 0)

if #available(iOS 14.0, *),
FeatureFlag.mediaPickerPermissionsNotice.enabled {
if FeatureFlag.mediaPickerPermissionsNotice.enabled {
photoPicker.mediaPicker.registerClass(forCustomHeaderView: DeviceMediaPermissionsHeader.self)
}

Expand Down Expand Up @@ -182,8 +181,7 @@ class MediaPickerDelegate: NSObject, WPMediaPickerViewControllerDelegate {
}

func mediaPickerControllerShouldShowCustomHeaderView(_ picker: WPMediaPickerViewController) -> Bool {
guard #available(iOS 14.0, *),
FeatureFlag.mediaPickerPermissionsNotice.enabled,
guard FeatureFlag.mediaPickerPermissionsNotice.enabled,
picker.dataSource is WPPHAssetDataSource else {
return false
}
Expand All @@ -192,19 +190,14 @@ class MediaPickerDelegate: NSObject, WPMediaPickerViewControllerDelegate {
}

func mediaPickerControllerReferenceSize(forCustomHeaderView picker: WPMediaPickerViewController) -> CGSize {
guard #available(iOS 14.0, *) else {
return .zero
}

let header = DeviceMediaPermissionsHeader()
header.translatesAutoresizingMaskIntoConstraints = false

return header.referenceSizeInView(picker.view)
}

func mediaPickerController(_ picker: WPMediaPickerViewController, configureCustomHeaderView headerView: UICollectionReusableView) {
guard #available(iOS 14.0, *),
let headerView = headerView as? DeviceMediaPermissionsHeader else {
guard let headerView = headerView as? DeviceMediaPermissionsHeader else {
return
}

Expand Down
33 changes: 4 additions & 29 deletions WordPress/Classes/Stores/StatsWidgetsStore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,24 @@ class StatsWidgetsStore {
if let newTodayData = refreshStats(type: HomeWidgetTodayData.self) {
HomeWidgetTodayData.write(items: newTodayData)

if #available(iOS 14.0, *) {
WidgetCenter.shared.reloadTimelines(ofKind: AppConfiguration.Widget.Stats.todayKind)
}
WidgetCenter.shared.reloadTimelines(ofKind: AppConfiguration.Widget.Stats.todayKind)
}

if let newAllTimeData = refreshStats(type: HomeWidgetAllTimeData.self) {
HomeWidgetAllTimeData.write(items: newAllTimeData)

if #available(iOS 14.0, *) {
WidgetCenter.shared.reloadTimelines(ofKind: AppConfiguration.Widget.Stats.allTimeKind)
}
WidgetCenter.shared.reloadTimelines(ofKind: AppConfiguration.Widget.Stats.allTimeKind)
}

if let newThisWeekData = refreshStats(type: HomeWidgetThisWeekData.self) {
HomeWidgetThisWeekData.write(items: newThisWeekData)

if #available(iOS 14.0, *) {
WidgetCenter.shared.reloadTimelines(ofKind: AppConfiguration.Widget.Stats.thisWeekKind)
}
WidgetCenter.shared.reloadTimelines(ofKind: AppConfiguration.Widget.Stats.thisWeekKind)
}
}

/// Initialize the local cache for widgets, if it does not exist
func initializeStatsWidgetsIfNeeded() {
guard #available(iOS 14.0, *) else {
return
}
if HomeWidgetTodayData.read() == nil {
DDLogInfo("StatsWidgets: Writing initialization data into HomeWidgetTodayData.plist")
HomeWidgetTodayData.write(items: initializeHomeWidgetData(type: HomeWidgetTodayData.self))
Expand All @@ -70,8 +61,7 @@ class StatsWidgetsStore {
/// - widgetType: concrete type of the widget
/// - stats: stats to be stored
func storeHomeWidgetData<T: HomeWidgetData>(widgetType: T.Type, stats: Codable) {
guard #available(iOS 14.0, *),
let siteID = SiteStatsInformation.sharedInstance.siteID else {
guard let siteID = SiteStatsInformation.sharedInstance.siteID else {
return
}

Expand Down Expand Up @@ -243,9 +233,6 @@ private extension StatsWidgetsStore {
// MARK: - Extract this week data
extension StatsWidgetsStore {
func updateThisWeekHomeWidget(summary: StatsSummaryTimeIntervalData?) {
guard #available(iOS 14.0, *) else {
return
}
switch summary?.period {
case .day:
guard summary?.periodEndDate == StatsDataHelper.currentDateForSite().normalizedDate() else {
Expand All @@ -269,10 +256,6 @@ private extension StatsWidgetsStore {
/// Observes WPAccountDefaultWordPressComAccountChanged notification and reloads widget data based on the state of account.
/// The site data is not yet loaded after this notification and widget data cannot be cached for newly signed in account.
func observeAccountChangesForWidgets() {
guard #available(iOS 14.0, *) else {
return
}

NotificationCenter.default.addObserver(forName: .WPAccountDefaultWordPressComAccountChanged,
object: nil,
queue: nil) { notification in
Expand All @@ -294,10 +277,6 @@ private extension StatsWidgetsStore {
/// Observes WPSigninDidFinishNotification notification and initializes the widget.
/// The site data is loaded after this notification and widget data can be cached.
func observeAccountSignInForWidgets() {
guard #available(iOS 14.0, *) else {
return
}

NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: WordPressAuthenticator.WPSigninDidFinishNotification),
object: nil,
queue: nil) { [weak self] _ in
Expand All @@ -307,10 +286,6 @@ private extension StatsWidgetsStore {

/// Observes applicationLaunchCompleted notification and runs migration.
func observeApplicationLaunched() {
guard #available(iOS 14.0, *) else {
return
}

NotificationCenter.default.addObserver(forName: NSNotification.Name.applicationLaunchCompleted,
object: nil,
queue: nil) { [weak self] _ in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -618,11 +618,7 @@ extension InteractiveNotificationsManager: UNUserNotificationCenterDelegate {
if notification.request.content.categoryIdentifier == NoteCategoryDefinition.bloggingReminderWeekly.rawValue
|| notification.request.content.categoryIdentifier == NoteCategoryDefinition.weeklyRoundup.rawValue {

if #available(iOS 14.0, *) {
completionHandler([.banner, .list, .sound])
} else {
completionHandler([.alert, .sound])
}
completionHandler([.banner, .list, .sound])
return
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -636,8 +636,7 @@ class AztecPostViewController: UIViewController, PostEditor {

// Required to work around an issue present in iOS 14 beta 2
// https://github.com/wordpress-mobile/WordPress-iOS/issues/14460
if #available(iOS 14.0, *),
presentedViewController?.view.accessibilityIdentifier == MoreSheetAlert.accessibilityIdentifier {
if presentedViewController?.view.accessibilityIdentifier == MoreSheetAlert.accessibilityIdentifier {
dismiss(animated: true)
}
}
Expand Down Expand Up @@ -1326,8 +1325,7 @@ private extension AztecPostViewController {

alert.addCancelActionWithTitle(MoreSheetAlert.keepEditingTitle)

if #available(iOS 14.0, *),
let button = navigationBarManager.moreBarButtonItem.customView {
if let button = navigationBarManager.moreBarButtonItem.customView {
// Required to work around an issue present in iOS 14 beta 2
// https://github.com/wordpress-mobile/WordPress-iOS/issues/14460
alert.popoverPresentationController?.sourceRect = button.convert(button.bounds, to: navigationController?.navigationBar)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ class TimeSelectionView: UIView {
private lazy var timePicker: UIDatePicker = {
let datePicker = UIDatePicker()

if #available(iOS 13.4, *) {
datePicker.preferredDatePickerStyle = .wheels
}

datePicker.preferredDatePickerStyle = .wheels
datePicker.datePickerMode = .time
datePicker.translatesAutoresizingMaskIntoConstraints = false
datePicker.setDate(selectedTime, animated: false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,6 @@ extension SitePickerViewController {
}

func showEmojiPicker() {
guard #available(iOS 14.0, *) else {
return
}

var pickerView = SiteIconPickerView()

pickerView.onCompletion = { [weak self] image in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,7 @@ extension SitePickerViewController: BlogDetailHeaderViewDelegate {
showUpdateSiteIconAlert()
}

if #available(iOS 14.0, *) {
showSiteIconSelectionAlert()
} else {
showUpdateSiteIconAlert()
}
showSiteIconSelectionAlert()
}

func siteIconReceivedDroppedImage(_ image: UIImage?) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,7 @@ class GutenbergMediaPickerHelper: NSObject {
picker.delegate = self
picker.mediaPicker.registerClass(forReusableCellOverlayViews: DisabledVideoOverlay.self)

if #available(iOS 14.0, *),
FeatureFlag.mediaPickerPermissionsNotice.enabled {
if FeatureFlag.mediaPickerPermissionsNotice.enabled {
picker.mediaPicker.registerClass(forCustomHeaderView: DeviceMediaPermissionsHeader.self)
}

Expand Down Expand Up @@ -137,8 +136,7 @@ extension GutenbergMediaPickerHelper: WPMediaPickerViewControllerDelegate {
}

func mediaPickerControllerShouldShowCustomHeaderView(_ picker: WPMediaPickerViewController) -> Bool {
guard #available(iOS 14.0, *),
FeatureFlag.mediaPickerPermissionsNotice.enabled,
guard FeatureFlag.mediaPickerPermissionsNotice.enabled,
picker !== cameraPicker else {
return false
}
Expand All @@ -147,19 +145,14 @@ extension GutenbergMediaPickerHelper: WPMediaPickerViewControllerDelegate {
}

func mediaPickerControllerReferenceSize(forCustomHeaderView picker: WPMediaPickerViewController) -> CGSize {
guard #available(iOS 14.0, *) else {
return .zero
}

let header = DeviceMediaPermissionsHeader()
header.translatesAutoresizingMaskIntoConstraints = false

return header.referenceSizeInView(picker.view)
}

func mediaPickerController(_ picker: WPMediaPickerViewController, configureCustomHeaderView headerView: UICollectionReusableView) {
guard #available(iOS 14.0, *),
let headerView = headerView as? DeviceMediaPermissionsHeader else {
guard let headerView = headerView as? DeviceMediaPermissionsHeader else {
return
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,7 @@ extension GutenbergViewController {
ActionDispatcher.dispatch(NoticeAction.unlock)
}

if #available(iOS 14.0, *),
let button = navigationBarManager.moreBarButtonItem.customView {
if let button = navigationBarManager.moreBarButtonItem.customView {
// Required to work around an issue present in iOS 14 beta 2
// https://github.com/wordpress-mobile/WordPress-iOS/issues/14460
alert.popoverPresentationController?.sourceRect = button.convert(button.bounds, to: navigationController?.navigationBar)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,8 +402,7 @@ class GutenbergViewController: UIViewController, PostEditor, FeaturedImageDelega

// Required to work around an issue present in iOS 14 beta 2
// https://github.com/wordpress-mobile/WordPress-iOS/issues/14460
if #available(iOS 14.0, *),
presentedViewController?.view.accessibilityIdentifier == MoreSheetAlert.accessibilityIdentifier {
if presentedViewController?.view.accessibilityIdentifier == MoreSheetAlert.accessibilityIdentifier {
dismiss(animated: true)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,16 @@ extension Gutenberg.MediaType {
private func getTypesFrom(_ allTypes: [String], conformingTo uttype: CFString) -> [String] {

return allTypes.filter {
if #available(iOS 14.0, *) {
guard let allowedType = UTType($0), let requiredType = UTType(uttype as String) else {
return false
}
// Sometimes the compared type could be a supertype
// For example a self-hosted site without Jetpack may have "public.content" as allowedType
// Although "public.audio" conforms to "public.content", it's not true the other way around
if allowedType.isSupertype(of: requiredType) {
return true
}
return allowedType.conforms(to: requiredType)
} else {
return UTTypeConformsTo($0 as CFString, uttype)
guard let allowedType = UTType($0), let requiredType = UTType(uttype as String) else {
return false
}
// Sometimes the compared type could be a supertype
// For example a self-hosted site without Jetpack may have "public.content" as allowedType
// Although "public.audio" conforms to "public.content", it's not true the other way around
if allowedType.isSupertype(of: requiredType) {
return true
}
return allowedType.conforms(to: requiredType)
}
}

Expand Down
3 changes: 1 addition & 2 deletions WordPress/Classes/ViewRelated/Media/MediaLibraryPicker.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ final class MediaLibraryPicker: NSObject {
picker.delegate = delegate
picker.mediaPicker.registerClass(forReusableCellOverlayViews: DisabledVideoOverlay.self)

if #available(iOS 14.0, *),
FeatureFlag.mediaPickerPermissionsNotice.enabled {
if FeatureFlag.mediaPickerPermissionsNotice.enabled {
picker.mediaPicker.registerClass(forCustomHeaderView: DeviceMediaPermissionsHeader.self)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -573,8 +573,7 @@ extension MediaLibraryViewController: WPMediaPickerViewControllerDelegate {
}

func mediaPickerControllerShouldShowCustomHeaderView(_ picker: WPMediaPickerViewController) -> Bool {
guard #available(iOS 14.0, *),
FeatureFlag.mediaPickerPermissionsNotice.enabled,
guard FeatureFlag.mediaPickerPermissionsNotice.enabled,
picker != self else {
return false
}
Expand All @@ -584,19 +583,14 @@ extension MediaLibraryViewController: WPMediaPickerViewControllerDelegate {
}

func mediaPickerControllerReferenceSize(forCustomHeaderView picker: WPMediaPickerViewController) -> CGSize {
guard #available(iOS 14.0, *) else {
return .zero
}

let header = DeviceMediaPermissionsHeader()
header.translatesAutoresizingMaskIntoConstraints = false

return header.referenceSizeInView(picker.view)
}

func mediaPickerController(_ picker: WPMediaPickerViewController, configureCustomHeaderView headerView: UICollectionReusableView) {
guard #available(iOS 14.0, *),
let headerView = headerView as? DeviceMediaPermissionsHeader else {
guard let headerView = headerView as? DeviceMediaPermissionsHeader else {
return
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,7 @@ class ReaderTopicsTableCardCell: UITableViewCell {

// iOS 14 puts the contentView in the top of the view hierarchy
// This conflicts with the tableView interaction, so we disable it
if #available(iOS 14, *) {
contentView.isUserInteractionEnabled = false
}
contentView.isUserInteractionEnabled = false
}

required init?(coder: NSCoder) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,16 @@ class WidgetStyles: NSObject {
}
}()

static var separatorVibrancyEffect: UIVibrancyEffect = {
if #available(iOS 13, *) {
return .widgetEffect(forVibrancyStyle: .separator)
} else {
return .widgetSecondary()
}
}()
// Note: Before supporting only iOS 14+, this used to be:
//
// - .widgetEffect(forVibrancyStyle: .separator) in iOS 13+
// - .widgetSecondary() in previous versions
//
// Hopefully this information is useful if the current implementation is not visually satisfying.
static var separatorVibrancyEffect = UIVibrancyEffect(
blurEffect: UIBlurEffect(style: .regular),
style: .separator
)

static func configureSeparator(_ separator: UIView) {
// Both colors are need for the vibrancy effect.
Expand Down
Loading