List migration from UITableView to UICollectionView#1240
Merged
Conversation
… that cells are full width on all platforms (fixes indentation issue on MacOS Designed for iPad). Theme picker view changed to SwiftUI to fix opaque tabbar background issue.
- Remove dead `lastKnownContentViewWidth` cache and the table-view-era width-change invalidation on the forum and thread list controllers; cell sizing is now driven by `preferredLayoutAttributesFitting`. - Remove unused `estimatedHeight` and `heightForViewModel` static helpers from forum, thread, and message list cells (kept `ThreadListCell.heightForViewModel`, still used by `ThreadPreviewViewController`). - Replace `assert(scrollView === collectionView)` with a `guard` in `LoadMoreCollectionFooter` so the check holds in Release builds. - Reuse the existing `selectedBackgroundView` in `UICollectionViewCell.selectedBackgroundColor` instead of allocating a fresh `UIView` on every set. - Drop the orphaned `"%@ %@"` localization stub.
…alignment as much as possible.
- Delete the unused `LoadMoreFooter` (UITableView version); every caller is now on `LoadMoreCollectionFooter`. - Drop orphaned `"%@ %@"` and `"Done"` localization stubs from AwfulSettingsUI. - `ThreadListDataSource.setBookmarkFilter`: remove the unused `animated` parameter and tighten the doc comment — the supplementary-view focus rationale is stale now that the bookmarks search bar is hosted outside the collection view. - `ForumListDataSource.scheduleSnapshotApply`: nil out the stored work item once it runs so we don't hold a dangling reference. - `NavigationController.replaceSidebarBarButtonItems`: skip the custom back-button injection when the pushed VC is a `UIHostingController`. SwiftUI manages its own back button on views pushed via `NavigationLink` (theme picker, app icon picker, etc.), so the injection produced two visible back chevrons. - Remove the `Done` toolbar item from `AppIconGridView` — leftover from when the picker was a presented sheet; back button suffices now that it's pushed via `NavigationLink`.
nolanw
approved these changes
Apr 28, 2026
Member
nolanw
left a comment
There was a problem hiding this comment.
long overdue, ty! ok to merge after resolving the conflict
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The UICollectionView change needed other changes for the bookmarks filter, etc. Looks much better on all platforms now.
Tested on simulators for iPhone 17 Pro 26.4, iPad Pro M5 11" 26.4, iPad mini 18.5 and Designed for iPad MacOS 26.4