Commit graph

266 commits

Author SHA1 Message Date
ronaldheft
586405f9de Rewrite sleep timer 2022-09-02 16:31:47 -04:00
ronaldheft
c02adfa326 Fix typo in if statement 2022-09-01 18:41:21 -04:00
ronaldheft
021d63d973 Fix seek jumping 2022-09-01 18:19:45 -04:00
ronaldheft
50f6b15d23 Refactor to ensure we aren't missing any update time 2022-09-01 17:40:49 -04:00
ronaldheft
6257c6488b Fix race condition with the player queue 2022-09-01 17:34:54 -04:00
ronaldheft
82159ee537 feat: Handle route change notifications 2022-08-30 22:59:59 -04:00
ronaldheft
11f22888d5 feat: Handle resuming iOS audio after pause 2022-08-30 22:47:55 -04:00
ronaldheft
20d932877e fix: Only mark audio session as active when playing 2022-08-30 22:33:55 -04:00
ronaldheft
b583a8e6e2 Handle iOS crashes when no session 2022-08-30 17:05:06 -04:00
ronaldheft
9ee1203130 Fix multi-track currentTime value 2022-08-29 21:16:51 -04:00
ronaldheft
711b079963 Fix: Extra timeListening when player initializes 2022-08-29 20:39:55 -04:00
advplyr
fb03c8e67f
Merge pull request #335 from ronaldheft/ios-respect-skip-settings
Fix: Skip preferences not respected for iOS remote control
2022-08-27 14:23:25 -05:00
advplyr
75979960ab
Merge pull request #330 from ronaldheft/bug-ios-background-currenttime
Improve iOS Player Sync Logic
2022-08-27 14:22:56 -05:00
ronaldheft
eb7289c150 Fix the incorrect server config being persisted 2022-08-26 20:20:26 -04:00
ronaldheft
c1f803bdd0 Fix configs sharing an index 2022-08-26 20:04:06 -04:00
ronaldheft
ba1efedd79 Show currentTime in console 2022-08-26 19:48:54 -04:00
ronaldheft
ac10997ed7 Fix: Skip preferences not respected for iOS remote control 2022-08-26 19:34:34 -04:00
ronaldheft
3c6f29bf3a Fix time observer crashing when already on main thread 2022-08-26 19:11:55 -04:00
ronaldheft
66ab402a50 Fix failed playback session on initAudioSession 2022-08-26 18:58:08 -04:00
ronaldheft
2076b93e19 Fix edge case when seeking past chapter 2022-08-26 18:35:47 -04:00
ronaldheft
eb7a241e94 Fix sleep timer chapter locking 2022-08-25 19:03:05 -04:00
ronaldheft
f5d1e992ef Fix edge case where incorrect progress was tracked 2022-08-25 18:46:13 -04:00
ronaldheft
aed2c31f5a Use persisted session to inform seek back 2022-08-25 18:43:57 -04:00
ronaldheft
3e31e72734 Configure time observer on the main queue 2022-08-25 18:31:09 -04:00
ronaldheft
7cf36d829a Fix progress updating issues 2022-08-25 18:28:17 -04:00
ronaldheft
268cf67576 Fix lost sleep time on play/pause 2022-08-25 17:39:06 -04:00
ronaldheft
5c76158729 Fix holding onto frozen Realm reference 2022-08-25 16:55:35 -04:00
ronaldheft
8c87b31e56 Improved error handling 2022-08-25 15:42:37 -04:00
ronaldheft
01678f2c91 Remove DispatchQueue as that did not fix Realm crashes 2022-08-24 19:57:39 -04:00
ronaldheft
b5e33b1707 Fix thread-safety with transaction on local media progress 2022-08-24 19:33:10 -04:00
ronaldheft
46623d70a3 Realm modifications should occur on concurrent queue 2022-08-23 22:37:28 -04:00
ronaldheft
452b25057e Use the same Realm instead for updates of LocalMediaProgress 2022-08-23 22:07:07 -04:00
ronaldheft
67a6aec132 Move AudioPlayer tasks off the main queue 2022-08-23 22:06:41 -04:00
ronaldheft
10ddc1c911 Fix server config not factored in determining active session 2022-08-23 18:56:08 -04:00
ronaldheft
2a2ebefeb9 Fix thread safety issues 2022-08-23 18:51:30 -04:00
ronaldheft
d5f39e5cb1 Fix async call not waiting for results 2022-08-23 18:22:11 -04:00
ronaldheft
099be648bf Fix server not sending updates every 10 seconds 2022-08-23 17:32:43 -04:00
ronaldheft
6a885b7241 Fix session time using milliseconds instead of seconds 2022-08-23 17:13:43 -04:00
ronaldheft
15cdff5aa2 Fix typo in comment 2022-08-22 20:36:15 -04:00
ronaldheft
94e261d7bf Fix bad data being encoded 2022-08-22 18:12:07 -04:00
ronaldheft
06f87d24a7 Fix merge conflict 2022-08-22 18:12:00 -04:00
ronaldheft
cdd2f40ef9 Merge branch 'master' into bug-ios-background-currenttime 2022-08-22 18:04:02 -04:00
ronaldheft
2448b461f0 Re-implement the paused timer 2022-08-22 18:00:37 -04:00
ronaldheft
fe042f3f83 Fix NaN causing bad data 2022-08-22 17:27:55 -04:00
ronaldheft
d084958f2d Scale time reporting by the rate 2022-08-22 17:15:20 -04:00
ronaldheft
ccecba7a19 If adjusting sleep time from chapter, convert to regular sleep timer 2022-08-22 17:11:34 -04:00
ronaldheft
d57fe44bcc Sleep timer using native time observer 2022-08-22 17:04:48 -04:00
ronaldheft
8952cbfd20 Start of refactor 2022-08-21 12:36:29 -04:00
advplyr
a576eff700
Merge pull request #327 from ronaldheft/bug-ios-playback-on-session-resume
Fix playback session starting sometimes on app launch
2022-08-21 11:15:23 -05:00
ronaldheft
27d2ed2304 Convert PlayerHandler to shared instance 2022-08-21 12:06:37 -04:00
ronaldheft
85382d2bb4 Fix incorrect logic for checking if progress object exists 2022-08-21 11:34:23 -04:00
ronaldheft
872931f507 Guard against player actions before player is initialized 2022-08-21 11:05:16 -04:00
ronaldheft
f335d8735f Fix progress sync not updating playback object 2022-08-21 10:59:43 -04:00
ronaldheft
fca0fd7bbb Remove dead code 2022-08-20 10:28:39 -04:00
ronaldheft
a461ed43de Finish cleaning up some refactors 2022-08-20 10:15:45 -04:00
ronaldheft
972fbd42ee Refactor and clean up sync logic 2022-08-19 23:00:40 -04:00
ronaldheft
062a217946 Fix more edge cases on player initialization 2022-08-19 22:15:06 -04:00
ronaldheft
a59f3bb957 Fix player reporting currentTime=0 2022-08-19 21:20:53 -04:00
ronaldheft
93cb27d324 Fix player session restoration events 2022-08-19 16:36:56 -04:00
ronaldheft
bf46c46fc0 Fix race conditions on first launch 2022-08-18 19:31:32 -04:00
ronaldheft
af835f2c43 Persist playback settings 2022-08-18 19:01:10 -04:00
ronaldheft
e9226671c9 Fix updatedAt not updating 2022-08-18 17:38:01 -04:00
ronaldheft
5fd3f3c080 Sync player session with server media progress 2022-08-18 17:08:41 -04:00
ronaldheft
519969eee0 Restore playback session on startup 2022-08-18 16:20:28 -04:00
ronaldheft
2912d442b5 Clean up progress syncing in PlayerHandler 2022-08-18 15:56:25 -04:00
ronaldheft
a82474cf45 Fix server media progress JSON decoding 2022-08-18 15:55:50 -04:00
ronaldheft
add64249cd Times in milliseconds 2022-08-17 20:42:53 -04:00
ronaldheft
d3172ece9b Fix missing metadata 2022-08-17 20:42:45 -04:00
ronaldheft
f655f89c49 Fix missing fields in PlaybackSession 2022-08-17 19:43:11 -04:00
ronaldheft
911e46c4f0 Fix crash when offline 2022-08-16 21:57:34 -04:00
ronaldheft
ec4647e2bc Handle server success 2022-08-16 21:36:09 -04:00
ronaldheft
10f2da9e90 Fix progress syncing 2022-08-16 21:14:33 -04:00
ronaldheft
6aa0f2253b Sync offline playback progress 2022-08-16 20:45:29 -04:00
ronaldheft
7c5ee940d3 Merge branch 'master' into ios-downloads 2022-08-16 16:56:47 -04:00
ronaldheft
d83e04c47b Refactor storage model to work with native Realm 2022-08-16 16:53:47 -04:00
ronaldheft
b0905d0270 Fix crashes related to Realm threading 2022-08-16 12:32:22 -04:00
ronaldheft
ac2a1ce079 Provide DAO methods for Realm objects 2022-08-15 17:00:22 -04:00
ronaldheft
5d31499fd6 Fix the downloader for using Realm native 2022-08-14 22:20:24 -04:00
ronaldheft
4c8217edf6 Fix merge conflict errors 2022-08-14 18:22:50 -04:00
ronaldheft
934a07a5ad Merge branch 'ios-downloads' into ios-downloads-realm-native 2022-08-14 17:48:31 -04:00
ronaldheft
7aae1edf3c Fix incorrect downloadUrl 2022-08-14 16:11:22 -04:00
ronaldheft
1f8a8d1ce5 Make timer easier to start for the future 2022-08-13 12:56:02 -04:00
ronaldheft
e0e2f02e0b Fix all kinds of syncing errors 2022-08-13 12:41:20 -04:00
ronaldheft
c029e519e9 Sync local progress to front-end 2022-08-13 10:28:28 -04:00
ronaldheft
ef661bba37 Sync local progress with server progress 2022-08-12 23:11:09 -04:00
ronaldheft
8d38f3358e API functions to sync local progress 2022-08-12 21:58:54 -04:00
ronaldheft
f4e39ec7ca Functions to update local progress 2022-08-11 20:38:51 -04:00
advplyr
03a47b06ee Fix:iOS sleep timer chapter end #291 2022-08-11 18:49:04 -05:00
ronaldheft
c32c77b963 Fix player display on local media 2022-08-11 18:34:59 -04:00
ronaldheft
9477860bca Working local file playback 2022-08-11 18:29:55 -04:00
ronaldheft
64707b0928 Support local media progress 2022-08-11 16:26:32 -04:00
ronaldheft
a107a25e43 Fix downloading in progress books 2022-08-11 16:11:53 -04:00
ronaldheft
0a989e7811 Handle deleting podcast episodes 2022-08-11 15:36:25 -04:00
ronaldheft
60cb5f398c Handle deleting library items 2022-08-11 14:12:45 -04:00
ronaldheft
8edeefc1cd Prevent iCloud backups of downloads 2022-08-11 13:46:30 -04:00
ronaldheft
999d434fe9 Fix download item not clearing for podcasts 2022-08-11 12:58:47 -04:00
ronaldheft
2b07c81e54 Use book/podcast helper 2022-08-11 12:32:58 -04:00
ronaldheft
5f4ff38035 Support downloading new podcast episodes 2022-08-11 12:30:45 -04:00
ronaldheft
599a8e23cb Fix podcast episode downloading 2022-08-11 11:20:17 -04:00
ronaldheft
7d730dcafb Fix optionals 2022-08-10 22:56:42 -04:00
ronaldheft
446e54cb91 Fix data model issues 2022-08-10 22:17:12 -04:00
ronaldheft
a9d7fbc083 Convert objects to realm-native 2022-08-10 17:09:49 -04:00
ronaldheft
a3e458fcc4 Make server config thread-safe 2022-08-10 17:08:19 -04:00
ronaldheft
e9961f64a9 Handle a documents directory that can change
Thanks iOS
2022-08-08 19:25:59 -04:00
ronaldheft
948cd3068a Fix more race conditions with progress reporting 2022-08-08 13:47:37 -04:00
ronaldheft
b1b10e846d Somewhat working progress under heavy load 2022-08-07 21:02:25 -04:00
ronaldheft
ad802c16ea Remove blocking realmQueue 2022-08-07 17:46:13 -04:00
ronaldheft
5b7fcca800 Support downloading covers and podcast episodes 2022-08-07 11:23:50 -04:00
ronaldheft
b549528e23 Handle download complete lifecycle 2022-08-07 10:27:08 -04:00
ronaldheft
5495bcb945 Starting logic for handling completed downloads 2022-08-06 21:32:04 -04:00
ronaldheft
7fded5e105 Cleanup progress handling 2022-08-06 21:12:21 -04:00
ronaldheft
dc8bc2fccd Clean up progress logic 2022-08-06 18:31:59 -04:00
ronaldheft
af2c609405 Report download progress to the UI 2022-08-06 18:21:11 -04:00
ronaldheft
d5d65e244b Rewrite downloader to use delegate and download item 2022-08-06 10:11:46 -04:00
ronaldheft
33041608f8 Switch to async logic 2022-08-04 18:25:27 -04:00
ronaldheft
e02edb9f9e Fix field collision 2022-08-02 21:05:28 -04:00
ronaldheft
37fa931672 Don't save in database until download is complete 2022-08-02 17:32:40 -04:00
ronaldheft
a7424cc428 Fix persisting active config 2022-08-02 17:10:45 -04:00
ronaldheft
f6c43e479d Rewrite of object model to use Unrealm
This addresses issues with JSON serialization
2022-08-01 09:40:28 -04:00
ronaldheft
0b46a9c9b1 Begin handling playback of local media 2022-07-31 13:33:36 -04:00
ronaldheft
76de92fe1f Fix id typos 2022-07-30 18:40:30 -04:00
ronaldheft
32550a75ec Return local items on DB lookup 2022-07-30 18:25:20 -04:00
ronaldheft
9eca03cfd7 Configure more local file data 2022-07-30 17:21:50 -04:00
ronaldheft
fec1ec554b feat: Populate LocalFile with real info 2022-07-30 16:22:41 -04:00
ronaldheft
db7a8cef77 Merge branch 'master' into ios-downloads 2022-07-30 15:16:58 -04:00
advplyr
073110376a Fix:iOS sending multiple sync requests at the same time, Update:iOS sync every 5s 2022-07-28 19:30:18 -05:00
Sam Bloomingdale
d52c326123 add 'Alternative Bookshelf View' setting 2022-07-27 12:58:06 -05:00
ronaldheft
2ab9dbc72d Set encoder and init methods 2022-07-17 21:50:19 -04:00
ronaldheft
52d0890032 Refactor to use extensions for objects 2022-07-16 21:46:49 -04:00
ronaldheft
b7725c455b Prototype response to app 2022-07-16 20:25:04 -04:00
ronaldheft
175e642081 First pass at attempting to save library items 2022-07-09 18:37:32 -04:00
ronaldheft
e620f53705 Get something saving in the database 2022-07-09 17:35:59 -04:00
ronaldheft
f40da562a6 Fix missing braces 2022-07-09 15:18:45 -04:00
ronaldheft
affcdea09b Fix class name collisions 2022-07-09 15:18:34 -04:00
ronaldheft
16ca7460f4 Convert back to Swift objects 2022-07-09 15:18:15 -04:00
benonymity
2ca9ce797d feat: iOS download groundwork 2022-07-06 10:09:17 -04:00
advplyr
b5c6acc2bc Add:iOS device settings for jump forward/backward 2022-07-02 18:29:41 -05:00
advplyr
f4be9b3e26 Update:Pass device info with play request 2022-06-04 16:36:49 -05:00
advplyr
d626686614 Add start of downloading library item on iOS 2022-05-14 11:50:53 -05:00
advplyr
736e57fafd Add:Fallback to transcode when direct play fails, and send playback failed event to client 2022-05-06 18:17:45 -05:00
Rasmus Krämer
0708133779
Fixed crash 2022-05-03 15:01:30 +02:00
Rasmus Krämer
ac71d39265
Merge branch 'master' of https://github.com/advplyr/audiobookshelf-app into advplyr-master 2022-05-03 14:41:46 +02:00
Rasmus Krämer
4203654ec8
Added sleep timer 2022-05-03 14:32:46 +02:00
Rasmus Krämer
9701c767b2
Small improvements 2022-05-03 12:55:13 +02:00
advplyr
a3aac4da75 Update: iOS AudioPlayer direct play with multi-track using AVQueuePlayer 2022-05-01 12:19:31 -05:00
Rasmus Krämer
394363c8cb
Send report when playback ends 2022-04-30 10:58:08 +02:00
advplyr
e03f878865 iOS fix: Logging out when player is open crashing because server config is nil, added nil check in Api requests 2022-04-28 18:05:33 -05:00
benonymity
81ca757c77 Book-Podcast combination, optional fixes 2022-04-25 00:15:44 -04:00
Ben
7189588c2b
Merge branch 'advplyr:master' into DataClasses 2022-04-24 22:47:48 -04:00
advplyr
729e959506 iOS fix crash when playing item if player is already open, persist playback rate between playbacks, version bump 0.9.42 2022-04-23 15:40:18 -05:00