Commit Graph

2326 Commits

Author SHA1 Message Date
Arkadiusz Fal
161282af0b Bump build number to 204 2025-11-09 18:20:50 +01:00
Arkadiusz Fal
37c6f6abbe Add localization support for Finnish, Indonesian, Korean, Dutch, and Swedish
Adds five new languages to the Xcode project knownRegions that have at least 50% translation coverage from Weblate:
- Finnish (fi): 100%
- Indonesian (id): 100%
- Korean (ko): 100%
- Dutch (nl): 81.9%
- Swedish (sv): 77.4%

Languages with less than 50% coverage (ars, kab, sk) were not added.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:19:40 +01:00
Arkadiusz Fal
6129d724c5 Update dependencies 2025-11-09 18:14:35 +01:00
Arkadiusz Fal
be4e1adb9b Fix all SwiftLint violations across codebase
Resolves 130+ violations including deployment target checks, code style issues, and formatting inconsistencies. Adds SwiftLint disable comments for compiler-required availability checks while maintaining deployment target compliance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
4840c9a05f Use fullScreenCover for Settings and Accounts on tvOS
- Replace sheet presentation with fullScreenCover for Settings and Accounts views on tvOS
- Add proper background color to Settings and Accounts screens on tvOS
- Clean up trailing whitespace in HomeView

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
e0ca48fd44 Improve tvOS settings UI styling and navigation
- Add TVOSPlainToggleStyle for cleaner toggle appearance on tvOS
- Remove focus overlays from settings navigation links and buttons
- Apply plain button and list styles across all settings screens
- Implement custom system controls picker for tvOS to avoid focus overlay
- Update SettingsPickerModifier with platform-specific styling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
495dcec874 Add macOS build script and update Swift package dependencies
Add custom build phase script to fix macOS framework bundle structure and
clean module caches:
- Converts shallow bundles (iOS-style) to versioned bundles (macOS-style)
- Cleans Swift module caches for macOS builds to prevent cache issues
- Creates proper symlink structure for macOS frameworks (Versions/Current)
- Handles Info.plist, Headers, Modules, and Resources directories

Update Swift Package Manager dependencies:
- SDWebImage: 5.21.0 → 5.21.3
- SDWebImageWebPCoder: 0.14.6 → 0.15.0
- swift-log: 1.6.3 → 1.6.4
- Package.resolved format: version 2 → version 3

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
8123770614 Improve fullscreen orientation handling for iOS player
Refactor orientation logic when entering fullscreen to better handle
button-initiated vs gesture-initiated transitions:

- Consolidate orientation determination into a single expression that
  considers whether fullscreen was initiated by button or gesture
- When initiated by button, always use rotateToLandscapeOnEnterFullScreen
  preference
- When initiated by gesture, respect current device orientation if already
  in landscape, otherwise use preference
- Apply .landscape lock only for button-initiated transitions, .all for
  gesture-initiated (when not orientation locked)

This provides more intuitive behavior where button taps rotate to preferred
orientation, while gestures respect current device orientation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
cb2d9729ea Add top padding to playback speed controls
Improve spacing in PlaybackSettings view by adding top padding to the
playback speed section for better visual separation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
f4d4daccd0 Optimize SwiftUI performance throughout the app
This commit addresses multiple SwiftUI performance bottlenecks identified
through code analysis, focusing on view rendering efficiency, list
performance, and memory usage optimization.

Key improvements:

- HomeView: Optimize async task management using structured concurrency
  with async let to handle multiple Defaults updates in a single task

- VideoCell: Remove GeometryReader from VideoCellThumbnail to eliminate
  layout thrashing; change @ObservedObject to computed property for shared
  ThumbnailsModel

- ThumbnailView: Cache URL extension computation in init() instead of
  recalculating on every body evaluation

- FavoriteItemView: Replace filter().prefix() with early-exit loop and
  capacity reservation for significant performance gain on large lists

- ContentItemView: Optimize FetchRequest creation with direct predicate
  construction only for video items, empty predicate for others

- VideoPlayerView: Fix playerSize didSet trigger by moving
  updateSidebarQueue() calls to explicit onChange/onAppear handlers

