Commit graph

421 commits

Author SHA1 Message Date
ronaldheft
f8836be147
fix: Debug logging level does not persist to disk 2022-09-08 20:09:35 -04:00
ronaldheft
713999eb83
Fix deprecated and early window access warnings 2022-09-08 19:51:35 -04:00
ronaldheft
cc4c9787c0 Rename ABS to Audiobookshelf 2022-09-06 21:56:10 -04:00
ronaldheft
ecc5cf3e1b Rename app to provide better logging 2022-09-06 21:42:12 -04:00
ronaldheft
ba7d2be03e Fix incorrect method call 2022-09-06 21:33:24 -04:00
ronaldheft
368f349c78 Use logging framework for AudioPlayer 2022-09-06 21:32:32 -04:00
ronaldheft
639d641c07 Fix usage of this 2022-09-06 21:32:10 -04:00
ronaldheft
d9313a1654 Use os logging framework, so logs can be retrieved later 2022-09-06 21:26:48 -04:00
advplyr
9821ddabcf iOS version bump 0.9.58-beta 2022-09-03 16:42:14 -05:00
advplyr
57777f2f4b
Merge pull request #362 from ronaldheft/fix-ios-mark-as-read-crash
Fix marking local book as read crashing iOS app
2022-09-03 16:35:50 -05:00
ronaldheft
41753cd853 Fix marking as read crashing app 2022-09-03 17:18:54 -04:00
ronaldheft
d1c1902cd3 Merge branch 'bug-ios-sleep-timer' into ios-audio-events 2022-09-03 16:53:03 -04:00
ronaldheft
b697deac1c Fix cluegy way chapter sleep timer was being reset after skipping past 2022-09-03 16:44:01 -04:00
ronaldheft
fb8e6408bb Fix memory leak 2022-09-03 16:34:31 -04:00
ronaldheft
836ffddd4f Fix race condition with chapter sleep timer 2022-09-02 18:36:57 -04:00
ronaldheft
c8ff5a7817 Handle multi-track files for sleep timer 2022-09-02 18:31:16 -04:00
ronaldheft
c14f6ec4c2 Rewrite sleep timer logic again 2022-09-02 18:22:42 -04:00
ronaldheft
dc8852eb0d Guard against seeking during initialization 2022-09-02 16:52:08 -04:00
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
35631fb211 feat: Handle iOS background downloads 2022-08-30 22:14:59 -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
91dbd73d45 iOS version bump 0.9.57 2022-08-27 17:03:31 -05: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
1411157bde Reindex server configs and fix bad data 2022-08-26 20:20:46 -04: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
advplyr
39250b56c0 Fix:Play local episode from home page playing from server #324, Update:Podcast cover UI for displaying episodes and showing local download indicator 2022-08-21 18:03:27 -05:00
advplyr
d7c414f6c0 Merge 2022-08-21 15:59:44 -05:00
advplyr
b8b2d73eab Sleep timer UI update and min custom time to 1 min 2022-08-21 15:52:06 -05: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
2321312427 Revert "Fixes missing LocalMediaProgress for downloads without existing progress"
This reverts commit 7745ccefab.
2022-08-21 11:34:30 -04:00
ronaldheft
85382d2bb4 Fix incorrect logic for checking if progress object exists 2022-08-21 11:34:23 -04:00
ronaldheft
7745ccefab Fixes missing LocalMediaProgress for downloads without existing progress 2022-08-21 11:25:50 -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
0f8672fb92 Remove Unrealm 2022-08-20 10:11:30 -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
ffd0d4da7d Bump session restoration to 1 second 2022-08-18 18:18:22 -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
1746ed6469 Refactor starting a playback session 2022-08-18 15:57:03 -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
8ce0d9ce56 Fix warnings 2022-08-15 17:00:39 -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
7cc35e4b96 Switch to timer for download task 2022-08-14 16:10:55 -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
72744dcd29 iOS version bump 0.9.56 2022-08-11 19:11:25 -05:00
advplyr
6b374d923b Version bump 0.9.56 2022-08-11 19:08:18 -05: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
65fcc45bc6 Remove todos for file system 2022-08-11 16:45:34 -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
4e63d43679 Fix progress done percent 2022-08-11 15:36:06 -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
02eabb82c1 Hide UI options that iOS does not need / support 2022-08-11 13:16:25 -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
e275aa1699 More improvements to progress status 2022-08-08 20:05:09 -04:00
ronaldheft
e9961f64a9 Handle a documents directory that can change
Thanks iOS
2022-08-08 19:25:59 -04:00
ronaldheft
8e2be4704e Clean up progress logic 2022-08-08 17:21:13 -04:00
ronaldheft
948cd3068a Fix more race conditions with progress reporting 2022-08-08 13:47:37 -04:00
ronaldheft
162eb9afad Fix race condition of reporting finished download 2022-08-08 12:39:55 -04:00
ronaldheft
30ae98c3de Throttle downloads 2022-08-07 21:17:13 -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
849b6303e8 Display downloaded cover on items 2022-08-07 11:59:02 -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
advplyr
9082b76707 Update:Collections table row book count center #306 2022-08-04 18:16:05 -05:00
ronaldheft
33041608f8 Switch to async logic 2022-08-04 18:25:27 -04:00
ronaldheft
528854b285 Bump min ios version to support async 2022-08-04 16:24:41 -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
7d91b95320 iOS version bump 0.9.55 2022-07-28 19:45:23 -05:00
advplyr
beb790ad17 iOS add getAllLocalMediaProgress capacitor func 2022-07-28 19:44:18 -05: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
advplyr
16f6f3b7e9 iOS Realm migration to add new altViewEnabled device setting 2022-07-28 19:14:29 -05:00
advplyr
97e7a12883 Updates to make alt bookshelf view look like the web app 2022-07-27 18:21:10 -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
advplyr
a58965306a Fix misleading plugin function name 2022-07-13 16:44:02 -05: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
f56561b898 Refactor into smaller functions 2022-07-09 15:57:45 -04:00
ronaldheft
a29a7669e1 Add unrealm to use Swift object in db 2022-07-09 15:19:20 -04:00
ronaldheft
29f08a5e5d Fix use of optionals 2022-07-09 15:18: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
advplyr
cb2aaede67 Fix:Socket reconnection on disconnect, Add:Connection indicator icon showing socket/cellular 2022-07-07 17:24:26 -05:00
benonymity
2ca9ce797d feat: iOS download groundwork 2022-07-06 10:09:17 -04:00
advplyr
48313b60c1 iOS version bump 0.9.51 2022-07-04 16:56:04 -05:00
advplyr
3be13025a8 Fix:iOS swipe navigation to close modal 2022-07-04 16:55:34 -05:00
advplyr
b4bb6bf81b Fix:Back button to close modal #267 and back button to minimize fullscreen player #267 2022-07-04 15:42:59 -05:00
advplyr
9be1ee1843 iOS version bump 0.9.50 2022-07-02 18:30:22 -05:00
advplyr
b5c6acc2bc Add:iOS device settings for jump forward/backward 2022-07-02 18:29:41 -05:00
advplyr
910b3a2a17 Version bump 0.9.48-beta 2022-06-05 09:55:22 -05:00
advplyr
158448f8a2 iOS version bump 0.9.47 2022-06-04 16:37:26 -05:00
advplyr
f4be9b3e26 Update:Pass device info with play request 2022-06-04 16:36:49 -05:00
advplyr
58bd0e0cee Add:Click and drag player progress track #110 2022-05-29 18:13:25 -05:00
advplyr
92f069d1e6 iOS version bump 0.9.46 2022-05-22 17:51:35 -05:00
advplyr
5d2da97dc5 Update:Android auto to show libraries and browseable podcasts, Fix:Download podcast set episodes and cover art correctly 2022-05-22 13:40:01 -05:00
advplyr
d626686614 Add start of downloading library item on iOS 2022-05-14 11:50:53 -05:00