mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-05 19:28:46 +02:00
Fix video playback position reset to 0:00 on full-screen close (#1922)
UniversalVideoGalleryItemNode.maybeStorePlaybackStatus persisted the playback position from every MediaPlayerStatus delivered by the throttled status subscription — including the teardown/reset status emitted when the full-screen player is dismissed (timestamp ~0, with a freshly incremented seekId). That status fell into the `else` branch and stored a position of 0.0, overwriting the real saved position on every close. So the stored "resume" point was always 0 and the video always restarted at 0:00. Persist only a genuine mid-video position; store the 0.0 "restart" sentinel only when the video is actually near the end; and leave any saved position untouched for timestamp <= 5s (which also covers the teardown reset that caused the bug). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6e370e06d1
commit
f5886ab4fa
1 changed files with 3 additions and 5 deletions
|
|
@ -2411,13 +2411,11 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode {
|
|||
shouldStorePlaybacksState = status.duration >= 20.0
|
||||
|
||||
if shouldStorePlaybacksState {
|
||||
var timestamp: Double?
|
||||
if status.timestamp > 5.0 && status.timestamp < status.duration - 5.0 {
|
||||
timestamp = status.timestamp
|
||||
} else {
|
||||
timestamp = 0.0
|
||||
item.storeMediaPlaybackState(message.id, status.timestamp, status.baseRate)
|
||||
} else if status.timestamp >= status.duration - 5.0 {
|
||||
item.storeMediaPlaybackState(message.id, 0.0, status.baseRate)
|
||||
}
|
||||
item.storeMediaPlaybackState(message.id, timestamp, status.baseRate)
|
||||
} else {
|
||||
item.storeMediaPlaybackState(message.id, nil, status.baseRate)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue