diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index 9f65ad17..bdd5e63b 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -15,20 +15,17 @@ 3ABF580928059BAE005DFBE5 /* PlaybackSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ABF580828059BAE005DFBE5 /* PlaybackSession.swift */; }; 3ABF618F2804325C0070250E /* PlayerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ABF618E2804325C0070250E /* PlayerHandler.swift */; }; 3AD4FCE528043E50006DB301 /* AbsDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AD4FCE428043E50006DB301 /* AbsDatabase.swift */; }; - 3AD4FCE728043E72006DB301 /* AbsDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AD4FCE628043E72006DB301 /* AbsDatabase.m */; }; 3AD4FCE928043FD7006DB301 /* ServerConnectionConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AD4FCE828043FD7006DB301 /* ServerConnectionConfig.swift */; }; 3AD4FCEB280443DD006DB301 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AD4FCEA280443DD006DB301 /* Database.swift */; }; 3AD4FCED28044E6C006DB301 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AD4FCEC28044E6C006DB301 /* Store.swift */; }; 3AF1970C2806E2590096F747 /* ApiClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AF1970B2806E2590096F747 /* ApiClient.swift */; }; 3AF1970E2806E3CA0096F747 /* AbsAudioPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AF1970D2806E3CA0096F747 /* AbsAudioPlayer.swift */; }; - 3AF197102806E3DC0096F747 /* AbsAudioPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AF1970F2806E3DC0096F747 /* AbsAudioPlayer.m */; }; 3AFCB5E827EA240D00ECCC05 /* NowPlayingInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AFCB5E727EA240D00ECCC05 /* NowPlayingInfo.swift */; }; - 4D66B952282EE822008272D4 /* AbsDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D66B951282EE822008272D4 /* AbsDownloader.m */; }; 4D66B954282EE87C008272D4 /* AbsDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D66B953282EE87C008272D4 /* AbsDownloader.swift */; }; - 4D66B956282EE951008272D4 /* AbsFileSystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D66B955282EE951008272D4 /* AbsFileSystem.m */; }; 4D66B958282EEA14008272D4 /* AbsFileSystem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D66B957282EEA14008272D4 /* AbsFileSystem.swift */; }; 4D91EEC62A40F28D004807ED /* EBookFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D91EEC52A40F28D004807ED /* EBookFile.swift */; }; 4DABC04F2B0139CA000F6264 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DABC04E2B0139CA000F6264 /* User.swift */; }; + 4DF6C7172DB58ABF004059F1 /* AbsLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF6C7162DB58ABF004059F1 /* AbsLogger.swift */; }; 4DF74912287105C600AC7814 /* DeviceSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF74911287105C600AC7814 /* DeviceSettings.swift */; }; 4DFE2DA32D345C390000B204 /* MyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DFE2DA22D345C390000B204 /* MyViewController.swift */; }; 50379B232058CBB4000EE86E /* capacitor.config.json in Resources */ = {isa = PBXBuildFile; fileRef = 50379B222058CBB4000EE86E /* capacitor.config.json */; }; @@ -90,21 +87,18 @@ 3ABF580828059BAE005DFBE5 /* PlaybackSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackSession.swift; sourceTree = ""; }; 3ABF618E2804325C0070250E /* PlayerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerHandler.swift; sourceTree = ""; }; 3AD4FCE428043E50006DB301 /* AbsDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbsDatabase.swift; sourceTree = ""; }; - 3AD4FCE628043E72006DB301 /* AbsDatabase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AbsDatabase.m; sourceTree = ""; }; 3AD4FCE828043FD7006DB301 /* ServerConnectionConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerConnectionConfig.swift; sourceTree = ""; }; 3AD4FCEA280443DD006DB301 /* Database.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = ""; }; 3AD4FCEC28044E6C006DB301 /* Store.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Store.swift; sourceTree = ""; }; 3AF1970B2806E2590096F747 /* ApiClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApiClient.swift; sourceTree = ""; }; 3AF1970D2806E3CA0096F747 /* AbsAudioPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbsAudioPlayer.swift; sourceTree = ""; }; - 3AF1970F2806E3DC0096F747 /* AbsAudioPlayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AbsAudioPlayer.m; sourceTree = ""; }; 3AFCB5E727EA240D00ECCC05 /* NowPlayingInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NowPlayingInfo.swift; sourceTree = ""; }; - 4D66B951282EE822008272D4 /* AbsDownloader.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AbsDownloader.m; sourceTree = ""; }; 4D66B953282EE87C008272D4 /* AbsDownloader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbsDownloader.swift; sourceTree = ""; }; - 4D66B955282EE951008272D4 /* AbsFileSystem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AbsFileSystem.m; sourceTree = ""; }; 4D66B957282EEA14008272D4 /* AbsFileSystem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbsFileSystem.swift; sourceTree = ""; }; 4D8D412C26E187E400BA5F0D /* App-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "App-Bridging-Header.h"; sourceTree = ""; }; 4D91EEC52A40F28D004807ED /* EBookFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EBookFile.swift; sourceTree = ""; }; 4DABC04E2B0139CA000F6264 /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; + 4DF6C7162DB58ABF004059F1 /* AbsLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AbsLogger.swift; sourceTree = ""; }; 4DF74911287105C600AC7814 /* DeviceSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceSettings.swift; sourceTree = ""; }; 4DFE2DA22D345C390000B204 /* MyViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyViewController.swift; sourceTree = ""; }; 50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = ""; }; @@ -217,13 +211,10 @@ isa = PBXGroup; children = ( 3AD4FCE428043E50006DB301 /* AbsDatabase.swift */, - 3AD4FCE628043E72006DB301 /* AbsDatabase.m */, 3AF1970D2806E3CA0096F747 /* AbsAudioPlayer.swift */, - 3AF1970F2806E3DC0096F747 /* AbsAudioPlayer.m */, - 4D66B951282EE822008272D4 /* AbsDownloader.m */, 4D66B953282EE87C008272D4 /* AbsDownloader.swift */, - 4D66B955282EE951008272D4 /* AbsFileSystem.m */, 4D66B957282EEA14008272D4 /* AbsFileSystem.swift */, + 4DF6C7162DB58ABF004059F1 /* AbsLogger.swift */, ); path = plugins; sourceTree = ""; @@ -531,7 +522,6 @@ files = ( E9D5507328AC218300C746DD /* DaoExtensions.swift in Sources */, E9D5506228AC1CC900C746DD /* PlayerState.swift in Sources */, - 3AD4FCE728043E72006DB301 /* AbsDatabase.m in Sources */, 504EC3081FED79650016851F /* AppDelegate.swift in Sources */, EACB38122BCCA1330060DA4A /* AudioPlayerRateManager.swift in Sources */, E9FA07E328C82848005520B0 /* Logger.swift in Sources */, @@ -545,6 +535,7 @@ 4D66B958282EEA14008272D4 /* AbsFileSystem.swift in Sources */, E9D5504C28AC1AE000C746DD /* PodcastEpisode.swift in Sources */, E9D5506A28AC1DF100C746DD /* LocalFile.swift in Sources */, + 4DF6C7172DB58ABF004059F1 /* AbsLogger.swift in Sources */, 3AF1970E2806E3CA0096F747 /* AbsAudioPlayer.swift in Sources */, E9D5506F28AC1E8E00C746DD /* DownloadItem.swift in Sources */, 3AD4FCE928043FD7006DB301 /* ServerConnectionConfig.swift in Sources */, @@ -553,7 +544,6 @@ 3A200C1527D64D7E00CBF02E /* AudioPlayer.swift in Sources */, 4DFE2DA32D345C390000B204 /* MyViewController.swift in Sources */, E9D5507128AC1EC700C746DD /* DownloadItemPart.swift in Sources */, - 4D66B956282EE951008272D4 /* AbsFileSystem.m in Sources */, EACB38142BCCA1410060DA4A /* LegacyAudioPlayerRateManager.swift in Sources */, 3AFCB5E827EA240D00ECCC05 /* NowPlayingInfo.swift in Sources */, 3AB34053280829BF0039308B /* Extensions.swift in Sources */, @@ -561,7 +551,6 @@ 3AD4FCEB280443DD006DB301 /* Database.swift in Sources */, 3AD4FCE528043E50006DB301 /* AbsDatabase.swift in Sources */, 4DABC04F2B0139CA000F6264 /* User.swift in Sources */, - 4D66B952282EE822008272D4 /* AbsDownloader.m in Sources */, E9D5506828AC1DC300C746DD /* LocalPodcastEpisode.swift in Sources */, EACB38162BCCA1500060DA4A /* DefaultedAudioPlayerRateManager.swift in Sources */, E9D5505228AC1B5D00C746DD /* Chapter.swift in Sources */, @@ -574,7 +563,6 @@ E9D5505C28AC1C6200C746DD /* LibraryFile.swift in Sources */, 4DF74912287105C600AC7814 /* DeviceSettings.swift in Sources */, E9D5504A28AC1AA600C746DD /* Metadata.swift in Sources */, - 3AF197102806E3DC0096F747 /* AbsAudioPlayer.m in Sources */, E9D5507528AEF93100C746DD /* PlayerSettings.swift in Sources */, E9D5505028AC1B3E00C746DD /* Author.swift in Sources */, 3AF1970C2806E2590096F747 /* ApiClient.swift in Sources */, diff --git a/ios/App/App/MyViewController.swift b/ios/App/App/MyViewController.swift index e606a93d..486792e1 100644 --- a/ios/App/App/MyViewController.swift +++ b/ios/App/App/MyViewController.swift @@ -21,6 +21,7 @@ class MyViewController: CAPBridgeViewController { bridge?.registerPluginInstance(AbsAudioPlayer()) bridge?.registerPluginInstance(AbsDownloader()) bridge?.registerPluginInstance(AbsFileSystem()) + bridge?.registerPluginInstance(AbsLogger()) } diff --git a/ios/App/App/plugins/AbsAudioPlayer.m b/ios/App/App/plugins/AbsAudioPlayer.m deleted file mode 100644 index 8170d059..00000000 --- a/ios/App/App/plugins/AbsAudioPlayer.m +++ /dev/null @@ -1,35 +0,0 @@ -// -// AbsAudioPlayer.m -// App -// -// Created by Rasmus Krämer on 13.04.22. -// - -#import -#import - -CAP_PLUGIN(AbsAudioPlayer, "AbsAudioPlayer", - CAP_PLUGIN_METHOD(onReady, CAPPluginReturnNone); - - CAP_PLUGIN_METHOD(prepareLibraryItem, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(closePlayback, CAPPluginReturnPromise); - - CAP_PLUGIN_METHOD(setPlaybackSpeed, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(setChapterTrack, CAPPluginReturnPromise); - - CAP_PLUGIN_METHOD(playPlayer, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(pausePlayer, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(playPause, CAPPluginReturnPromise); - - CAP_PLUGIN_METHOD(seek, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(seekForward, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(seekBackward, CAPPluginReturnPromise); - - CAP_PLUGIN_METHOD(getCurrentTime, CAPPluginReturnPromise); - - CAP_PLUGIN_METHOD(cancelSleepTimer, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(decreaseSleepTime, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(increaseSleepTime, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getSleepTimerTime, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(setSleepTimer, CAPPluginReturnPromise); - ) diff --git a/ios/App/App/plugins/AbsAudioPlayer.swift b/ios/App/App/plugins/AbsAudioPlayer.swift index c35a6ce0..1db47887 100644 --- a/ios/App/App/plugins/AbsAudioPlayer.swift +++ b/ios/App/App/plugins/AbsAudioPlayer.swift @@ -11,7 +11,29 @@ import RealmSwift import Network @objc(AbsAudioPlayer) -public class AbsAudioPlayer: CAPPlugin { +public class AbsAudioPlayer: CAPPlugin, CAPBridgedPlugin { + public var identifier = "AbsAudioPlayerPlugin" + public var jsName = "AbsAudioPlayer" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "onReady", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "prepareLibraryItem", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "closePlayback", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setPlaybackSpeed", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setChapterTrack", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "playPlayer", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "pausePlayer", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "playPause", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "seek", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "seekForward", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "seekBackward", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getCurrentTime", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "cancelSleepTimer", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "decreaseSleepTime", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "increaseSleepTime", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getSleepTimerTime", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setSleepTimer", returnType: CAPPluginReturnPromise) + ] + private let logger = AppLogger(category: "AbsAudioPlayer") private var initialPlayWhenReady = false diff --git a/ios/App/App/plugins/AbsDatabase.m b/ios/App/App/plugins/AbsDatabase.m deleted file mode 100644 index 5fb59835..00000000 --- a/ios/App/App/plugins/AbsDatabase.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// AbsDatabase.m -// App -// -// Created by Rasmus Krämer on 11.04.22. -// - -#import -#import - -CAP_PLUGIN(AbsDatabase, "AbsDatabase", - CAP_PLUGIN_METHOD(setCurrentServerConnectionConfig, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(removeServerConnectionConfig, CAPPluginReturnPromise); - - CAP_PLUGIN_METHOD(logout, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getDeviceData, CAPPluginReturnPromise); - - CAP_PLUGIN_METHOD(getLocalLibraryItems, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getLocalLibraryItem, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getLocalLibraryItemByLId, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getLocalLibraryItemsInFolder, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getAllLocalMediaProgress, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(removeLocalMediaProgress, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(syncServerMediaProgressWithLocalMediaProgress, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(syncLocalSessionsWithServer, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(updateLocalMediaProgressFinished, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(updateDeviceSettings, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(updateLocalEbookProgress, CAPPluginReturnPromise); - ) diff --git a/ios/App/App/plugins/AbsDatabase.swift b/ios/App/App/plugins/AbsDatabase.swift index bbdf69a5..8208be78 100644 --- a/ios/App/App/plugins/AbsDatabase.swift +++ b/ios/App/App/plugins/AbsDatabase.swift @@ -27,7 +27,27 @@ extension String { } @objc(AbsDatabase) -public class AbsDatabase: CAPPlugin { +public class AbsDatabase: CAPPlugin, CAPBridgedPlugin { + public var identifier = "AbsDatabasePlugin" + public var jsName = "AbsDatabase" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "setCurrentServerConnectionConfig", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "removeServerConnectionConfig", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "logout", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getDeviceData", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getLocalLibraryItems", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getLocalLibraryItem", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getLocalLibraryItemByLId", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getLocalLibraryItemsInFolder", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getAllLocalMediaProgress", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "removeLocalMediaProgress", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "syncServerMediaProgressWithLocalMediaProgress", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "syncLocalSessionsWithServer", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "updateLocalMediaProgressFinished", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "updateDeviceSettings", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "updateLocalEbookProgress", returnType: CAPPluginReturnPromise) + ] + private let logger = AppLogger(category: "AbsDatabase") @objc func setCurrentServerConnectionConfig(_ call: CAPPluginCall) { diff --git a/ios/App/App/plugins/AbsDownloader.m b/ios/App/App/plugins/AbsDownloader.m deleted file mode 100644 index fa1a55ee..00000000 --- a/ios/App/App/plugins/AbsDownloader.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// AbsDownloader.m -// App -// -// Created by advplyr on 5/13/22. -// - -#import -#import - -CAP_PLUGIN(AbsDownloader, "AbsDownloader", - CAP_PLUGIN_METHOD(downloadLibraryItem, CAPPluginReturnPromise); - ) diff --git a/ios/App/App/plugins/AbsDownloader.swift b/ios/App/App/plugins/AbsDownloader.swift index 62d21eb5..b14aa09b 100644 --- a/ios/App/App/plugins/AbsDownloader.swift +++ b/ios/App/App/plugins/AbsDownloader.swift @@ -10,7 +10,12 @@ import Capacitor import RealmSwift @objc(AbsDownloader) -public class AbsDownloader: CAPPlugin, URLSessionDownloadDelegate { +public class AbsDownloader: CAPPlugin, CAPBridgedPlugin, URLSessionDownloadDelegate { + public var identifier = "AbsDownloaderPlugin" + public var jsName = "AbsDownloader" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "downloadLibraryItem", returnType: CAPPluginReturnPromise) + ] static private let downloadsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] diff --git a/ios/App/App/plugins/AbsFileSystem.m b/ios/App/App/plugins/AbsFileSystem.m deleted file mode 100644 index b1c01f18..00000000 --- a/ios/App/App/plugins/AbsFileSystem.m +++ /dev/null @@ -1,20 +0,0 @@ -// -// AbsFileSystem.m -// App -// -// Created by advplyr on 5/13/22. -// - -#import -#import - -CAP_PLUGIN(AbsFileSystem, "AbsFileSystem", - CAP_PLUGIN_METHOD(selectFolder, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(checkFolderPermission, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(scanFolder, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(removeFolder, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(removeLocalLibraryItem, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(scanLocalLibraryItem, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(deleteItem, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(deleteTrackFromItem, CAPPluginReturnPromise); - ) diff --git a/ios/App/App/plugins/AbsFileSystem.swift b/ios/App/App/plugins/AbsFileSystem.swift index 5859f7e0..974b900a 100644 --- a/ios/App/App/plugins/AbsFileSystem.swift +++ b/ios/App/App/plugins/AbsFileSystem.swift @@ -9,7 +9,20 @@ import Foundation import Capacitor @objc(AbsFileSystem) -public class AbsFileSystem: CAPPlugin { +public class AbsFileSystem: CAPPlugin, CAPBridgedPlugin { + public var identifier = "AbsFileSystemPlugin" + public var jsName = "AbsFileSystem" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "selectFolder", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "checkFolderPermission", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "scanFolder", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "removeFolder", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "removeLocalLibraryItem", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "scanLocalLibraryItem", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "deleteItem", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "deleteTrackFromItem", returnType: CAPPluginReturnPromise) + ] + private let logger = AppLogger(category: "AbsFileSystem") @objc func selectFolder(_ call: CAPPluginCall) { diff --git a/ios/App/App/plugins/AbsLogger.swift b/ios/App/App/plugins/AbsLogger.swift new file mode 100644 index 00000000..0d7fa254 --- /dev/null +++ b/ios/App/App/plugins/AbsLogger.swift @@ -0,0 +1,47 @@ +// +// AbsLogger.swift +// Audiobookshelf +// +// Created by advplyr on 4/20/25. +// + +import Foundation +import Capacitor + +@objc(AbsLogger) +public class AbsLogger: CAPPlugin, CAPBridgedPlugin { + public var identifier = "AbsLoggerPlugin" + public var jsName = "AbsLogger" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "info", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "error", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getAllLogs", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "clearLogs", returnType: CAPPluginReturnPromise) + ] + + private let logger = AppLogger(category: "AbsLogger") + + @objc func info(_ call: CAPPluginCall) { + let message = call.getString("message") ?? "" + let tag = call.getString("tag") ?? "" + + logger.log("[\(tag)] \(message)") + call.resolve() + } + + @objc func error(_ call: CAPPluginCall) { + let message = call.getString("message") ?? "" + let tag = call.getString("tag") ?? "" + + logger.error("[\(tag)] \(message)") + call.resolve() + } + + @objc func getAllLogs(_ call: CAPPluginCall) { + call.unimplemented("Not implemented on iOS") + } + + @objc func clearLogs(_ call: CAPPluginCall) { + call.unimplemented("Not implemented on iOS") + } +}