Commit Graph

2701 Commits

Author SHA1 Message Date
Arkadiusz Fal
14b874022b Make Playback and Subtitles settings feel native on macOS
Add shared SettingsFormContainer/SettingsFormSection helpers that mirror
the Sources screen styling (uppercase subheadline headers, divider-
bracketed cards, ScrollView + LazyVStack) on macOS while keeping the
standard Form/Section layout on iOS and tvOS.

Convert PlaybackSettingsView and SubtitlesSettingsView to the new
helpers, wrap the macOS Settings detail pane in a NavigationStack so
NavigationLink pushes (Subtitles Appearance) render in the detail
column, fold the macOS-only Player Mode + Auto-resize player controls
into the Behavior section, and drop the unused queue footer.
2026-04-20 23:01:46 +02:00
Arkadiusz Fal
fef9a07aa9 Set minimum window size on macOS 2026-04-20 22:24:58 +02:00
Arkadiusz Fal
d9e4736547 Fix customize Home button on macOS 2026-04-20 22:22:32 +02:00
Arkadiusz Fal
49cdfb74af Remove Close button from Settings toolbar on macOS 2026-04-20 22:20:23 +02:00
Arkadiusz Fal
7d95a11286 Enlarge video card and row fonts on macOS 2026-04-20 21:34:14 +02:00
Arkadiusz Fal
d2b6a158db Enable app icon selection on macOS 2026-04-20 21:21:18 +02:00
Arkadiusz Fal
b0f9bb2229 Restrict swipe actions to iOS 2026-04-20 21:13:08 +02:00
Arkadiusz Fal
bb9ec2fc2a Make media browser file list feel native on macOS
Drop the iOS-grouped rounded card in MediaBrowserView's section
container for top/bottom dividers on macOS, force .buttonStyle(.plain)
on directory NavigationLinks to avoid default link tinting, and
shrink MediaFileRow's icon frame on macOS. iOS and tvOS unchanged.
2026-04-20 21:12:53 +02:00
Arkadiusz Fal
d8f10e984a Make sources list feel native on macOS
Drop the iOS-grouped rounded card, per-row chevron, and oversized
metrics on macOS. Use tighter padding, smaller icon/title fonts,
uppercase section headers, and top/bottom dividers so the list reads
like a native grouped Mac list. Force .buttonStyle(.plain) on row
buttons/NavigationLinks and add .contentShape(Rectangle()) so the
full row is hit-testable without picking up macOS's default link
styling. iOS and tvOS unchanged.
2026-04-20 21:07:05 +02:00
Arkadiusz Fal
267f770274 Add standard Settings menu item with Cmd+, on macOS 2026-04-20 20:55:07 +02:00
Arkadiusz Fal
508069cecf Make source add/edit forms feel native on macOS
Use grouped Form style with LabeledContent rows and move primary
actions into the sheet toolbar for SMB, WebDAV, Local Folder, Remote
Server and the Edit sheet. iOS and tvOS branches unchanged.
2026-04-20 20:51:24 +02:00
Arkadiusz Fal
e0e1e8cbd7 Add resizable subscriptions sidebar on iPad 2026-04-20 18:16:23 +02:00
Arkadiusz Fal
8ff5eccca9 Persist subscriptions sidebar width on macOS 2026-04-20 07:56:56 +02:00
Arkadiusz Fal
1ae73789a4 Smooth player details panel drag on iOS 2026-04-20 01:18:06 +02:00
Arkadiusz Fal
ad075319ee Tweak Subscriptions view options sheet layout 2026-04-19 18:26:51 +02:00
Arkadiusz Fal
31b244880b Add Show Sidebar toggle to Subscriptions view options
Adds a Show Sidebar toggle (iPad regular and macOS) that controls
channels sidebar visibility. When the sidebar is shown, the channel
strip picker is disabled and the redundant channel header link above
the feed is hidden. Layout picker now uses inline menu style for
consistency with other options.
2026-04-19 18:03:53 +02:00
Arkadiusz Fal
88a7c713fa Update localizable 2026-04-19 17:48:55 +02:00
Arkadiusz Fal
a3ad20fdf0 Disable settings in sidebar on macOS 2026-04-19 17:48:49 +02:00
Arkadiusz Fal
fe78261866 Add channels sidebar to Subscriptions on iPad regular width
On iPad in regular horizontal size class, the Subscriptions view now
shows a channels column next to the feed (mirroring macOS/tvOS) instead
of the floating channel strip. iPhone and compact-width iPad keep the
existing strip.