- FeedView: Replace .unique() with Set-based deduplication for O(n)
  performance and reduced allocations

- VerticalCells: Remove expensive sorting on every redraw; items should
  be pre-sorted from source

These optimizations follow SwiftUI best practices by minimizing expensive
computations in view bodies, caching computed values, using efficient data
structures, and avoiding unnecessary redraws and layout passes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
2d73c57426 Add Liquid Glass effect to player controls bar
Refactor controls bar background styling with platform-specific effects:
- Add Liquid Glass effect for iOS 26+ using new glassEffect API
- Fallback to ultraThinMaterial for iOS 15-25
- Fallback to blurred black overlay for iOS 14 and earlier
- Extract background logic into reusable applyControlsBackground modifier
- Adjust controls bar vertical offset for better alignment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
757b4cb671 Add compact list row styling for iOS channels view
Apply compact row styling to channel list items on iOS to reduce vertical spacing and improve visual density. Uses listRowSpacing(0) on iOS 15+ and custom insets for consistent padding across all iOS versions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
73d9581449 Improve search field layout and responsiveness
SearchTextField improvements:
- Add flexible width constraints (minWidth: 250, maxWidth: .infinity) for macOS
- Restructure iOS layout to use HStack instead of ZStack for better alignment
- Add invisible spacer to maintain consistent width when clear button is hidden
- Adjust padding for more balanced appearance
- Remove fixed width from fieldBorder to support flexible sizing

SearchView improvements:
- Wrap in GeometryReader to calculate available width dynamically
- Add searchFieldWidth() helper to compute optimal search field width
- Account for navigation buttons and internal padding
- Apply dynamic width to both FocusableSearchTextField and SearchTextField

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
62d5a86146 Add debug logging for stream URLs in PlayerBackend
Add logging for video and audio asset URLs during stream filtering to help debug stream selection issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
86e843305f Improve MPV backend audio track handling
Add proper validation and fallback logic for audio track selection in MPV backend:
- Validate audio track index is within bounds before switching
- Handle streams without separate audio tracks (single asset streams)
- Reset selectedAudioTrackIndex if out of bounds
- Add fallback path for streams without audioTracks array

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
5b18c3c114 Add multi-track audio support for Piped backend
Extract and provide all available audio tracks (ORIGINAL, DUBBED, etc.) from Piped API instead of only using the first ORIGINAL track. This allows users to select between different audio languages and track types.

