Compare commits
No commits in common. "747496996976d5f9d9282bc5b6a7407f66d46c67" and "6d692c273069113f2419d0aa211fdf4bdd6d19a5" have entirely different histories.
7474969969
...
6d692c2730
|
@ -81,7 +81,10 @@ class ImageCache {
|
|||
guard !ImageCache.disableCaching else { return }
|
||||
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
@ -92,9 +95,7 @@ class ImageCache {
|
|||
let data else {
|
||||
return
|
||||
}
|
||||
let image = UIImage(data: data)
|
||||
try? self.cache.set(url.absoluteString, data: data, image: image)
|
||||
completion?(data, image)
|
||||
completion?(data, UIImage(data: data))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,30 +10,14 @@ import UIKit
|
|||
import AVKit
|
||||
import Pachyderm
|
||||
|
||||
class GalleryPlayerViewController: UIViewController {
|
||||
|
||||
let playerVC = AVPlayerViewController()
|
||||
class GalleryPlayerViewController: AVPlayerViewController {
|
||||
|
||||
var attachment: Attachment!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
view.backgroundColor = .black
|
||||
|
||||
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),
|
||||
])
|
||||
allowsPictureInPicturePlayback = true
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
|
|
|
@ -93,8 +93,8 @@ class GalleryViewController: UIPageViewController, UIPageViewControllerDataSourc
|
|||
return vc
|
||||
case .video, .audio:
|
||||
let vc = GalleryPlayerViewController()
|
||||
vc.playerVC.player = AVPlayer(url: attachment.url)
|
||||
vc.playerVC.delegate = avPlayerViewControllerDelegate
|
||||
vc.player = AVPlayer(url: attachment.url)
|
||||
vc.delegate = avPlayerViewControllerDelegate
|
||||
vc.attachment = attachment
|
||||
return vc
|
||||
case .gifv:
|
||||
|
|
|
@ -197,11 +197,7 @@ class TimelineViewController: UIViewController, TimelineLikeCollectionViewContro
|
|||
|
||||
@objc func refresh() {
|
||||
Task {
|
||||
if case .notLoadedInitial = await controller.state {
|
||||
await controller.loadInitial()
|
||||
} else {
|
||||
await controller.loadNewer()
|
||||
}
|
||||
await controller.loadNewer()
|
||||
#if !targetEnvironment(macCatalyst)
|
||||
collectionView.refreshControl?.endRefreshing()
|
||||
#endif
|
||||
|
@ -284,8 +280,6 @@ extension TimelineViewController {
|
|||
typealias TimelineItem = String // status ID
|
||||
|
||||
func loadInitial() async throws -> [TimelineItem] {
|
||||
try await Task.sleep(nanoseconds: 1 * NSEC_PER_SEC)
|
||||
|
||||
guard let mastodonController else {
|
||||
throw Error.noClient
|
||||
}
|
||||
|
|
|
@ -64,14 +64,6 @@ extension TimelineLikeCollectionViewController {
|
|||
}
|
||||
|
||||
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()
|
||||
if !snapshot.sectionIdentifiers.contains(.footer) {
|
||||
snapshot.appendSections([.footer])
|
||||
|
@ -85,13 +77,6 @@ extension TimelineLikeCollectionViewController {
|
|||
}
|
||||
|
||||
func handleRemoveLoadingIndicator() async {
|
||||
if case .loadingInitial(_, _) = await controller.state,
|
||||
let refreshControl = collectionView.refreshControl,
|
||||
refreshControl.isRefreshing {
|
||||
refreshControl.endRefreshing()
|
||||
return
|
||||
}
|
||||
|
||||
let oldContentOffset = collectionView.contentOffset
|
||||
var snapshot = dataSource.snapshot()
|
||||
snapshot.deleteSections([.footer])
|
||||
|
|
|
@ -70,7 +70,7 @@ actor TimelineLikeController<Item> {
|
|||
} catch {
|
||||
await loadingIndicator.end()
|
||||
await emit(event: .loadAllError(error, token))
|
||||
state = .notLoadedInitial
|
||||
state = .idle
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -194,7 +194,7 @@ actor TimelineLikeController<Item> {
|
|||
return false
|
||||
}
|
||||
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(_):
|
||||
return to == .idle
|
||||
case .loadingOlder(let token, let hasAddedLoadingIndicator):
|
||||
|
|
|
@ -142,7 +142,6 @@ class ProfileHeaderView: UIView {
|
|||
}
|
||||
}
|
||||
|
||||
fieldsView.delegate = delegate
|
||||
fieldsView.updateUI(account: account)
|
||||
|
||||
accessibilityElements = [
|
||||
|
|
Loading…
Reference in New Issue