- Renames MacSubscriptionsSidebarRow to SubscriptionsSidebarRow and
  shares it across macOS and iOS.
- Uses a custom ScrollView-based sidebar on iPad to avoid iOS 26's
  sidebar background extension bleeding into the selection highlight.
- Forces inline toolbar title on iPad regular so scrolling either
  column behaves consistently.
2026-04-19 17:48:17 +02:00
Arkadiusz Fal
5e205e4a4c Use resizable sidebar layout for Subscriptions on macOS
Replaces the iOS-style floating channel strip with a dedicated
channels column next to the feed, using HSplitView for a native
draggable divider. Mirrors the tvOS two-column structure.
2026-04-19 15:04:21 +02:00
Arkadiusz Fal
68890b1f8a Use native macOS layout for OpenLinkSheet 2026-04-19 14:32:48 +02:00
Arkadiusz Fal
cee2793399 Use NavigationSplitView on macOS with persistent sidebar Settings button
Replaces the macOS TabView(.sidebarAdaptable) root with NavigationSplitView
so the Settings gear can live in the sidebar column's toolbar (next to the
sidebar toggle) instead of only appearing in HomeView's detail toolbar.
2026-04-19 14:01:06 +02:00
Arkadiusz Fal
cedefb5c97 Fix fastlane mac beta build for multiplatform scheme
Without sdk:"macosx", gym treats the multiplatform scheme as iOS and
fails with "IPA invalid". Without an explicit destination xcodebuild
picked tvOS. The output_name also needed the .app suffix removed since
gym appends .pkg for macOS app-store exports.
2026-04-19 13:33:15 +02:00
Arkadiusz Fal
181cf2f73a Fix collapsed sheets on macOS across the app
Add macOS-only minimum frame sizing to sheets that wrap a
NavigationStack/Form without intrinsic size, so they render properly
instead of collapsing to just the toolbar. Affects Customize Home,
subscription/channel view options, playlist create/edit, search
filters, media browser options, instance picker, log filters, preset
editor, and legacy data import result.
2026-04-19 11:33:16 +02:00
Arkadiusz Fal
80942dba69 Add iCloud section to macOS settings sidebar 2026-04-19 11:31:02 +02:00
Arkadiusz Fal
52a2a26f2f Fix collapsed AddSource/EditSource sheets on macOS
Add macOS-only minimum frame to NavigationStack so the sheet has
intrinsic size. Matches the pattern already used in
PeerTubeInstancesExploreView.
2026-04-19 11:24:32 +02:00
Arkadiusz Fal
e231be9c90 Update changelog 2026-04-18 21:11:44 +02:00
github-actions[bot]
e3ee528d66 Bump build number to 259 2.0.0-259 2026-04-18 19:06:30 +00:00
Arkadiusz Fal
796b646cb2 Remove YatteeShareExtension from scheme top-level build entries
Scheme-level build entries bypass the pbxproj target-dependency
platformFilter, so tvOS archives tried to build the iOS-only
ShareExtension and failed with "No profiles for *.ShareExtension".
The extension is still built on iOS via the Yattee target's
platform-filtered dependency and embed phase, matching how
YatteeTopShelf is wired for tvOS.
2026-04-18 20:54:34 +02:00
Arkadiusz Fal
7c78715c32 Remove residual Kannada translation from Shared/ directory 2026-04-18 20:40:57 +02:00
Arkadiusz Fal
b10dd431d1 Enable tvOS TestFlight build by default in release workflow 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
3a45a3e28e Update weblate credits 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
d0b4d0e64e Move tvOS sources actions to top bar with first-row focus
Sidebar buttons in TVSidebarDetailContainer were hard to focus from
the content list. Move the Add Source (and sort/group menu for Media
Sources) to a top HStack wrapped in focusSection(), matching the
pattern used in MediaBrowserView. Default focus lands on the first
source row via @FocusState + FirstRowFocusModifier.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
f60a6e3eec Fix tvOS focus trap on empty Home after fresh install
Render a focusable empty state on tvOS Home when no sections have content,
with an "Open Sources" button that switches the sidebar selection. Without
a focusable view the tvOS focus engine had no target, leaving the sidebar
unreachable after the initial iCloud alert was dismissed.

