-
-
Notifications
You must be signed in to change notification settings - Fork 776
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove custom navigation bar #5121
Merged
Merged
Changes from 204 commits
Commits
Show all changes
219 commits
Select commit
Hold shift + click to select a range
0c790be
Remove WMFRootNavigationController, set up navigation controller in e…
tonisevener 30e4599
Carefully try to remove ViewController dependency from ExploreViewCon…
tonisevener 4055954
Progress updating Explore to system navigation bar
tonisevener 9ba0fea
Some notes
tonisevener c1d5039
Remove custom navigation bar from SearchViewController, delete relate…
tonisevener d15f73c
Fix search empty state not scrolling nav bar bug
tonisevener 1bbf839
Search and Explore basic search working
tonisevener e2fac55
Fix bottom edge hiding beneath tab bar
tonisevener d3f08cf
Playing with scope bar
tonisevener a66c7ff
Add search scopes
tonisevener d4cf04f
Add Explore safe area overlay
tonisevener da0c92c
Progress removing custom navigation bar on Saved tab
tonisevener 0abe1cd
Progress removing custom navigation bar on History tab
tonisevener d10f0e5
Try to fix reading list detail view
tonisevener 14fe11f
Progress with places
tonisevener 71e072b
More progress with Places
tonisevener 9b241d2
Places - Some progress bringing back list overlay for iPad
tonisevener 80b64c4
More places progress
tonisevener 5fa42dc
Places - Fix list content hiding under tab bar bug
tonisevener 7a92010
Places - minor cleanup
tonisevener bbb088a
Progress on top read articles list
tonisevener 12c6392
Fixes to top read articles list
tonisevener 39098f6
Fix Explore > Locations list page
tonisevener 3fbaade
Progress getting places search to work
tonisevener 9b3a4e2
More fixes to Places
tonisevener f2aa343
Allow reading list detail header view to scroll
tonisevener dfbe017
Merge branch 'main' into prototype/system-nav-bar
tonisevener fbbfb19
Fixed on this day list view controller
tonisevener 3d0251b
Fix in the news list view controller
tonisevener 3d7c2f1
Improvements to reading list detail list
tonisevener 38a10cd
Some more fixes to reading list detail header
tonisevener 4c7d277
Fixes for article view
tonisevener 97eb439
Fixes to search from article
tonisevener 768e275
Fixes to image recommendations
tonisevener 2a34ce5
Fix some bugs that article caused
tonisevener 0fc169c
Update settings root view
tonisevener ee0d629
Update settings subviews
tonisevener 0ffc30b
Update notifications center
tonisevener a2e2395
Add TestHeaderView to article history in preparation for header rework
tonisevener cf67379
Tweaks to navigation bar hiding speed so that it's less annoying
tonisevener fdddbcc
More fixes to reading list detail
tonisevener 872e02f
More reading list detail fixes
tonisevener b351de4
Refactor PageHistoryFilterCountsViewController into UIView
tonisevener bbf5075
Complete article history update
tonisevener 6a6fc9e
Update Diff view
tonisevener 857c226
Update talk view
tonisevener 7fd6296
Random article fixes
tonisevener 5807f79
Try to remove random references to ViewController
tonisevener 0c24200
Update add articles to reading list view
tonisevener e61c229
Update insert image views
tonisevener 83e0726
Fix insert and edit link views
tonisevener 7f3a1ef
Fix Edit Preview
tonisevener 5011045
Progress with reference view controllers
tonisevener 38a5f3e
More fixes to reference view controllers
tonisevener 87d3ce7
Update Description help view
tonisevener 57f59ca
Update talk page coffee roll view
tonisevener 83ebad8
Update talk page topic compose
tonisevener a7daf63
Prevent article talk header labels from getting clipped
tonisevener ffce196
Fix dropped navigation animations
tonisevener ef57cc2
Allow update languages from search tab
tonisevener 80aefcd
Don't briefly show old search results
tonisevener de688e0
Add sorting back to Saved
tonisevener 53a0e02
Reduce default large header size
tonisevener 1d321b2
Merge branch 'main' into prototype/system-nav-bar
tonisevener cd01a1a
Some fixes towards smoother Places animation
tonisevener b662c02
Fix Places list layout
tonisevener 9a447ed
Fix settings large header font size
tonisevener 44bd6ce
More search fixes to prevent flashing
tonisevener 72add08
Changes needed for iPadOS 18
tonisevener f1ddbba
Revert "Changes needed for iPadOS 18"
tonisevener 0b9364a
Merge branch 'main' into prototype/system-nav-bar
tonisevener 45950ee
Compile fixes
tonisevener 4bf71bb
Some fixes after merge
tonisevener c57b7f9
Merge branch 'main' into prototype/system-nav-bar
tonisevener f3749e5
Merge branch 'main' into prototype/system-nav-bar
tonisevener 53121cf
Merge branch 'main' into prototype/system-nav-bar
tonisevener 0acaab1
Bug fixes after merge
tonisevener 624f525
Article and Explore sticky nav fix
tonisevener 0440837
Remove shadow on some nav bars
tonisevener 3bb1af1
Add search bar to Article for demo
tonisevener 073de11
Remove search icon from article
tonisevener 6d63a68
Remove some separators in Saved tab
tonisevener 4765f23
Some iPad article and floating tab bar fixes
tonisevener 076790b
Fix content insets, scrolling of TOC iPad
tonisevener f32c300
Progress fixing search bar languages before bailing
tonisevener 2a7b06c
Continue fixing search bar languages
tonisevener d1f9a6f
Bring back iPad margins
tonisevener 4650dda
Merge branch 'main' into prototype/system-nav-bar
tonisevener 0b19d5a
Fix compile failure
tonisevener 00dbda0
In progress
tonisevener c8583f6
Fix search languages bar animation
tonisevener 71974f5
Disable navigation bar hiding on Explore and Article when searching
tonisevener a85f23c
Merge branch 'main' into prototype/system-nav-bar
tonisevener 9cdf8ab
Fix some missing hints
tonisevener db543c7
Merge branch 'main' into prototype/system-nav-bar
tonisevener 2e5635d
Add sorting / searching to reading lists
tonisevener 60c7446
Fix minor annoyances
tonisevener 3db144e
Fix content stutter on article search focus animation
tonisevener 4c2c7ca
Fix for nav bar to reappear upon article scroll up
tonisevener 105b93e
Simplification of insets on article + TOC
tonisevener c9e1638
Lots of fixes for editor flow, beginnings of shared navigation bar se…
tonisevener 4cb2e41
Edit Preview fixes
tonisevener e7c2ba8
Fix edit preview Back logging call
tonisevener 622ef2d
Better fixes to restore custom back button handling
tonisevener 50c3436
Fix captcha theming on edit summary
tonisevener 355fd6a
Remove RootNavigationController, use WMFComponentNavigationController
tonisevener b01c93f
Progress applying shared nav bar setup in Settings
tonisevener 8cd12de
Apply shared nav bar setup to Explore and Article
tonisevener eb6112d
Delete comments on article
tonisevener 7e975c0
Rework everything to use compact leading style for root views
tonisevener 17c8e6e
Attempt to clean up search communication
tonisevener dcbfdc1
Edit link search fixes
tonisevener af2fb8f
More fixes to edit link
tonisevener f859839
Insert link fixes
tonisevener f4f7d8c
Use shared configuration method on Saved articles
tonisevener cc23489
Use shared configuration method on Reading List views
tonisevener e01893c
Delete places comments
tonisevener 1d8e712
Use shared configuration method on Places
tonisevener 94c165f
Configure reading list detail nav bar
tonisevener 8f20413
Explore and Article overlay theming fixes
tonisevener 7aff86d
setup Login and Create Account navigation bar
tonisevener d802b72
Some theming fixes for search results
tonisevener f6e9459
Maybe fix pop gesture recognizers
tonisevener b33325f
Saved fixes
tonisevener 282b320
Fix missing back long press titles sometimes
tonisevener b0a7e22
Temp - force full title in back button
tonisevener 07a72d3
Design feedback - default "back" label handling, large title style fo…
tonisevener 08b5712
Move in-app web view to new navigation bar configuration
tonisevener 2c3eec6
Fix wonky pull to refresh
tonisevener f879ca3
Fix some places bugs
tonisevener d2c5cc0
Fix bad transition from History
tonisevener 99f11a9
Always prefer large titles
tonisevener 12cd496
Theming fix to Explore on iPad
tonisevener f743109
Configure nav bar for disambiguation and page issues
tonisevener 662d101
Configure language picker navigation bars
tonisevener 1a66048
Configure notification center nav bars
tonisevener d4e5671
Use better X button on gallery
tonisevener db0d6eb
Fix status bar style
tonisevener 39f7497
Apply navigation bar to explore list views - related, top read, on th…
tonisevener 44f30da
Progress with iPadOS 18 search tab, will revert
tonisevener 2fa1a72
Revert "Progress with iPadOS 18 search tab, will revert"
tonisevener 627104d
Temp move X buttons to Done
tonisevener 1413823
Configure article description editing
tonisevener 6e41d0e
Fix places nav bar
tonisevener 13c1e63
Temp - hide root navigation bars
tonisevener facd05f
Revert "Temp - hide root navigation bars"
tonisevener 3eab67f
Configure nav bar for donate view controllers
tonisevener f3337f0
Remove some uses of WMFThemeableNavigationController for login and re…
tonisevener 49c8a29
Configure nav bar for insert media / insert settings
tonisevener 2d59a45
Replace more WMFThemeableNavigationControllers
tonisevener 2c5c149
Configure explore feed settings nav bar
tonisevener 2dfbd39
Configure nav bar for login flows
tonisevener 87c2f8d
Configure nav bars from About the App
tonisevener 663579f
Remove WMFThemeableNavigationController from talk pages
tonisevener ab20161
Remove legacy WMFThemeableNavigationController & utility methods
tonisevener f2c058a
Configure talk page new topic nav bar
tonisevener ae86fcf
Configure SwiftUI modals with new shared nav bar config
tonisevener d3cd992
Configure description help view controller nav bar
tonisevener 6b7d775
Remove outdated UIBarButtonItem helper methods
tonisevener 9987562
Swap some close buttons over to SFSymbol
tonisevener 53209e9
Bring back over full screen modal presentation style
tonisevener 042c1b9
Remove unnecessary done button theming
tonisevener c3709bf
Configure navigation bar with image recommendations
tonisevener 9752506
Fix some toolbar theming
tonisevener 6a3a1ae
Edit / insert link theming fixes
tonisevener 231a166
Use leading button for in-app web view
tonisevener 8b8fadb
Merge branch 'main' into prototype/system-nav-bar
tonisevener 8fab877
Strings changes from building
tonisevener 74baa73
Fix diff crash
tonisevener 557a3e3
Fix bad layout on talk page coffee roll
tonisevener 2f75ef2
Added some missing navigation bar configurations
tonisevener e619a1e
Fix wonky refresh again
tonisevener c642fa7
Delete code that seems unnecessary now
tonisevener c6e0b2c
Do not let ArticleLocationCollectionViewController change places nav …
tonisevener 5a131d6
Move AAALD over to ColumnarCollectionViewController2
tonisevener 088f229
Delete old base classes
tonisevener f1cddb1
Rename new base classes to old base class names
tonisevener fa0ba37
Remove more base classes, rework talk page archives
tonisevener 686845d
Fix description help view controller nav bar, top read back button
tonisevener cdfd588
Fixes to legacy empty states
tonisevener 674a541
Fixes to talk page and diff empty state
tonisevener 9752cc9
Merge branch 'main' into prototype/system-nav-bar
tonisevener c88f983
Fix random warnings, strings changes after merge
tonisevener b649148
Refactor top safe area overlay and sticky fix into shared extension
tonisevener 23dc8bd
Hide Saved nav bar on scroll
tonisevener b0df8b4
Hide History nav bar on scroll
tonisevener b700482
Hide Search nav bar on scroll
tonisevener 44eea8f
Fixes to saved bar hiding
tonisevener e62f434
Hide Settings bar on scroll
tonisevener 8cf414f
Fix missing Places large title on iPad
tonisevener 7f51988
Move Saved Edit/Sort buttons into More menu, switch to Cancel in edit…
tonisevener d8e0d3f
Fix bottom space on iPad
tonisevener e0f5595
Add search button back into Article, pop/dismiss on search cancel
tonisevener f73f4f7
Merge branch 'main' into prototype/system-nav-bar
tonisevener d99153f
Wrong title on search
tonisevener 912d85e
Merge branch 'main' into prototype/system-nav-bar
tonisevener 0695dbd
Strings changes from building
tonisevener b99286e
Code cleanup part 1
tonisevener 0c2b16d
Code cleanup part 2
tonisevener 558b1b3
Close cleanup part 3
tonisevener d170372
Compile fixes, strings changes from building
tonisevener 3f0051d
Set empty titles as hidden
tonisevener afe81b0
Fix crash with Article iPad feature announcement
tonisevener 2bbd7af
Minor comment tweak
tonisevener 398b4fd
PR Feedback - indent
tonisevener c2362ae
PR Feedback - move navigation bar protocols into separate files
tonisevener 7ea1125
PR Feedback - duplicate backgroundColor setting
tonisevener 6e2f0a9
PR Feedback - use closure instead of DiffHeaderTitleViewTapDelegate
tonisevener f330293
PR Feedback - Use closure instead of DiffHeaderActionDelegate
tonisevener 752c54c
PR Feedback - Use closure instead of SearchResultsViewControllerDelegate
tonisevener ff216ba
PR Feedback - Use closure instead of SearchViewControllerRecentlySear…
tonisevener 02d67aa
PR Feedback - Use closure instead of SearchViewControllerResultSelect…
tonisevener a50d946
Merge branch 'main' into prototype/system-nav-bar
tonisevener af19648
Strings changes from building
tonisevener 02aa875
Merge branch 'main' into prototype/system-nav-bar
tonisevener 162fd48
Strings changes from building
tonisevener e572be6
PR Feedback - Remove test code
tonisevener b24adf6
Merge branch 'main' into prototype/system-nav-bar
mazevedofs 0b3e909
Merge branch 'main' into prototype/system-nav-bar
tonisevener File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
127 changes: 127 additions & 0 deletions
127
.../Sources/WMFComponents/Base/Component Base Classes/WMFComponentNavigationController.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
import UIKit | ||
import Combine | ||
|
||
open class WMFComponentNavigationController: UINavigationController { | ||
|
||
// MARK: - Private Properties | ||
|
||
private var cancellables = Set<AnyCancellable>() | ||
|
||
// MARK: - Public Properties | ||
|
||
var appEnvironment: WMFAppEnvironment { | ||
return WMFAppEnvironment.current | ||
} | ||
|
||
var theme: WMFTheme { | ||
return WMFAppEnvironment.current.theme | ||
} | ||
|
||
var forcePortrait = false | ||
|
||
// MARK: - Public | ||
|
||
@objc public convenience init(rootViewController: UIViewController, modalPresentationStyle: UIModalPresentationStyle) { | ||
self.init(rootViewController: rootViewController) | ||
self.modalPresentationStyle = modalPresentationStyle | ||
} | ||
|
||
public override init(rootViewController: UIViewController) { | ||
super.init(rootViewController: rootViewController) | ||
subscribeToAppEnvironmentChanges() | ||
setup() | ||
} | ||
|
||
open override func viewWillAppear(_ animated: Bool) { | ||
super.viewWillAppear(animated) | ||
|
||
setBarAppearance() | ||
} | ||
|
||
required public init?(coder aDecoder: NSCoder) { | ||
fatalError("init(coder:) has not been implemented") | ||
} | ||
|
||
open override var supportedInterfaceOrientations: UIInterfaceOrientationMask { | ||
return forcePortrait ? .portrait : topViewController?.supportedInterfaceOrientations ?? .all | ||
} | ||
|
||
open override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { | ||
return topViewController?.preferredInterfaceOrientationForPresentation ?? .portrait | ||
} | ||
|
||
public func turnOnForcePortrait() { | ||
forcePortrait = true | ||
} | ||
|
||
public func turnOffForcePortrait() { | ||
forcePortrait = false | ||
} | ||
|
||
// MARK: - AppEnvironment Subscription | ||
|
||
private func subscribeToAppEnvironmentChanges() { | ||
WMFAppEnvironment.publisher | ||
.sink(receiveValue: { [weak self] _ in self?.appEnvironmentDidChange() }) | ||
.store(in: &cancellables) | ||
} | ||
|
||
// MARK: - Subclass Overrides | ||
|
||
public func appEnvironmentDidChange() { | ||
overrideUserInterfaceStyle = theme.userInterfaceStyle | ||
setNeedsStatusBarAppearanceUpdate() | ||
|
||
setBarAppearance() | ||
} | ||
|
||
private func setBarAppearance() { | ||
|
||
let barAppearance = UINavigationBarAppearance() | ||
barAppearance.configureWithOpaqueBackground() | ||
barAppearance.largeTitleTextAttributes = [.font: WMFFont.navigationBarLeadingLargeTitleFont] | ||
|
||
if modalPresentationStyle == .pageSheet { | ||
barAppearance.backgroundColor = theme.midBackground | ||
let backgroundImage = UIImage.roundedRectImage(with: theme.midBackground, cornerRadius: 1) | ||
barAppearance.backgroundImage = backgroundImage | ||
} else { | ||
barAppearance.backgroundColor = theme.paperBackground | ||
let backgroundImage = UIImage.roundedRectImage(with: theme.paperBackground, cornerRadius: 1) | ||
barAppearance.backgroundImage = backgroundImage | ||
} | ||
|
||
barAppearance.shadowImage = UIImage() | ||
barAppearance.shadowColor = .clear | ||
|
||
navigationBar.tintColor = theme.navigationBarTintColor | ||
navigationBar.standardAppearance = barAppearance | ||
navigationBar.scrollEdgeAppearance = barAppearance | ||
navigationBar.compactAppearance = barAppearance | ||
} | ||
|
||
open override var preferredStatusBarStyle: UIStatusBarStyle { | ||
return theme.preferredStatusBarStyle | ||
} | ||
|
||
// MARK: - Private | ||
|
||
private func setup() { | ||
interactivePopGestureRecognizer?.delegate = self | ||
} | ||
|
||
} | ||
|
||
extension WMFComponentNavigationController: UIGestureRecognizerDelegate { | ||
public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { | ||
return viewControllers.count > 0 | ||
} | ||
|
||
public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { | ||
if gestureRecognizer is UIScreenEdgePanGestureRecognizer { | ||
return false | ||
} | ||
|
||
return true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small tiny: can we indent this