Commit Graph

20 Commits

Author SHA1 Message Date
Arkadiusz Fal
56ac6d8848 Update media browser view options sheet layout 2026-02-12 08:51:54 +01:00
Arkadiusz Fal
bcbd8f3350 Persist media browser view options per source
Save sort order, sort direction, and show-only-playable filter to
UserDefaults keyed by source ID so preferences survive navigation.
2026-02-12 08:30:45 +01:00
Arkadiusz Fal
a8c59e61cd Move close video button from toolbar into now playing card in RemoteControlView 2026-02-12 08:13:17 +01:00
Arkadiusz Fal
4f954b7c9c Add Enable All / Disable All menu to channel notifications settings 2026-02-12 07:55:56 +01:00
Arkadiusz Fal
0cfe365d4f Show video thumbnail in mini player during PiP
When PiP is active, the MPV render view shows a black frame since
rendering goes to the PiP sample buffer layer. Overlay the video
thumbnail (preferring DeArrow) on top to cover the black area,
fading it in/out smoothly when PiP starts/stops.
2026-02-12 07:19:30 +01:00
Arkadiusz Fal
284aec679f Add context menu and swipe actions to related videos in VideoInfoView 2026-02-12 07:01:08 +01:00
Arkadiusz Fal
d546c0a976 Fix subscriber count layout shift in VideoInfoView channel row 2026-02-12 06:00:14 +01:00
Arkadiusz Fal
fd41833532 Persist author cache to disk for instant channel info across restarts
Back the in-memory authorCache with a JSON file in ~/Library/Caches/AuthorCache/.
Disk is lazy-loaded on first lookup and saved asynchronously on each cache update.
Capped at 500 entries to prevent unbounded growth.

- Cache author data from video detail API responses (PlayerService, VideoInfoView)
- Replace ChannelView's private CachedChannelHeader with shared CachedChannelData
- Enrich author with cached avatar/subscriber count in VideoChannelRow, TVDetailsPanel, VideoInfoView
2026-02-12 05:47:43 +01:00
Arkadiusz Fal
d1d7edb5ec Fix Feed tab flashing ContentUnavailableView on initial load
When a cancelled load task fell through to `isLoading = false`, it
created a 1-frame gap where the empty view rendered before the
replacement task set `isLoading` back to `true`. Return early on
cancellation so the surviving task controls loading state.
2026-02-12 05:17:25 +01:00
Arkadiusz Fal
24e60916f8 Fix blurred background gradient not using DeArrow thumbnail 2026-02-12 05:08:22 +01:00
Arkadiusz Fal
cd2e0a6e81 Fix playlist rows in ChannelView not tappable in empty space 2026-02-12 05:04:40 +01:00
Arkadiusz Fal
ded130a8c3 Fix lock screen always showing 10s seek regardless of system controls setting 2026-02-12 05:02:41 +01:00
Arkadiusz Fal
78bc7e0063 Remove excessive logging 2026-02-12 04:44:16 +01:00
Arkadiusz Fal
6c30e745d9 Fix player dismiss gesture stuck after panel dismiss with comments expanded
Reset isCommentsExpanded and commentsFrame on the NavigationCoordinator
directly when the portrait panel is dismissed, since PortraitDetailsPanel
owns its own @State that doesn't sync back through .onChange during dismiss.
Also track comments overlay frame via GeometryReader so the dismiss gesture
can allow swipes outside the comments area instead of blanket-blocking.
2026-02-12 04:42:32 +01:00
Arkadiusz Fal
7ac45b46a3 Fix pull-to-refresh scroll offset not resetting in InstanceBrowseView
Move .refreshable from the outer GeometryReader onto the ScrollView
itself so SwiftUI can properly coordinate the scroll offset bounce-back.
The ScrollView was inside an .overlay() which doesn't participate in
the parent's layout system, breaking the offset reset.

Closes #917
2026-02-12 01:21:54 +01:00
Arkadiusz Fal
9cd9506dcf Fix UI tests for onboarding flow and AddRemoteServer redesign
- Skip onboarding in tests by setting UserDefaults before launch
- Update all addSource.* identifiers to addRemoteServer.* for new flow
- Switch from identifier-based to text-based element lookups (iOS 26 AXe limitation)
- Add Yattee Server credential support in instance setup
- Update baseline screenshots for Home tab and settings
2026-02-10 00:05:39 +01:00
Arkadiusz Fal
13f7a0f0ca Fix panscan zoom pushing controls off screen for portrait videos 2026-02-09 08:22:16 +01:00
Arkadiusz Fal
612dce6b9f Refactor views 2026-02-09 01:13:02 +01:00
Arkadiusz Fal
8464464199 Fix locales 2026-02-09 00:13:46 +01:00
Arkadiusz Fal
05f921d605 Yattee v2 rewrite 2026-02-08 18:33:56 +01:00