From b75560789531032311d93aa584359d76103868ca Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Mon, 31 Oct 2022 16:27:13 -0400 Subject: [PATCH] Fix crash when TimelineStatusTableViewCell outlives its containing VC --- .../Screens/Account List/AccountListTableViewController.swift | 2 +- Tusker/Screens/Bookmarks/BookmarksTableViewController.swift | 3 +-- .../Screens/Conversation/ConversationTableViewController.swift | 3 ++- Tusker/Screens/Explore/ProfileDirectoryViewController.swift | 2 +- Tusker/Screens/Explore/TrendingHashtagsViewController.swift | 2 +- Tusker/Screens/Explore/TrendingLinksViewController.swift | 2 +- Tusker/Screens/Explore/TrendingStatusesViewController.swift | 2 +- Tusker/Screens/Lists/EditListAccountsViewController.swift | 2 +- .../Notifications/NotificationsTableViewController.swift | 2 +- Tusker/Screens/Profile/ProfileStatusesViewController.swift | 2 +- Tusker/Screens/Profile/ProfileViewController.swift | 2 +- Tusker/Screens/Search/SearchResultsViewController.swift | 2 +- Tusker/Screens/Search/SearchViewController.swift | 2 +- .../StatusActionAccountListTableViewController.swift | 2 +- Tusker/Screens/Timeline/TimelineTableViewController.swift | 2 +- Tusker/Screens/Timeline/TimelineViewController.swift | 2 +- Tusker/TuskerNavigationDelegate.swift | 2 +- 17 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Tusker/Screens/Account List/AccountListTableViewController.swift b/Tusker/Screens/Account List/AccountListTableViewController.swift index 4d9c2ae3..befe4df0 100644 --- a/Tusker/Screens/Account List/AccountListTableViewController.swift +++ b/Tusker/Screens/Account List/AccountListTableViewController.swift @@ -65,7 +65,7 @@ class AccountListTableViewController: EnhancedTableViewController { } extension AccountListTableViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension AccountListTableViewController: ToastableViewController { diff --git a/Tusker/Screens/Bookmarks/BookmarksTableViewController.swift b/Tusker/Screens/Bookmarks/BookmarksTableViewController.swift index f867eb60..a1b26318 100644 --- a/Tusker/Screens/Bookmarks/BookmarksTableViewController.swift +++ b/Tusker/Screens/Bookmarks/BookmarksTableViewController.swift @@ -154,6 +154,7 @@ class BookmarksTableViewController: EnhancedTableViewController { } extension BookmarksTableViewController: TuskerNavigationDelegate { + var apiController: MastodonController! { mastodonController } } extension BookmarksTableViewController: ToastableViewController { @@ -163,8 +164,6 @@ extension BookmarksTableViewController: MenuActionProvider { } extension BookmarksTableViewController: StatusTableViewCellDelegate { - var apiController: MastodonController { mastodonController } - func statusCellCollapsedStateChanged(_ cell: BaseStatusTableViewCell) { tableView.beginUpdates() tableView.endUpdates() diff --git a/Tusker/Screens/Conversation/ConversationTableViewController.swift b/Tusker/Screens/Conversation/ConversationTableViewController.swift index 3852ac3e..9b62ee77 100644 --- a/Tusker/Screens/Conversation/ConversationTableViewController.swift +++ b/Tusker/Screens/Conversation/ConversationTableViewController.swift @@ -441,6 +441,8 @@ extension ConversationTableViewController { } extension ConversationTableViewController: TuskerNavigationDelegate { + var apiController: MastodonController! { mastodonController } + func conversation(mainStatusID: String, state: StatusState) -> ConversationTableViewController { let vc = ConversationTableViewController(for: mainStatusID, state: state, mastodonController: mastodonController) // transfer show statuses automatically state when showing new conversation @@ -453,7 +455,6 @@ extension ConversationTableViewController: MenuActionProvider { } extension ConversationTableViewController: StatusTableViewCellDelegate { - var apiController: MastodonController { mastodonController } func statusCellCollapsedStateChanged(_ cell: BaseStatusTableViewCell) { // causes the table view to recalculate the cell heights tableView.beginUpdates() diff --git a/Tusker/Screens/Explore/ProfileDirectoryViewController.swift b/Tusker/Screens/Explore/ProfileDirectoryViewController.swift index f35e9b13..95df4712 100644 --- a/Tusker/Screens/Explore/ProfileDirectoryViewController.swift +++ b/Tusker/Screens/Explore/ProfileDirectoryViewController.swift @@ -147,7 +147,7 @@ extension ProfileDirectoryViewController { } extension ProfileDirectoryViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension ProfileDirectoryViewController: ToastableViewController { diff --git a/Tusker/Screens/Explore/TrendingHashtagsViewController.swift b/Tusker/Screens/Explore/TrendingHashtagsViewController.swift index ce67bd48..98393372 100644 --- a/Tusker/Screens/Explore/TrendingHashtagsViewController.swift +++ b/Tusker/Screens/Explore/TrendingHashtagsViewController.swift @@ -120,7 +120,7 @@ extension TrendingHashtagsViewController: UICollectionViewDragDelegate { } extension TrendingHashtagsViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension TrendingHashtagsViewController: ToastableViewController { diff --git a/Tusker/Screens/Explore/TrendingLinksViewController.swift b/Tusker/Screens/Explore/TrendingLinksViewController.swift index e5056c49..b882baa6 100644 --- a/Tusker/Screens/Explore/TrendingLinksViewController.swift +++ b/Tusker/Screens/Explore/TrendingLinksViewController.swift @@ -101,7 +101,7 @@ extension TrendingLinksViewController { } extension TrendingLinksViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension TrendingLinksViewController: ToastableViewController { diff --git a/Tusker/Screens/Explore/TrendingStatusesViewController.swift b/Tusker/Screens/Explore/TrendingStatusesViewController.swift index a290381e..fac5adf2 100644 --- a/Tusker/Screens/Explore/TrendingStatusesViewController.swift +++ b/Tusker/Screens/Explore/TrendingStatusesViewController.swift @@ -82,7 +82,7 @@ extension TrendingStatusesViewController { } extension TrendingStatusesViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension TrendingStatusesViewController: ToastableViewController { diff --git a/Tusker/Screens/Lists/EditListAccountsViewController.swift b/Tusker/Screens/Lists/EditListAccountsViewController.swift index df670458..624a043f 100644 --- a/Tusker/Screens/Lists/EditListAccountsViewController.swift +++ b/Tusker/Screens/Lists/EditListAccountsViewController.swift @@ -174,7 +174,7 @@ extension EditListAccountsViewController: SearchResultsViewControllerDelegate { } extension EditListAccountsViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension EditListAccountsViewController: ToastableViewController { diff --git a/Tusker/Screens/Notifications/NotificationsTableViewController.swift b/Tusker/Screens/Notifications/NotificationsTableViewController.swift index 81564d43..06c0931d 100644 --- a/Tusker/Screens/Notifications/NotificationsTableViewController.swift +++ b/Tusker/Screens/Notifications/NotificationsTableViewController.swift @@ -269,7 +269,7 @@ extension NotificationsTableViewController { } extension NotificationsTableViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension NotificationsTableViewController: MenuActionProvider { diff --git a/Tusker/Screens/Profile/ProfileStatusesViewController.swift b/Tusker/Screens/Profile/ProfileStatusesViewController.swift index 5eb3ad88..5603d386 100644 --- a/Tusker/Screens/Profile/ProfileStatusesViewController.swift +++ b/Tusker/Screens/Profile/ProfileStatusesViewController.swift @@ -455,7 +455,7 @@ extension ProfileStatusesViewController: UICollectionViewDragDelegate { } extension ProfileStatusesViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension ProfileStatusesViewController: MenuActionProvider { diff --git a/Tusker/Screens/Profile/ProfileViewController.swift b/Tusker/Screens/Profile/ProfileViewController.swift index 2594ad30..2fdf2f15 100644 --- a/Tusker/Screens/Profile/ProfileViewController.swift +++ b/Tusker/Screens/Profile/ProfileViewController.swift @@ -279,7 +279,7 @@ extension ProfileViewController { } extension ProfileViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension ProfileViewController: ToastableViewController { diff --git a/Tusker/Screens/Search/SearchResultsViewController.swift b/Tusker/Screens/Search/SearchResultsViewController.swift index 195d50cd..1cb9c8e8 100644 --- a/Tusker/Screens/Search/SearchResultsViewController.swift +++ b/Tusker/Screens/Search/SearchResultsViewController.swift @@ -289,6 +289,7 @@ extension SearchResultsViewController: UISearchBarDelegate { } extension SearchResultsViewController: TuskerNavigationDelegate { + var apiController: MastodonController! { mastodonController } } extension SearchResultsViewController: ToastableViewController { @@ -298,7 +299,6 @@ extension SearchResultsViewController: MenuActionProvider { } extension SearchResultsViewController: StatusTableViewCellDelegate { - var apiController: MastodonController { mastodonController } func statusCellCollapsedStateChanged(_ cell: BaseStatusTableViewCell) { tableView.beginUpdates() tableView.endUpdates() diff --git a/Tusker/Screens/Search/SearchViewController.swift b/Tusker/Screens/Search/SearchViewController.swift index ddc25420..7a548f39 100644 --- a/Tusker/Screens/Search/SearchViewController.swift +++ b/Tusker/Screens/Search/SearchViewController.swift @@ -319,7 +319,7 @@ extension SearchViewController: UICollectionViewDragDelegate { } extension SearchViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension SearchViewController: ToastableViewController { diff --git a/Tusker/Screens/Status Action Account List/StatusActionAccountListTableViewController.swift b/Tusker/Screens/Status Action Account List/StatusActionAccountListTableViewController.swift index c491517f..aac80280 100644 --- a/Tusker/Screens/Status Action Account List/StatusActionAccountListTableViewController.swift +++ b/Tusker/Screens/Status Action Account List/StatusActionAccountListTableViewController.swift @@ -145,6 +145,7 @@ class StatusActionAccountListTableViewController: EnhancedTableViewController { } extension StatusActionAccountListTableViewController: TuskerNavigationDelegate { + var apiController: MastodonController! { mastodonController } } extension StatusActionAccountListTableViewController: ToastableViewController { @@ -154,7 +155,6 @@ extension StatusActionAccountListTableViewController: MenuActionProvider { } extension StatusActionAccountListTableViewController: StatusTableViewCellDelegate { - var apiController: MastodonController { mastodonController } func statusCellCollapsedStateChanged(_ cell: BaseStatusTableViewCell) { // causes the table view to recalculate the cell heights tableView.beginUpdates() diff --git a/Tusker/Screens/Timeline/TimelineTableViewController.swift b/Tusker/Screens/Timeline/TimelineTableViewController.swift index 876f0a9d..ab702a65 100644 --- a/Tusker/Screens/Timeline/TimelineTableViewController.swift +++ b/Tusker/Screens/Timeline/TimelineTableViewController.swift @@ -294,7 +294,7 @@ extension TimelineTableViewController { } extension TimelineTableViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension TimelineTableViewController: StatusTableViewCellDelegate { diff --git a/Tusker/Screens/Timeline/TimelineViewController.swift b/Tusker/Screens/Timeline/TimelineViewController.swift index b9d32eae..f986e394 100644 --- a/Tusker/Screens/Timeline/TimelineViewController.swift +++ b/Tusker/Screens/Timeline/TimelineViewController.swift @@ -398,7 +398,7 @@ extension TimelineViewController: UICollectionViewDragDelegate { } extension TimelineViewController: TuskerNavigationDelegate { - var apiController: MastodonController { mastodonController } + var apiController: MastodonController! { mastodonController } } extension TimelineViewController: MenuActionProvider { diff --git a/Tusker/TuskerNavigationDelegate.swift b/Tusker/TuskerNavigationDelegate.swift index d7c57c35..b6e3148d 100644 --- a/Tusker/TuskerNavigationDelegate.swift +++ b/Tusker/TuskerNavigationDelegate.swift @@ -11,7 +11,7 @@ import SafariServices import Pachyderm protocol TuskerNavigationDelegate: UIViewController, ToastableViewController { - var apiController: MastodonController { get } + var apiController: MastodonController! { get } func conversation(mainStatusID: String, state: StatusState) -> ConversationTableViewController }