Compare commits

..

3 Commits

4 changed files with 21 additions and 2 deletions

View File

@ -1,5 +1,17 @@
# Changelog # Changelog
## 2024.3 (128)
Bugfixes:
- Fix selecting poll option playing too much haptic feedback
- Fix crash when displaying HTML in certain posts
- Fix gifv playback pausing audio from other apps
- Fix gifv playback not resuming after returning from background
- Fix attachment badges not appearing on gifvs
- iPadOS: Fix poll options not having pointer hover effects
- iPadOS: Fix haptic feedback not working on new Magic Keyboard
- iPadOS: Fix scrubbing video with pointer not letting you click to select position
- iPadOS: Fix multi-column navigation not animating when replacing multiple columns
## 2024.3 (127) ## 2024.3 (127)
Bugfixes: Bugfixes:
- Fix Remove Suggestion context menu action missing from Suggested Accounts screen - Fix Remove Suggestion context menu action missing from Suggested Accounts screen

View File

@ -34,6 +34,8 @@ final class AudioSessionCoordinator {
} }
func endPlayback(token: Token, completionHandler: (() -> Void)? = nil) { func endPlayback(token: Token, completionHandler: (() -> Void)? = nil) {
// mark the token as consumed, so when it's deinited we don't try to end again
token.consumed = true
// the enqueued block can't retain token, since it may be being dealloc'd right now // the enqueued block can't retain token, since it may be being dealloc'd right now
let mode = token.mode let mode = token.mode
queue.async { queue.async {
@ -70,15 +72,18 @@ final class AudioSessionCoordinator {
final class Token { final class Token {
let mode: Mode let mode: Mode
fileprivate var consumed = false
init(mode: Mode) { init(mode: Mode) {
self.mode = mode self.mode = mode
} }
deinit { deinit {
if !consumed {
AudioSessionCoordinator.shared.endPlayback(token: self) AudioSessionCoordinator.shared.endPlayback(token: self)
} }
} }
}
enum Mode { enum Mode {
case video case video

View File

@ -380,6 +380,8 @@ class AttachmentView: GIFImageView {
self.badgeContainer = stack self.badgeContainer = stack
stack.axis = .horizontal stack.axis = .horizontal
stack.spacing = 2 stack.spacing = 2
// badges should appear on top of any subsequently added views (e.g., gifv)
stack.layer.zPosition = 100
stack.translatesAutoresizingMaskIntoConstraints = false stack.translatesAutoresizingMaskIntoConstraints = false
let font = UIFontMetrics(forTextStyle: .caption1).scaledFont(for: .systemFont(ofSize: 13, weight: .bold)) let font = UIFontMetrics(forTextStyle: .caption1).scaledFont(for: .systemFont(ofSize: 13, weight: .bold))

View File

@ -10,7 +10,7 @@
// https://help.apple.com/xcode/#/dev745c5c974 // https://help.apple.com/xcode/#/dev745c5c974
MARKETING_VERSION = 2024.3 MARKETING_VERSION = 2024.3
CURRENT_PROJECT_VERSION = 127 CURRENT_PROJECT_VERSION = 128
CURRENT_PROJECT_VERSION = $(inherited)$(CURRENT_PROJECT_VERSION_BUILD_SUFFIX_$(CONFIGURATION)) CURRENT_PROJECT_VERSION = $(inherited)$(CURRENT_PROJECT_VERSION_BUILD_SUFFIX_$(CONFIGURATION))
CURRENT_PROJECT_VERSION_BUILD_SUFFIX_Debug=-dev CURRENT_PROJECT_VERSION_BUILD_SUFFIX_Debug=-dev