Also wire the selectedSidebarItem onChange handler into the tvOS TabView,
which was missing and prevented programmatic sidebar selection.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
823b8ae686 Pad comment focus area and remove dividers on tvOS 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
d1010507d9 Remove blue tint from tvOS comment replies indicators 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
8f00fe012f Add tvOS setting to close video with Menu button
When enabled, the Siri remote Menu button stops playback and clears the
queue instead of only collapsing the player, and the explicit top-bar
close (X) button is hidden.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
13ade8aad3 Add Continue Watching toggle to tab bar settings
Exposes ContinueWatchingView as an opt-in compact tab bar item,
hidden by default. Uses a short "Continue" label since the full
"Continue Watching" string does not fit as a tab bar title.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
096df34f64 Redesign tvOS player controls with centered transport cluster
- Move Close to a top-right circular icon; bottom row reorganizes into
  left (Settings/Info/Comments), center transport (Previous/PlayPause/Next),
  and right (Queue) clusters with equal side frames so transport stays
  geometrically centered.
- Introduce a circular icon-only `TVTransportButtonStyle` (primary variant
  for Play/Pause) mirroring the new Close button look.
- Always render Previous/Next so Play/Pause position is fixed; dim and
  disable when unavailable.
- Share `isTransportDisabled` on `PlayerState` and reuse it on iOS and
  tvOS; apply it (plus symbol replace transition) to the tvOS Play/Pause
  button.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
c0184712a9 Add Continue Watching toggle to sidebar settings
Exposes ContinueWatchingView as an opt-in main sidebar item,
hidden by default.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
2761fcbcfb Replace onboarding flow with silent v1 import and iCloud alert
Delete the multi-page onboarding sheet. On first launch the app now
silently imports any v1 instances from UserDefaults (splitting embedded
basic-auth credentials out of the URL and into the Keychain) and then,
if the device is signed in to iCloud, shows a single alert offering to
enable sync. Accepting shows a blocking progress overlay until the
initial upload completes.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
55f27e7f54 Add view options and refresh actions to tvOS media browser 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
bece7b35c7 Add clear history menu to tvOS History view 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
ee0666f5f7 Fix tvOS target configuration in Xcode project
Add tvos platformFilter to YatteeTopShelf.appex embed and target
dependency so it's only built for tvOS, and exclude Info-tvOS.plist
from Copy Bundle Resources via synchronized-folder membership
exceptions.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
c03cd0bd19 Store higher-quality YouTube thumbnail URLs in recent playlists
Rewrites /vi/ID/{default|mq|hq|sd}default.jpg to maxresdefault.jpg when
saving/updating a recent playlist, so the card shows a sharper image
than the low-res search-result thumbnail.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
663e96c859 Polish Search view layout on tvOS
- Disable scroll clipping so focused source/channel/playlist cards show full halo
- Remove rounded clip on source picker row that cut the Menu focus effect
- Replace tappable recents header Button with a plain label on tvOS
- Add vertical spacing between recent search items
- Widen recent channel and playlist cards and reserve space for two-line titles
- Increase horizontal spacing between cards so focus halos don't collide
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
5cbcceba9a Polish AddSourceView layout on tvOS
Add a TVSourceRowLabelStyle for consistent icon/text spacing, switch
the Scan Network button to TVFormRowButtonStyle so it matches the
NavigationLink rows, and drop the duplicate navigationTitle in
AddWebDAV/AddSMB views since the title is already shown in the
TVSidebarDetailContainer sidebar.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
0fe7194d68 Fix tvOS App Store upload rejection for icon assets
Use a tvOS-specific Info.plist to exclude iOS CFBundleAlternateIcons
keys that caused ITMS-90471 rejections, and drop empty image slots
from the tvOS brand asset catalog.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
6acfff6451 Update fastlane readme 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
fb14ed8ae9 Wire YatteeTopShelf into tvOS release lane
Fetch a match profile for the new stream.yattee.app.TopShelf bundle,
switch the extension target to manual signing, and map its profile in
build_app export_options so the tvOS archive signs both the main app
and the Top Shelf extension.
2026-04-18 20:38:02 +02:00