Changes:
- Extract all M4A audio tracks grouped by type and language
- Keep highest bitrate stream for each unique track combination
- Sort tracks with ORIGINAL first, then others alphabetically
- Pass audio tracks array to Stream for player selection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
735fc0cb6c Fix published date handling in Piped API
Clear the published string when a proper publishedAt date is extracted from uploadDate to prevent duplicate or inconsistent date display. Only fallback to string-based published date when no structured date is available.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
874b976da9 Fix Invidious companion API endpoint path
Update companion API endpoint URLs to use /companion/latest_version instead of /latest_version to match the correct API path structure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:34 +01:00
Arkadiusz Fal
de43cc8322 Merge pull request #882 from weblate/weblate-yattee-localizable-strings
Translations update from Hosted Weblate
2025-11-09 18:14:19 +01:00
Willy Anjaya
080af7467e Translated using Weblate (Indonesian)
Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/id/
2025-11-07 13:35:10 +01:00
Jaroslav Kardoš
2d852b38a5 Translated using Weblate (Slovak)
Currently translated at 33.6% (189 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/sk/
2025-11-07 13:35:09 +01:00
Willy Anjaya
f03189e973 Translated using Weblate (Indonesian)
Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/id/
2025-11-07 13:35:08 +01:00
Willy Anjaya
e4e80b021b Added translation using Weblate (Indonesian) 2025-11-07 13:35:08 +01:00
Sander
e10a7cfc41 Translated using Weblate (Dutch)
Currently translated at 80.7% (454 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/nl/
2025-11-07 13:35:07 +01:00
Norcitko
9e0bf59774 Added translation using Weblate (Slovak) 2025-11-07 13:35:06 +01:00
ButterflyOfFire
1a36f1f338 Translated using Weblate (Kabyle)
Currently translated at 17.0% (96 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/kab/
2025-11-07 13:35:06 +01:00
Zipo
a93e0182ca Translated using Weblate (Korean)
Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/ko/
2025-11-07 13:35:05 +01:00
NicoATC
89fba29710 Translated using Weblate (German)
Currently translated at 98.7% (555 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/de/
2025-11-07 13:35:04 +01:00
Josef Müller
d567b1f03e Translated using Weblate (German)
Currently translated at 98.7% (555 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/de/
2025-11-07 13:35:04 +01:00
ButterflyOfFire
7293969604 Translated using Weblate (Kabyle)
Currently translated at 17.0% (96 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/kab/
2025-11-07 13:35:03 +01:00
Ghost of Sparta
b981d34d28 Translated using Weblate (Hungarian)
Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/hu/
2025-11-07 13:35:02 +01:00
Arkadiusz Fal
b2d2ac143b Merge pull request #895 from yattee/actions/bump-build-to-203
Bump build number to 203
2025-11-07 13:34:55 +01:00
github-actions[bot]
e77d5a0a7c Bump build number to 203 2025-11-07 12:33:59 +00:00
Arkadiusz Fal
8655312eeb Merge pull request #894 from treeshateorcs/patch-1
Fix link to SwiftUI documentation in README
2025-11-07 13:32:12 +01:00
tho
3268110913 Fix link to SwiftUI documentation in README
previous link was 404d
2025-11-04 12:37:19 +05:00
Arkadiusz Fal
3449b30117 Merge pull request #891 from yattee/actions/bump-build-to-202
Bump build number to 202
1.5.2-202
2025-09-09 09:38:50 +02:00
github-actions[bot]
d76c82eb65 Bump build number to 202 2025-09-09 07:37:06 +00:00
Arkadiusz Fal
6935866183 Bump tvOS version 1.5.2-201 2025-06-17 16:37:53 +02:00
Arkadiusz Fal
0b253a1c5c Revert "Update dependencies"
Fix build issue with new signet version

This reverts commit 04377cbc1a.
2025-06-17 16:27:39 +02:00
Arkadiusz Fal
8e4b9ea440 Fix bundler cache version 2025-06-17 16:26:24 +02:00
Arkadiusz Fal
b2593c02b9 Bump build number to 201 2025-06-17 16:12:21 +02:00
Arkadiusz Fal
d209602f0e Update CHANGELOG 2025-06-17 16:12:13 +02:00
Arkadiusz Fal
04377cbc1a Update dependencies 2025-06-17 16:09:52 +02:00
Arkadiusz Fal
d4ebee2b44 Merge pull request #877 from weblate/weblate-yattee-localizable-strings
Translations update from Hosted Weblate
2025-06-17 16:04:16 +02:00
Ivan0xFF
8609ef7709 Added caption support for Piped backend (#867)
Co-authored-by: Ivan <ivanferrari@porch.com>
2025-06-17 16:03:18 +02:00
joaooliva
5b291e6e5a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/pt_BR/
2025-06-17 16:02:59 +02:00
Adolfo Jayme Barrientos
3d4b5fc42b Translated using Weblate (Spanish)
Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/es/
2025-06-17 16:02:58 +02:00
Weblate (bot)
06c0eaa920 Translations update from Hosted Weblate (#873)
* Translated using Weblate (Spanish)

Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/es/

* Translated using Weblate (Catalan)

Currently translated at 79.8% (449 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/ca/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/es/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/es/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/pt_BR/

---------

Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Co-authored-by: joaooliva <joaooliva@protonmail.com>
2025-06-17 16:02:56 +02:00
Adolfo Jayme Barrientos
06d315a1e8 Translated using Weblate (Spanish)
Currently translated at 100.0% (562 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/es/
2025-06-17 16:02:56 +02:00
Adolfo Jayme Barrientos
cedeb29c44 Translated using Weblate (Catalan)
Currently translated at 79.8% (449 of 562 strings)

Translation: Yattee/Localizable.strings
Translate-URL: https://hosted.weblate.org/projects/yattee/localizable-strings/ca/
2025-06-17 16:02:55 +02:00