Commit Graph

214 Commits

Author SHA1 Message Date
Joe bcc1b6e733
[iOS] Admin Dashboard - Migrate to Own Coordinator/Folder (#1300)
* Migrate all files from UserDashboard to AdminDashboard. Rename accordingly since this is an admin only function. Move all AdminDashboard items from SettingsCoordinator to their own AdminDashboardCoordinator. Move all ViewModels to ONLY live inside of the iOS build since tvOS is

* cleanup

* fix for sub navigation

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-04 14:14:22 -07:00
Joe e0990e321a
[iOS] Admin Dashboard - Users (#1287) 2024-10-31 15:56:00 -06:00
Daniel Chick 9e119017db
Project Settings Changes (#1297)
* Add compiler flag for long type checking warning

* duplicate file references.

* Reduce expression complexity

* Replace deprecated SwiftLint rule

* Bump SwiftFormat version

* Bump Swift version of SwiftLint
2024-10-31 13:18:19 -06:00
Joe 56fa03257e
[iOS] Admin Dashboard - API Keys (#1284)
* API Keys

* Switch Deletion Alert for a Confirmation Dialog

* Migrate from a list to a Collection VGrid.

* Convert back to List. Also, now using my events! So, there is a confirmation and a failure message for both delete & create API.

* want vs wish

* Merge Issue Fixes

* Review Changes

* Reset newAPIName after creating a new API

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-24 20:07:49 -06:00
Joe c46ee13dbc
[iOS] Admin Dashboard - Add/Delete Task Triggers (#1276)
* All Working. TODO: Figure out why TimeInterval crashes Swiftfin if I select 'Cancel'

* Cleanup. Kind of a typeAlias but not really? Fixed the minute crash, I was make a recursive calc. All good now. Make sure temp values default to existing value at startup

* Manual Run action from Edit View

* Issues resolved.

* Labels / soft merge with Main

* Utilize events to print a success/failure message for when there is an attempted change with a TaskTrigger.

* Fix label wrong value & remove TODO for completed item.

* Fix all the merge issues.

* wip

* wip

* localize

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-23 16:30:12 -06:00
Joe a04f97e1ba
[iOS] Admin Dashboard - Device Management (#1277)
* Split out Devices Logic - Ready to go!

* Review Items + Reworking the deleteDevices logic to all use the same deleteDevice core + deleteDevices. Delete All Devices now just uses the more generic deleteDevices

* Allow Filtering on UserID for later usage on UserDetailView.

* Fully remove DeleteAll action in favor of Delete Devices. Change view to pass in the viewModel.devices as a 'Delete All' function

* DeviceDetailsView

* Section Split out, Localization, and cleanup.

* I guess I missed there on first upload.

* Initial Select All / Delete Devices logic. Checkbox options on the list. Hopefully this is good.

* Initial Review Item!

* Custom Device Name is now a field. Change DevicesViewModel to Eventful to capture updates

* Revised Device Interaction Buttons

* Remove unused Label.

* Make DeviceRow mirror UserRow. UpdateDevicesView to have DeleteButton when in EditMode. Also, it's EDITMODE not SELECTMODE... Finally, make sure the SelectedDevice and SelectedDevices are both empty if the user tries to delete themselves and fails. Change how the single device delete works to confirm deleting from an array still works as needed.

* wip

* Review Changes: 61b3716239

* Merge issues + testing again to make sure. Checks out.

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-21 15:10:25 -06:00
Joe 50e0cfef73
[iOS] Admin Dashboard - Active Devices Icons (#1275)
* Add Device images & Reference using the Enum as a filler if the NowPlayingItem is Nil

* Localize DeviceTypes.DisplayTitles

* Review changes. Last potential TODO: Image: ImageResource might not be the correct format

* DeviceType is needed to build tvOS

* Mirror Jellyfin-Blue-Blob for SVG configuration. Use ImageResource for the Device/Client Images

* Merge missing }

* Don't recreate the ImageResource since it's already generated.

* New webOS logo! Fix tvOS not having the new logos

* use if let, implicit self

* use secondary system fill for other

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-15 21:34:38 -06:00
Joe 8ae55dc57b
[iOS] Admin Dashboard - Active Sessions Play Method Fix (#1272)
* Fixes. But is this right?

* Ensure there IS an item playing.

* https://github.com/jellyfin/Swiftfin/pull/1272#discussion_r1801713951

* Fix the missing labels after merging with Main.
2024-10-15 16:04:32 -06:00
Joe 2bda693143
Generic Button to Input from an Alert (#1273)
* Creation of an Alert Input Button based on the Chevron Button.

* Only one button required for both iOS and tvOS

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-15 00:42:42 -06:00
Joe 498842bb84
[tvOS] ListView + Grid Landscape Poster Padding (#1213) 2024-10-12 14:42:51 -06:00
Joe 1405d2695c
Add 'Enable Rewatching' and ' Max days' to Next Up (#1258)
* Rebasing https://github.com/jellyfin/Swiftfin/pull/1212 on Main. Also, less baggage and random crap.

* Change 0 to Disabled. Better mirror iOS and tvOS Alerts for MaxNextUpDays.

* Review Changes:

Don't use the property wrappers in non-view contexts. While they technically can still work, use the subscript instead at the usage sites.
Use the dayInterval(0 ... 1000) format instead, then we don't need maxNextUpDays.

* Remove unused strings, and unused variables

* Add a tvOS TODO to double check the Done/Number button on the alert.
2024-10-07 15:02:18 -06:00
Joe bc9eacab57
[iOS] Admin Dashboard (#1230) 2024-10-04 21:15:12 -06: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
Steve Byatt 58dfddeeca
Update lastSignedInUserID defaults to use new UserSignInState enum (#1209)
* init

* projecgt file

* Update project.pbxproj

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-09-02 01:00:25 -06:00
Ethan Pippin a199d69a31
Some Cleanup (#1216) 2024-08-30 09:05:56 -06:00
Ethan Pippin d85ffb4156
Fix iOS 15 Poster Buttons (#1172) 2024-08-08 10:01:23 -06:00
Joe 4f1907f84c
[tvOS] Fix Indicators Setting Unreachable (#1161)
Co-authored-by: Joseph Kribs <joseph@kribs.net>
2024-08-03 15:45:56 -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 5ee2eac11d
Update tvOS `onChange` (#1141) 2024-07-02 12:39:52 +09:00
Daniel Chick 29b917ead0
Migrate to the latest version of Factory (#1097) 2024-07-01 19:58:59 -06:00
Daniel Chick 3128a78548
Cleanup video player settings (#1084) 2024-06-09 11:32:37 -06:00
Ethan Pippin 095934e34a
tvOS 17 as minimum (#1076) 2024-05-28 16:24:08 +09:00
Ethan Pippin 257091ba9a
Cleanup (#1077) 2024-05-28 16:23:58 +09:00
Ethan Pippin fd4052ed53
Cleanup (#1075) 2024-05-28 10:59:18 +09:00
Joe 25b30b5436
Create Library Alpha Picker (#980) 2024-05-26 15:07:13 -06:00
Ethan Pippin b2a31dbc3a
User Profile Image Selection (#1061) 2024-05-22 13:45:48 +09:00
Ethan Pippin 8d6167c00b
Some More Cleanup, Reset User Settings (#1060) 2024-05-17 13:10:40 +09:00
Ethan Pippin 66c26553ad
Some Polish (#1058) 2024-05-16 07:34:08 -06:00
Ethan Pippin 74b8b286c7
User/Server Sign In Redesign (#1045) 2024-05-14 23:42:41 -06:00
Ethan Pippin 384e80805e
Poster Display and Button Refactor (#1038) 2024-04-23 11:22:07 -06:00
Tony ad8f4bbefd
Fix quick connect (#874) 2024-04-22 22:22:10 -06:00
Ethan Pippin 58190d73fd
tvOS - Remove last CollectionView (#1036) 2024-04-19 07:40:31 -06:00
Ethan Pippin 6f230d9283
Letter Filter (#1024) 2024-04-18 21:59:54 -06:00
Ethan Pippin ec9bfaa2fe
Live TV Updates (#1022) 2024-04-16 23:10:44 -06:00
Ethan Pippin 913dda5fea
Fix `MediaView` Items (#1023) 2024-04-16 22:14:33 -06:00
Julian Hays 4ac0547be8
Fixing Live TV since the refactor (#806) 2024-04-14 22:29:46 -06:00
Ethan Pippin 2387197021
Clean Up Item Scroll Views (#1015) 2024-04-10 07:31:10 -06:00
Ethan Pippin 8a0ef0e48f
Fix Basic Multi Server URL (#1012) 2024-04-02 23:37:45 -06:00
Ethan Pippin 0e21fb0369
Update to Xcode 15.3 (#1014) 2024-04-02 23:10:34 -06:00
Ethan Pippin 437f7a3995
iOS - User Sign In Unmask Password (#1011) 2024-04-02 14:17:25 -06:00
Ethan Pippin 8c9c86713d
Basic SVG Support (#1010) 2024-04-02 08:56:09 -06:00
Ethan Pippin fd1a87cb02
Item Views to `Stateful` (#997) 2024-04-01 00:48:41 -06:00
Ethan Pippin a9a6820982
Fix LiveTV Navigation, fix Media Views, remove CollectionView from iOS (#995) 2024-03-15 09:51:22 -06:00
Ethan Pippin 1bd18ef8b0
Fix iOS Chapter Overlay (#992) 2024-03-13 23:08:43 -06:00
Daniel Chick 876ffba417
Enable Swift Symbol Generation for Assets Catalogs (#955) 2024-03-13 14:37:03 -06:00
Ethan Pippin 3efe899250
Fix Current Key Commands (#991) 2024-03-12 20:26:26 -06:00
Ethan Pippin e28805a5cf
fix (#990) 2024-03-12 07:52:21 -06:00
Ethan Pippin a645444f25
Refactor `PosterButton` and libraries, good `UICollectionView`s, proper orientation handling, and more (#905) 2024-03-11 08:09:30 -06:00
isgallagher 11cc5f56ac
#983 Fixing build instructions (#985) 2024-03-10 19:46:59 -06:00
Daniel Chick 552260e25e
Swiftformat on build (#942) 2024-01-16 23:11:59 -07:00
☃ Elliot Shepherd eb17300061
update LatestInLibraryView to use getLatestMedia (#895) 2023-11-09 19:17:23 -07:00
Ethan Pippin 9266d53ae0
Remove iOS `PosterButtonType` + cleanup (#883) 2023-10-31 23:52:06 -06:00
Daniel Chick 043a95de00
Split VideoPlayerManagers (#875) 2023-10-12 20:27:31 -06:00
Sylvain CECCHETTO 667d48b0e9
Handle app phases (auto pause/play on enter background/active phase) (#831)
There's some leftover stuff like adding the `scenePhase` environment variable but I'll get that sometime.
2023-10-10 20:54:47 -06:00
William Martineau eb99dfe30b
Shuffle play (#816) 2023-09-28 22:37:17 -06:00
Joe 48e608e62b
Filter Toggles [iOS] [iPadOS] (#847)
Co-authored-by: Joe Kribs <joseph@kribs.net>
2023-09-20 13:28:32 -06:00
Ethan Pippin 179a50d74c
Update Dependencies (#833) 2023-09-01 14:28:37 -06:00
Joe Cardenas adde7b20f8
Developer: Fix certain Swiftgen installations (#794) 2023-06-22 19:26:19 -06:00
Ethan Pippin ddbe77e348
Cleanup and `ItemView.AboutView` Cards (#788) 2023-06-12 22:24:58 -06:00
Ethan Pippin 84192c20d6
implement (#777) 2023-05-16 17:31:44 -06:00
Ethan Pippin 2a51598004
Cleanup and UDPBroadcastConnection Package (#765) 2023-05-06 22:07:34 -06:00
Ethan Pippin a08a92e98a
New Year, New Video Player + Other Goodies (#593) 2023-04-20 09:33:51 -06:00
Ethan Pippin f040b2f317
temp fixes (#718) 2023-03-06 22:43:46 -07:00
Ethan Pippin 0c149ba669
Swift 5.7 Base Fixes (#595) 2022-10-10 14:51:22 -06:00
Ethan Pippin 3ffb67a400
Implement Factory (#587) 2022-09-15 11:32:47 -06:00
Ethan Pippin fb38394a43
iOS/iPadOS - User List Images (#586) 2022-09-14 20:44:28 -06:00
Ethan Pippin 20e0789ce2
Generic Libraries (#583) 2022-09-14 06:41:06 -06:00
Ethan Pippin 5299f5a9ce
Various Things (#581) 2022-09-12 23:02:06 -06:00
Ethan Pippin f13d734c76
tvOS - "Fix" Item Views (#568) 2022-09-12 06:44:59 -06:00
Anthony Lavado 49f017d156
Updated build number for v78 (#576) 2022-09-11 21:22:46 -06:00
Anthony Lavado e7f3dd679a Release build for TestFlight 2022-09-10 22:09:59 -04:00
Ethan Pippin 3c81c7532f
tvOS - Refactor Cinematic Item Selector (#564) 2022-09-09 19:11:09 -06:00
Ethan Pippin 859a47803f
tvOS - Revamp Connect Flow (#563) 2022-09-07 23:52:19 -06:00
Ethan Pippin 79476328fe
Some work (#552) 2022-09-03 10:20:12 -06:00
Ethan Pippin f92edb83fb
iOS/iPadOS - Refactor Filter Selection (#548) 2022-09-01 23:29:52 -06:00
Ethan Pippin 109c0328b6
fix (#551) 2022-09-01 22:55:41 -06:00
Ethan Pippin 3b755adf87
iOS/iPadOS - Library List View (#542) 2022-08-29 08:58:38 -06:00
Ethan Pippin d078d71393
Transition Media View (#541) 2022-08-28 22:06:56 -06:00
Ethan Pippin 98a5507b52
Refactor Search and implement in tvOS (#539) 2022-08-27 21:30:17 -06:00
Ethan Pippin 5d0f933a2c
iOS/iPadOS - Transition library views to Collection Views (#536) 2022-08-26 18:23:36 -06:00
Ethan Pippin 8181db13de
iOS/iPadOS - Landscape/Thumb Posters (#526) 2022-08-18 11:00:33 -06:00
Ethan Pippin 6f937ceddd
`ImageView` Refactor (#517) 2022-08-12 12:05:24 -06:00
Ethan Pippin 6a23570d93
iOS/iPadOS Quick Connect (#522) 2022-08-09 11:22:52 -06:00
Ethan Pippin 599cff4c95
Update Nuke and implement BlurHashKit (#516) 2022-08-07 22:27:23 -06:00
Ethan Pippin a9f09edd81
Navigation and Item Overhaul (#492) 2022-08-05 10:54:40 -06:00
Kwangmin Bae 48a03d8462
Support select subtitle font (#498) 2022-07-29 12:47:27 -06:00
Ethan Pippin 88f350b71e
Use homebrew SwiftGen instead of included library (#484) 2022-07-14 20:49:16 -06:00
Ethan Pippin 020e7de119 remove and replace library 2022-07-14 11:54:11 -06:00
Ethan Pippin ae6d054a3b update packages 2022-07-13 21:06:10 -06:00
PangMo5 add9615aa8 Merge branch 'main' into PangMo5/chapters-slider
# Conflicts:
#	Swiftfin.xcodeproj/project.pbxproj
2022-07-13 22:59:12 +09:00
PangMo5 4e8fcd4993 Improve Chapters features of Player 2022-07-13 19:37:16 +09:00
David Ullmer 46cbd4f7d1
Implement suggestions 2022-07-12 19:54:52 +02:00
David Ullmer 51d30cf60a Implement suggestions 2022-07-11 14:42:07 +02:00
David Ullmer e94d2795c7 Merge branch 'main' into known-users 2022-07-11 14:12:08 +02:00
David Ullmer 3d03f840e2
Remove UserLoginCellView from tvOS target 2022-07-10 21:29:57 +02:00
David Ullmer 530bc1c91d
Use external lib 2022-07-10 21:20:12 +02:00
David Ullmer 9250dc650d
Add known users to login screen 2022-07-10 18:10:43 +02:00
Ethan Pippin 8693326d6e
Merge pull request #426 from jhays/jhays/ios-livetv
LiveTV support for iOS
2022-06-15 17:35:16 -06:00
jhays 63be4c05f9 SwiftUICollection still needed in iOS due to import on a shared file. 2022-06-07 21:46:35 -05:00
jhays 54439de06f swap SwiftUICollection package used by tvOS 2022-06-06 16:27:41 -05:00