From bd75df7294d0e3a5f96e81890391e2576c5609d7 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 24 Mar 2020 16:42:46 -0500 Subject: [PATCH 1/9] Add pointer interaction for timeline header button. Issue #1943 --- .../MasterTimelineTitleView.swift | 39 +++++++++++++++++++ .../MasterTimelineViewController.swift | 5 +-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/iOS/MasterTimeline/MasterTimelineTitleView.swift b/iOS/MasterTimeline/MasterTimelineTitleView.swift index 3046f079a..ee8eccb78 100644 --- a/iOS/MasterTimeline/MasterTimelineTitleView.swift +++ b/iOS/MasterTimeline/MasterTimelineTitleView.swift @@ -13,5 +13,44 @@ class MasterTimelineTitleView: UIView { @IBOutlet weak var iconView: IconView! @IBOutlet weak var label: UILabel! @IBOutlet weak var unreadCountView: MasterTimelineUnreadCountView! + + @available(iOS 13.4, *) + private lazy var pointerInteraction: UIPointerInteraction = { + UIPointerInteraction(delegate: self) + }() + + func buttonize() { + heightAnchor.constraint(equalToConstant: 40.0).isActive = true + accessibilityTraits = .button + if #available(iOS 13.4, *) { + addInteraction(pointerInteraction) + } + } + + func debuttonize() { + accessibilityTraits.remove(.button) + if #available(iOS 13.4, *) { + removeInteraction(pointerInteraction) + } + } + +} + +extension MasterTimelineTitleView: UIPointerInteractionDelegate { + + @available(iOS 13.4, *) + func pointerInteraction(_ interaction: UIPointerInteraction, styleFor region: UIPointerRegion) -> UIPointerStyle? { + + let params = UIPreviewParameters() + var rect = self.bounds + rect.origin.x = rect.origin.x - 10 + rect.size.width = rect.width + 20 + let path = UIBezierPath(roundedRect: rect, cornerRadius: 10.0) + params.visiblePath = path + + let preview = UITargetedPreview(view: self, parameters: params) + + return UIPointerStyle(effect: .automatic(preview), shape: .path(path)) + } } diff --git a/iOS/MasterTimeline/MasterTimelineViewController.swift b/iOS/MasterTimeline/MasterTimelineViewController.swift index 4cb77da86..8f7b41c24 100644 --- a/iOS/MasterTimeline/MasterTimelineViewController.swift +++ b/iOS/MasterTimeline/MasterTimelineViewController.swift @@ -564,12 +564,11 @@ private extension MasterTimelineViewController { updateTitleUnreadCount() if coordinator.timelineFeed is WebFeed { - titleView.heightAnchor.constraint(equalToConstant: 44.0).isActive = true + titleView.buttonize() titleView.addGestureRecognizer(feedTapGestureRecognizer) - titleView.accessibilityTraits = .button } else { + titleView.debuttonize() titleView.removeGestureRecognizer(feedTapGestureRecognizer) - titleView.accessibilityTraits.remove(.button) } navigationItem.titleView = titleView From 450ddbd364904bd44df7b1fe29637589d375c757 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 24 Mar 2020 18:27:54 -0500 Subject: [PATCH 2/9] Refactored new pointer interaction code to be more simple. --- iOS/MasterTimeline/MasterTimelineTitleView.swift | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/iOS/MasterTimeline/MasterTimelineTitleView.swift b/iOS/MasterTimeline/MasterTimelineTitleView.swift index ee8eccb78..76e4fbbaa 100644 --- a/iOS/MasterTimeline/MasterTimelineTitleView.swift +++ b/iOS/MasterTimeline/MasterTimelineTitleView.swift @@ -40,17 +40,11 @@ extension MasterTimelineTitleView: UIPointerInteractionDelegate { @available(iOS 13.4, *) func pointerInteraction(_ interaction: UIPointerInteraction, styleFor region: UIPointerRegion) -> UIPointerStyle? { - - let params = UIPreviewParameters() - var rect = self.bounds + var rect = self.frame rect.origin.x = rect.origin.x - 10 rect.size.width = rect.width + 20 - let path = UIBezierPath(roundedRect: rect, cornerRadius: 10.0) - params.visiblePath = path - - let preview = UITargetedPreview(view: self, parameters: params) - return UIPointerStyle(effect: .automatic(preview), shape: .path(path)) + return UIPointerStyle(effect: .automatic(UITargetedPreview(view: self)), shape: .roundedRect(rect)) } } From 1d464718649284402c808b5ef4c107c469e02631 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 24 Mar 2020 18:40:36 -0500 Subject: [PATCH 3/9] Add step to list out available applications --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4c8984b2d..373d14d84 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,6 +25,9 @@ jobs: with: submodules: recursive + - name: List Available Applications + run: ls /Applications + - name: Switch to Xcode 11 run: sudo xcode-select -s /Applications/Xcode_11.app From 6889d2a61a96311e10a38ce074869f21a564e873 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 24 Mar 2020 18:42:18 -0500 Subject: [PATCH 4/9] Switch to using XCode 11.4 to build --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 373d14d84..deba53731 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ jobs: run: ls /Applications - name: Switch to Xcode 11 - run: sudo xcode-select -s /Applications/Xcode_11.app + run: sudo xcode-select -s /Applications/Xcode_11.4.app - name: Show Build Version run: xcodebuild -version From 3c0862fe832fd81510c6f3306010de34364942c0 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 24 Mar 2020 19:32:16 -0500 Subject: [PATCH 5/9] Update iOS destination for new SDK --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index deba53731..c0e58f182 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,7 @@ jobs: matrix: run-config: - { scheme: 'NetNewsWire', destination: 'platform=macOS'} - - { scheme: 'NetNewsWire-iOS', destination: 'platform=iOS Simulator,OS=13.0,name=iPhone 11' } + - { scheme: 'NetNewsWire-iOS', destination: 'platform=iOS Simulator,OS=13.4,name=iPhone 11' } steps: - name: Checkout Project From 6c06c7791cc40b7a69f3a3b231b258c0ee965a1d Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Wed, 25 Mar 2020 08:55:02 -0500 Subject: [PATCH 6/9] Add interaction to buttons that were missing it. Issue #1945 --- iOS/Account/Account.storyboard | 12 ++--- .../Cell/MasterFeedTableViewCell.swift | 7 ++- .../MasterFeedTableViewSectionHeader.swift | 34 +++++++++---- iOS/MasterFeed/MasterFeedViewController.swift | 49 ++++++++++++------- 4 files changed, 66 insertions(+), 36 deletions(-) diff --git a/iOS/Account/Account.storyboard b/iOS/Account/Account.storyboard index 52982af01..b68e2fc00 100644 --- a/iOS/Account/Account.storyboard +++ b/iOS/Account/Account.storyboard @@ -1,8 +1,8 @@ - + - + @@ -57,7 +57,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -315,7 +315,7 @@ -