Add AbsLogger stub to iOS, update iOS plugins for capacitor 7

This commit is contained in:
advplyr
2025-04-20 16:06:52 -05:00
parent 26b0fae0fb
commit 882c2749ab
11 changed files with 116 additions and 117 deletions
+1
View File
@@ -21,6 +21,7 @@ class MyViewController: CAPBridgeViewController {
bridge?.registerPluginInstance(AbsAudioPlayer())
bridge?.registerPluginInstance(AbsDownloader())
bridge?.registerPluginInstance(AbsFileSystem())
bridge?.registerPluginInstance(AbsLogger())
}
-35
View File
@@ -1,35 +0,0 @@
//
// AbsAudioPlayer.m
// App
//
// Created by Rasmus Krämer on 13.04.22.
//
#import <Foundation/Foundation.h>
#import <Capacitor/Capacitor.h>
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);
)
+23 -1
View File
@@ -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
-29
View File
@@ -1,29 +0,0 @@
//
// AbsDatabase.m
// App
//
// Created by Rasmus Krämer on 11.04.22.
//
#import <Foundation/Foundation.h>
#import <Capacitor/Capacitor.h>
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);
)
+21 -1
View File
@@ -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) {
-13
View File
@@ -1,13 +0,0 @@
//
// AbsDownloader.m
// App
//
// Created by advplyr on 5/13/22.
//
#import <Foundation/Foundation.h>
#import <Capacitor/Capacitor.h>
CAP_PLUGIN(AbsDownloader, "AbsDownloader",
CAP_PLUGIN_METHOD(downloadLibraryItem, CAPPluginReturnPromise);
)
+6 -1
View File
@@ -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]
-20
View File
@@ -1,20 +0,0 @@
//
// AbsFileSystem.m
// App
//
// Created by advplyr on 5/13/22.
//
#import <Foundation/Foundation.h>
#import <Capacitor/Capacitor.h>
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);
)
+14 -1
View File
@@ -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) {
+47
View File
@@ -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")
}
}