Fix crash in profile due to accessing data source before it exists

This could happen if an account is updated in the background while a
profile is on screen and the user has not visited all of the tabs.
This commit is contained in:
Shadowfacts 2022-10-29 18:40:41 -04:00
parent 0e06d47687
commit cbbe9ec11f
1 changed files with 10 additions and 11 deletions

View File

@ -41,16 +41,6 @@ class ProfileStatusesViewController: UIViewController, TimelineLikeCollectionVie
self.controller = TimelineLikeController(delegate: self) self.controller = TimelineLikeController(delegate: self)
mastodonController.persistentContainer.accountSubject
.receive(on: DispatchQueue.main)
.filter { [unowned self] in $0 == self.accountID }
.sink { [unowned self] id in
var snapshot = dataSource.snapshot()
snapshot.reconfigureItems([.header(id)])
dataSource.apply(snapshot, animatingDifferences: true)
}
.store(in: &cancellables)
addKeyCommand(MenuController.refreshCommand(discoverabilityTitle: "Refresh Profile")) addKeyCommand(MenuController.refreshCommand(discoverabilityTitle: "Refresh Profile"))
} }
@ -97,7 +87,16 @@ class ProfileStatusesViewController: UIViewController, TimelineLikeCollectionVie
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
mastodonController.persistentContainer.accountSubject
.receive(on: DispatchQueue.main)
.filter { [unowned self] in $0 == self.accountID }
.sink { [unowned self] id in
var snapshot = dataSource.snapshot()
snapshot.reconfigureItems([.header(id)])
dataSource.apply(snapshot, animatingDifferences: true)
}
.store(in: &cancellables)
} }
private func createDataSource() -> UICollectionViewDiffableDataSource<Section, Item> { private func createDataSource() -> UICollectionViewDiffableDataSource<Section, Item> {