Skip to content

Commit

Permalink
Update required OS version to iOS 14.5
Browse files Browse the repository at this point in the history
Fixes #398 - List view separators always appears on iOS 14.4
  • Loading branch information
aaronbrethorst committed Aug 14, 2021
1 parent 5c0c113 commit 0688bb8
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 27 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/obakittests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
${{ runner.os }}-spm-
- name: Switch Xcode 12
run: sudo xcode-select -switch /Applications/Xcode_12.4.app
run: sudo xcode-select -switch /Applications/Xcode_12.5.app

- name: Install xcodegen
run: brew install xcodegen
Expand All @@ -33,7 +33,7 @@ jobs:
- name: Build OneBusAway
run: xcodebuild clean build-for-testing
-scheme 'App'
-destination 'platform=iOS Simulator,OS=14.4,name=iPhone 8'
-destination 'platform=iOS Simulator,OS=14.5,name=iPhone 8'
-quiet

# Unit Test
Expand All @@ -42,7 +42,7 @@ jobs:
-only-testing:OBAKitTests
-project 'OBAKit.xcodeproj'
-scheme 'App'
-destination 'platform=iOS Simulator,OS=14.4,name=iPhone 8'
-destination 'platform=iOS Simulator,OS=14.5,name=iPhone 8'
-resultBundlePath OBAKitTests.xcresult
-quiet
- name: Upload OBAKitTests results
Expand All @@ -57,7 +57,7 @@ jobs:
-only-testing:OBAKitUITests
-project 'OBAKit.xcodeproj'
-scheme 'App'
-destination 'platform=iOS Simulator,OS=14.4,name=iPhone 8'
-destination 'platform=iOS Simulator,OS=14.5,name=iPhone 8'
-resultBundlePath OBAKitUITests.xcresult
-quiet

Expand Down
2 changes: 1 addition & 1 deletion Apps/Shared/app_shared.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ options:
generateEmptyDirectories: true
groupSortPosition: top
deploymentTarget:
iOS: "14.4"
iOS: "14.5"

############
# App
Expand Down
25 changes: 7 additions & 18 deletions OBAKit/Controls/ListView/OBAListView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -209,25 +209,14 @@ public class OBAListView: UICollectionView, UICollectionViewDelegate {
var configuration = sectionModel.configuration.listConfiguration()
configuration.headerMode = sectionModel.hasHeader ? .firstItemInSection : .none

// #398 - list view separators always appears on iOS 14.4
// Necessary for CI compatibility. Remove check when CI is fixed.
// Also, remove availability checks in OBAListRowSeparatorConfiguration.swift.
//
// CI uses Xcode 12.4 (swift 5.3), which doesn't contain iOS 14.5 API,
// causing the code below to fail to compile.
// The block below builds on Xcode 12.5+ (swift 5.4).
#if swift(>=5.4)
if #available(iOS 14.5, *) {
configuration.separatorConfiguration = .init(listAppearance: .insetGrouped)
configuration.itemSeparatorHandler = { [unowned self] (indexPath, listConfiguration) -> UIListSeparatorConfiguration in
guard let item = self.itemForIndexPath(indexPath) else { return listConfiguration }

var configuration = listConfiguration
configuration.applying(item.separatorConfiguration)
return configuration
}
configuration.separatorConfiguration = .init(listAppearance: .insetGrouped)
configuration.itemSeparatorHandler = { [unowned self] (indexPath, listConfiguration) -> UIListSeparatorConfiguration in
guard let item = self.itemForIndexPath(indexPath) else { return listConfiguration }

var configuration = listConfiguration
configuration.applying(item.separatorConfiguration)
return configuration
}
#endif

configuration.leadingSwipeActionsConfigurationProvider = self.leadingSwipeActions
configuration.trailingSwipeActionsConfigurationProvider = self.trailingSwipeActions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ public struct OBAListRowSeparatorConfiguration: Equatable {
}
}

// #398 - list view separators always appears on iOS 14.4
#if swift(>=5.4)
@available(iOS 14.5, *)
extension UIListSeparatorConfiguration {
mutating func applying(_ obaConfiguration: OBAListRowSeparatorConfiguration) {
let visibility: UIListSeparatorConfiguration.Visibility = obaConfiguration.showsSeparator ? .automatic : .hidden
Expand All @@ -39,4 +36,3 @@ extension UIListSeparatorConfiguration {
self.bottomSeparatorInsets = obaConfiguration.insets
}
}
#endif

0 comments on commit 0688bb8

Please sign in to comment.