Commit Graph

32 Commits

Author SHA1 Message Date
Ethan Pippin cfc0105dc7
cleanup (#1484) 2025-04-07 09:08:54 -04:00
Joe Kribs a0a20caf1b
[tvOS] "Native" Styled Menu Button (#1451)
* WIP

* Other Menu inits and AppSettingsView

* Linting & a touch of spacing.

* cleanup

* Init from CaseIterable

* User a Picker instead of just a ForEach

* Remove InlineEnumToggle.

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-03-17 12:22:35 -04:00
Joe Kribs 846aabc868
[tvOS] ErrorViews - Creation (#1414)
* Button cleanup & errorViews

* Change the Sign Out button to be `ListRowButton`. Sets a better height value using `maxHeight` to ensure that it doesn't exceed the `ListRow` sizing.

* deleteUsersButton needs to be manually set back to 75

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-15 15:22:30 -07:00
Daniel Chick f9ebebe6dd
[tvOS] Add pin prompt to sign-in screen (#1383)
* Add pin prompt to sign-in screen

* Bring over security views from iOS

* silence tvOS 17 warnings

* Add user profile and security views to routing

* Changes

* revert and remove commented code

* cleanup

* CodeFactor fixes

* Joe's Suggestions:

- Move UserProfileSettings to their own Coordinator
- Make Views Modal to better reflect existing items
- Fix CustomizeSettingsCoordinator (This is on me!)
- Change PINs to use SecureField
- Move all Settings View to use SplitFormWindowView to mirror existing Settings
- Use user profile image for SplitFormWindowView Icon
- Change Profile Security to use LearnMoreModal
- Use suggestion from https://forums.developer.apple.com/forums/thread/739545
- Tag Alert > TextFields with TODO so we can check this on tvOS 18

* Fix PIN for https://forums.developer.apple.com/forums/thread/739545 on SelectUserView

* Fix Build Issue.

* use user

---------

Co-authored-by: chickdan <=>
Co-authored-by: Joe <jpkribs@outlook.com>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-01-09 15:48:58 -07:00
Joe Kribs adec8de122
[Meta] 2025 Disclaimer (#1381) 2025-01-02 16:05:15 -07:00
Joe f5bd1b8fcd
Customizable Device Profiles (#1169)
* Rename ExperimentalSettingsView.swift to PlaybackQualitySettingsView.swift

Fix Merge

* Rename MaximumBitrateSettingsView.swift to PlaybackQualitySettingsView.swift

fix merge

* Re-implement on Main. Should now have all the Main changed. Added a new change to use the Device Profile as a Transcoding Profile.

* Part 1 -> Making VideoPlayerType into a struct (I Hope) correctly

* Part 1.1 -> Making VideoPlayerType into a struct (I Hope) correctly

* Remove unneeded Files

* Missing file + CustomDeviceProfileSelection -> CustomDeviceProfileAction Rename

* Change + to Appending

* Attempt to add StorageValues+User. Not sure if this is correct?

* Move the Array unwrapping to funcitons. Not required but this should help prevent accidently doing this wrong. Add subtitles back into the custom profiles since that somehow got dropped. Added a PlaybackCompatibility enum. This might need to work for more than just video

* Complete rewrite to allow multiple profiles, compatibility mode, and directplay.

* Hardward -> Hardware

* Update CustomDeviceProfileSettingsView.swift

Double Licensing

* It was actually really easy to implement iOS... Trash cans still look weird and small.

* Swipe to Delete instead of the edit button

* wip

* wip

* Linting

* tvOS Implementation

* wip

* wip

* cleanup

* Create Package.resolved

---------

Co-authored-by: Joseph Kribs <joseph@kribs.net>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-09-02 15:33:02 -06:00
Joe e4fd98c244
[tvOS] Settings Cleanup (#1163)
* Settings Cleanup. Replace strings with labels. Enforce the same font. Ensure Forms don't get clipped by their boundries. Create consistent, reusable button sizing/coloring. Apply to all Settings Pages.

* Remove custom Button/Form styling in exchange for just using .scrollClipDisabled()

* Swap back to Jellyfin Purple from Purple.

* Remove Check Button. Check all Section Inits where possible. Make Server Details Server non-focusable.

Create a new menu for Server Details selection. This is a WIP awaiting feedback from https://github.com/jellyfin/Swiftfin/pull/1163#discussion_r1705957885

---------

Co-authored-by: Joseph Kribs <joseph@kribs.net>
2024-08-06 20:56:24 -06:00
Joe 56bd62db80
App-Wide Bitrate Limit (#1147)
* Creation of bitrate selections that mirror Jellyfin-Web. The goal is to eventually allow for these same selections to be available for usage in the Player itself to set the max bitrate per playback session. This App-Wide setting is for things like preserving data (Mobile) or for areas that have perpetually have low bandwidth (AppleTV). These settings currently default to 'Auto' which is the current limit of 360,000,000 bps / 360 mpbs. I have added a spot in BaseItemDTO+VideoPlayerViewModel to get the smaller amount between 360 Mpbs and the App Maximum Setting. This exists so I can go back and update this to get the Minumum between the Player Session max bitrate and the App Setting max bitrate.

Test on iPhone 10S, AppleTV 3rd Gen, and the iPhone 15 Pro via enumulator.

* Fix Bitrate naming (360p vs 480p) and remove the setting nested in a second section.

* Creation of a Maximum setting with 360mbps and an auto that gets the bitrate at playback.

* Remove comments for code where I want to eventually put it for better clarify

* Linting fixes

* Change the Playback Bitrate to an Int from a String since the Bitrate is valuable but the string isn't. Run the SwiftFormat on the maxBitrate function.

* Migrate the settings to their own menu with both the bitrate and the optional test size when auto is used.

* Creation of an enum filterValues function for Bitrate. This way, the selection on the Player Overlay (eventually) can be filtered to only include bitrates that are less than or equal to the App Setting for Maximum Bitrate. This should help prevent confusion / remove bandwidth conflicts.

The eventual Player Overlay setting should never conflict with the App-Wide Setting and should only offer options that are less than the App-Wide Setting.

* Change the videoPlayerViewModel to take parameters instead of defaults. Move the defaults up one level to be called there. Split the bitrate test from the getMaxBitrate to better guard against dividing against 0 and also split out the logic to be easier to read.

Change the PlaybackBitrate filter to always include Auto and, when auto, include ALL bitrates. This filter is not currently used.

* Remove the PlaybackBitrate FilterValues since this is not needed and will be created ad-hoc.

* Update the bitrateTestDuration verbage to better reflect that you're changing the size of the bitrate test and not just increasing the duration. Re-use the existing largest to smallest labels since there isn't a ton of benefit using "Longest to Shortest" so this should re-use existing localization. Comment the Labels.

No functional changes. Only an update to labels.

* Delete the Bitrate.json file but retain the Resources folder.

* Remove Resource Folder.

---------

Co-authored-by: Joe Kribs <joseph@kribs.net>
2024-07-23 06:18:28 -05:00
Ethan Pippin 8d6167c00b
Some More Cleanup, Reset User Settings (#1060) 2024-05-17 13:10:40 +09:00
Ethan Pippin 74b8b286c7
User/Server Sign In Redesign (#1045) 2024-05-14 23:42:41 -06:00
Daniel Chick 876ffba417
Enable Swift Symbol Generation for Assets Catalogs (#955) 2024-03-13 14:37:03 -06:00
Ethan Pippin b038f05848
Update 2024 headers (#951)
* update header

* the rest after upgrading
2024-01-13 15:13:44 -07:00
Ethan Pippin a08a92e98a
New Year, New Video Player + Other Goodies (#593) 2023-04-20 09:33:51 -06:00
Ethan Pippin fb38394a43
iOS/iPadOS - User List Images (#586) 2022-09-14 20:44:28 -06:00
Ethan Pippin f92edb83fb
iOS/iPadOS - Refactor Filter Selection (#548) 2022-09-01 23:29:52 -06:00
Ethan Pippin 8181db13de
iOS/iPadOS - Landscape/Thumb Posters (#526) 2022-08-18 11:00:33 -06:00
Ethan Pippin a9f09edd81
Navigation and Item Overhaul (#492) 2022-08-05 10:54:40 -06:00
Ethan Pippin cfb3aa1faa
No Tab Characters and Before First for Argument and Parameter Wrapping (#482) 2022-07-16 07:46:25 -06:00
Ethan Pippin e51f4acc72 localize 2022-01-20 23:04:15 -07:00
Ethan Pippin e1763390cc tvOS version in basic app settings 2022-01-20 22:57:40 -07:00
Ethan Pippin 1a7bef0579 lint 2022-01-20 22:47:43 -07:00
Ethan Pippin efa69984ac implement about view iOS and version tvOS 2022-01-20 22:47:33 -07:00
Ethan Pippin 5b9521caaa begin moving things to customize settings 2022-01-13 23:26:06 -07:00
Ethan Pippin 143836a26c tvOS, fix seasons defaults, and localize 2022-01-11 23:21:03 -07:00
Ethan Pippin f02c52f20a lint 2022-01-10 15:51:24 -07:00
Ethan Pippin 057beca0ff localize 2022-01-10 15:48:29 -07:00
Ethan Pippin e12da2cf07 format merge 2022-01-10 13:34:03 -07:00
Ethan Pippin 071d07d5ff Merge branch 'main' into swiftformat-third-times-the-charm 2022-01-10 13:31:04 -07:00
Ethan Pippin 4298062ca3 swiftformat 2022-01-10 12:28:03 -07:00
koen a94ddd1d36 Added subtitle sizes in tvOS 2022-01-10 17:46:25 +01:00
Ethan Pippin d832b2b8c4 Merge branch 'main' into update-project-names 2022-01-07 11:10:20 -07:00
Ethan Pippin 73a3f2fcdc rename jellyfinplayer to swiftfin 2022-01-07 11:05:54 -07:00