Compare commits

..

No commits in common. "747496996976d5f9d9282bc5b6a7407f66d46c67" and "6d692c273069113f2419d0aa211fdf4bdd6d19a5" have entirely different histories.

7 changed files with 12 additions and 49 deletions

View File

@ -81,7 +81,10 @@ class ImageCache {
guard !ImageCache.disableCaching else { return } guard !ImageCache.disableCaching else { return }
if !((try? cache.has(url.absoluteString)) ?? false) { if !((try? cache.has(url.absoluteString)) ?? false) {
let task = dataTask(url: url, completion: nil) let task = dataTask(url: url) { data, image in
guard let data else { return }
try? self.cache.set(url.absoluteString, data: data, image: image)
}
task.resume() task.resume()
} }
} }
@ -92,9 +95,7 @@ class ImageCache {
let data else { let data else {
return return
} }
let image = UIImage(data: data) completion?(data, UIImage(data: data))
try? self.cache.set(url.absoluteString, data: data, image: image)
completion?(data, image)
} }
} }

View File

@ -10,30 +10,14 @@ import UIKit
import AVKit import AVKit
import Pachyderm import Pachyderm
class GalleryPlayerViewController: UIViewController { class GalleryPlayerViewController: AVPlayerViewController {
let playerVC = AVPlayerViewController()
var attachment: Attachment! var attachment: Attachment!
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
view.backgroundColor = .black allowsPictureInPicturePlayback = true
playerVC.allowsPictureInPicturePlayback = true
playerVC.view.translatesAutoresizingMaskIntoConstraints = false
addChild(playerVC)
playerVC.didMove(toParent: self)
view.addSubview(playerVC.view)
NSLayoutConstraint.activate([
playerVC.view.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
playerVC.view.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
playerVC.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
playerVC.view.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
])
} }
override func viewDidAppear(_ animated: Bool) { override func viewDidAppear(_ animated: Bool) {

View File

@ -93,8 +93,8 @@ class GalleryViewController: UIPageViewController, UIPageViewControllerDataSourc
return vc return vc
case .video, .audio: case .video, .audio:
let vc = GalleryPlayerViewController() let vc = GalleryPlayerViewController()
vc.playerVC.player = AVPlayer(url: attachment.url) vc.player = AVPlayer(url: attachment.url)
vc.playerVC.delegate = avPlayerViewControllerDelegate vc.delegate = avPlayerViewControllerDelegate
vc.attachment = attachment vc.attachment = attachment
return vc return vc
case .gifv: case .gifv:

View File

@ -197,11 +197,7 @@ class TimelineViewController: UIViewController, TimelineLikeCollectionViewContro
@objc func refresh() { @objc func refresh() {
Task { Task {
if case .notLoadedInitial = await controller.state {
await controller.loadInitial()
} else {
await controller.loadNewer() await controller.loadNewer()
}
#if !targetEnvironment(macCatalyst) #if !targetEnvironment(macCatalyst)
collectionView.refreshControl?.endRefreshing() collectionView.refreshControl?.endRefreshing()
#endif #endif
@ -284,8 +280,6 @@ extension TimelineViewController {
typealias TimelineItem = String // status ID typealias TimelineItem = String // status ID
func loadInitial() async throws -> [TimelineItem] { func loadInitial() async throws -> [TimelineItem] {
try await Task.sleep(nanoseconds: 1 * NSEC_PER_SEC)
guard let mastodonController else { guard let mastodonController else {
throw Error.noClient throw Error.noClient
} }

View File

@ -64,14 +64,6 @@ extension TimelineLikeCollectionViewController {
} }
func handleAddLoadingIndicator() async { func handleAddLoadingIndicator() async {
if case .loadingInitial(_, _) = await controller.state,
let refreshControl = collectionView.refreshControl,
refreshControl.isRefreshing {
refreshControl.beginRefreshing()
// if we're loading initial and the refresh control is already going, we don't need to add another indicator
return
}
var snapshot = dataSource.snapshot() var snapshot = dataSource.snapshot()
if !snapshot.sectionIdentifiers.contains(.footer) { if !snapshot.sectionIdentifiers.contains(.footer) {
snapshot.appendSections([.footer]) snapshot.appendSections([.footer])
@ -85,13 +77,6 @@ extension TimelineLikeCollectionViewController {
} }
func handleRemoveLoadingIndicator() async { func handleRemoveLoadingIndicator() async {
if case .loadingInitial(_, _) = await controller.state,
let refreshControl = collectionView.refreshControl,
refreshControl.isRefreshing {
refreshControl.endRefreshing()
return
}
let oldContentOffset = collectionView.contentOffset let oldContentOffset = collectionView.contentOffset
var snapshot = dataSource.snapshot() var snapshot = dataSource.snapshot()
snapshot.deleteSections([.footer]) snapshot.deleteSections([.footer])

View File

@ -70,7 +70,7 @@ actor TimelineLikeController<Item> {
} catch { } catch {
await loadingIndicator.end() await loadingIndicator.end()
await emit(event: .loadAllError(error, token)) await emit(event: .loadAllError(error, token))
state = .notLoadedInitial state = .idle
} }
} }
@ -194,7 +194,7 @@ actor TimelineLikeController<Item> {
return false return false
} }
case .loadingInitial(let token, let hasAddedLoadingIndicator): case .loadingInitial(let token, let hasAddedLoadingIndicator):
return to == .notLoadedInitial || to == .idle || (!hasAddedLoadingIndicator && to == .loadingInitial(token, hasAddedLoadingIndicator: true)) return to == .idle || (!hasAddedLoadingIndicator && to == .loadingInitial(token, hasAddedLoadingIndicator: true))
case .loadingNewer(_): case .loadingNewer(_):
return to == .idle return to == .idle
case .loadingOlder(let token, let hasAddedLoadingIndicator): case .loadingOlder(let token, let hasAddedLoadingIndicator):

View File

@ -142,7 +142,6 @@ class ProfileHeaderView: UIView {
} }
} }
fieldsView.delegate = delegate
fieldsView.updateUI(account: account) fieldsView.updateUI(account: account)
accessibilityElements = [ accessibilityElements = [