Compare commits
3 Commits
50b84350d9
...
5f040ed390
Author | SHA1 | Date |
---|---|---|
Shadowfacts | 5f040ed390 | |
Shadowfacts | 870d0c8404 | |
Shadowfacts | 47b9ac890a |
|
@ -44,6 +44,7 @@ class GalleryItemViewController: UIViewController {
|
||||||
private(set) var scrollAndZoomEnabled = true
|
private(set) var scrollAndZoomEnabled = true
|
||||||
|
|
||||||
private var scrollViewSizeForLastZoomScaleUpdate: CGSize?
|
private var scrollViewSizeForLastZoomScaleUpdate: CGSize?
|
||||||
|
|
||||||
override var prefersHomeIndicatorAutoHidden: Bool {
|
override var prefersHomeIndicatorAutoHidden: Bool {
|
||||||
return !controlsVisible
|
return !controlsVisible
|
||||||
}
|
}
|
||||||
|
@ -227,6 +228,8 @@ class GalleryItemViewController: UIViewController {
|
||||||
updateZoomScale(resetZoom: true)
|
updateZoomScale(resetZoom: true)
|
||||||
}
|
}
|
||||||
centerContent()
|
centerContent()
|
||||||
|
// Ensure the transform is correct if the controls are hidden and their size changed.
|
||||||
|
setControlsVisible(controlsVisible, animated: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override func viewDidAppear(_ animated: Bool) {
|
override func viewDidAppear(_ animated: Bool) {
|
||||||
|
@ -289,10 +292,12 @@ class GalleryItemViewController: UIViewController {
|
||||||
|
|
||||||
func setControlsVisible(_ visible: Bool, animated: Bool) {
|
func setControlsVisible(_ visible: Bool, animated: Bool) {
|
||||||
controlsVisible = visible
|
controlsVisible = visible
|
||||||
|
|
||||||
guard let topControlsView,
|
guard let topControlsView,
|
||||||
let bottomControlsView else {
|
let bottomControlsView else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateControlsViews() {
|
func updateControlsViews() {
|
||||||
topControlsView.transform = CGAffineTransform(translationX: 0, y: visible ? 0 : -topControlsView.bounds.height)
|
topControlsView.transform = CGAffineTransform(translationX: 0, y: visible ? 0 : -topControlsView.bounds.height)
|
||||||
bottomControlsView.transform = CGAffineTransform(translationX: 0, y: visible ? 0 : bottomControlsView.bounds.height)
|
bottomControlsView.transform = CGAffineTransform(translationX: 0, y: visible ? 0 : bottomControlsView.bounds.height)
|
||||||
|
|
|
@ -125,6 +125,8 @@ extension GalleryViewController: UIPageViewControllerDataSource {
|
||||||
extension GalleryViewController: UIPageViewControllerDelegate {
|
extension GalleryViewController: UIPageViewControllerDelegate {
|
||||||
public func pageViewController(_ pageViewController: UIPageViewController, willTransitionTo pendingViewControllers: [UIViewController]) {
|
public func pageViewController(_ pageViewController: UIPageViewController, willTransitionTo pendingViewControllers: [UIViewController]) {
|
||||||
currentItemViewController.content.galleryContentWillDisappear()
|
currentItemViewController.content.galleryContentWillDisappear()
|
||||||
|
let new = pendingViewControllers[0] as! GalleryItemViewController
|
||||||
|
new.setControlsVisible(currentItemViewController.controlsVisible, animated: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
|
public func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
|
||||||
|
|
|
@ -106,6 +106,9 @@ class VideoOverlayViewController: UIViewController {
|
||||||
if player.rate > 0 {
|
if player.rate > 0 {
|
||||||
player.rate = 0
|
player.rate = 0
|
||||||
} else {
|
} else {
|
||||||
|
if player.currentTime() >= player.currentItem!.duration {
|
||||||
|
player.seek(to: .zero)
|
||||||
|
}
|
||||||
#if os(visionOS)
|
#if os(visionOS)
|
||||||
player.play()
|
player.play()
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -54,8 +54,8 @@ class ProfileFieldValueView: UIView {
|
||||||
textView.isScrollEnabled = false
|
textView.isScrollEnabled = false
|
||||||
textView.isSelectable = false
|
textView.isSelectable = false
|
||||||
textView.isEditable = false
|
textView.isEditable = false
|
||||||
textView.textContainerInset = .zero
|
|
||||||
textView.font = .preferredFont(forTextStyle: .body)
|
textView.font = .preferredFont(forTextStyle: .body)
|
||||||
|
updateTextContainerInset()
|
||||||
textView.adjustsFontForContentSizeCategory = true
|
textView.adjustsFontForContentSizeCategory = true
|
||||||
textView.attributedText = converted
|
textView.attributedText = converted
|
||||||
textView.setEmojis(account.emojis, identifier: account.id)
|
textView.setEmojis(account.emojis, identifier: account.id)
|
||||||
|
@ -108,6 +108,27 @@ class ProfileFieldValueView: UIView {
|
||||||
return size
|
return size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
||||||
|
super.traitCollectionDidChange(previousTraitCollection)
|
||||||
|
if traitCollection.preferredContentSizeCategory != previousTraitCollection?.preferredContentSizeCategory {
|
||||||
|
updateTextContainerInset()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func updateTextContainerInset() {
|
||||||
|
// blergh
|
||||||
|
switch traitCollection.preferredContentSizeCategory {
|
||||||
|
case .extraSmall:
|
||||||
|
textView.textContainerInset = UIEdgeInsets(top: 4, left: 0, bottom: 0, right: 0)
|
||||||
|
case .small:
|
||||||
|
textView.textContainerInset = UIEdgeInsets(top: 3, left: 0, bottom: 0, right: 0)
|
||||||
|
case .medium, .large:
|
||||||
|
textView.textContainerInset = UIEdgeInsets(top: 2, left: 0, bottom: 0, right: 0)
|
||||||
|
default:
|
||||||
|
textView.textContainerInset = .zero
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func setTextAlignment(_ alignment: NSTextAlignment) {
|
func setTextAlignment(_ alignment: NSTextAlignment) {
|
||||||
textView.textAlignment = alignment
|
textView.textAlignment = alignment
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue