forked from olcxjas-softworks/LarpixClient
forgot to push
This commit is contained in:
parent
6ff37cb3be
commit
4942043ae3
28 changed files with 2458 additions and 0 deletions
134
node_modules/@capacitor/status-bar/ios/Sources/StatusBarPlugin/StatusBarPlugin.swift
generated
vendored
Normal file
134
node_modules/@capacitor/status-bar/ios/Sources/StatusBarPlugin/StatusBarPlugin.swift
generated
vendored
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
import Foundation
|
||||
import Capacitor
|
||||
|
||||
/**
|
||||
* StatusBar plugin. Requires "View controller-based status bar appearance" to
|
||||
* be "YES" in Info.plist
|
||||
*/
|
||||
@objc(StatusBarPlugin)
|
||||
public class StatusBarPlugin: CAPPlugin, CAPBridgedPlugin {
|
||||
public let identifier = "StatusBarPlugin"
|
||||
public let jsName = "StatusBar"
|
||||
public let pluginMethods: [CAPPluginMethod] = [
|
||||
CAPPluginMethod(name: "setStyle", returnType: CAPPluginReturnPromise),
|
||||
CAPPluginMethod(name: "setBackgroundColor", returnType: CAPPluginReturnPromise),
|
||||
CAPPluginMethod(name: "show", returnType: CAPPluginReturnPromise),
|
||||
CAPPluginMethod(name: "hide", returnType: CAPPluginReturnPromise),
|
||||
CAPPluginMethod(name: "getInfo", returnType: CAPPluginReturnPromise),
|
||||
CAPPluginMethod(name: "setOverlaysWebView", returnType: CAPPluginReturnPromise)
|
||||
]
|
||||
private var statusBar: StatusBar?
|
||||
private let statusBarVisibilityChanged = "statusBarVisibilityChanged"
|
||||
private let statusBarOverlayChanged = "statusBarOverlayChanged"
|
||||
|
||||
override public func load() {
|
||||
guard let bridge = bridge else { return }
|
||||
statusBar = StatusBar(bridge: bridge, config: statusBarConfig())
|
||||
}
|
||||
|
||||
private func statusBarConfig() -> StatusBarConfig {
|
||||
var config = StatusBarConfig()
|
||||
config.overlaysWebView = getConfig().getBoolean("overlaysWebView", config.overlaysWebView)
|
||||
if let colorConfig = getConfig().getString("backgroundColor"), let color = UIColor.capacitor.color(fromHex: colorConfig) {
|
||||
config.backgroundColor = color
|
||||
}
|
||||
if let configStyle = getConfig().getString("style") {
|
||||
config.style = style(fromString: configStyle)
|
||||
}
|
||||
return config
|
||||
}
|
||||
|
||||
private func style(fromString: String) -> UIStatusBarStyle {
|
||||
switch fromString.lowercased() {
|
||||
case "dark", "lightcontent":
|
||||
return .lightContent
|
||||
case "light", "darkcontent":
|
||||
return .darkContent
|
||||
case "default":
|
||||
return .default
|
||||
default:
|
||||
return .default
|
||||
}
|
||||
}
|
||||
|
||||
@objc func setStyle(_ call: CAPPluginCall) {
|
||||
let options = call.options!
|
||||
if let styleString = options["style"] as? String {
|
||||
statusBar?.setStyle(style(fromString: styleString))
|
||||
}
|
||||
call.resolve([:])
|
||||
}
|
||||
|
||||
@objc func setBackgroundColor(_ call: CAPPluginCall) {
|
||||
guard
|
||||
let hexString = call.options["color"] as? String,
|
||||
let color = UIColor.capacitor.color(fromHex: hexString)
|
||||
else { return }
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
self?.statusBar?.setBackgroundColor(color)
|
||||
}
|
||||
call.resolve()
|
||||
}
|
||||
|
||||
@objc func hide(_ call: CAPPluginCall) {
|
||||
let animation = call.getString("animation", "FADE")
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
self?.statusBar?.hide(animation: animation)
|
||||
guard
|
||||
let info = self?.statusBar?.getInfo(),
|
||||
let dict = self?.toDict(info),
|
||||
let event = self?.statusBarVisibilityChanged
|
||||
else { return }
|
||||
self?.notifyListeners(event, data: dict)
|
||||
}
|
||||
call.resolve()
|
||||
}
|
||||
|
||||
@objc func show(_ call: CAPPluginCall) {
|
||||
let animation = call.getString("animation", "FADE")
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
self?.statusBar?.show(animation: animation)
|
||||
guard
|
||||
let info = self?.statusBar?.getInfo(),
|
||||
let dict = self?.toDict(info),
|
||||
let event = self?.statusBarVisibilityChanged
|
||||
else { return }
|
||||
self?.notifyListeners(event, data: dict)
|
||||
}
|
||||
call.resolve()
|
||||
}
|
||||
|
||||
@objc func getInfo(_ call: CAPPluginCall) {
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
guard
|
||||
let info = self?.statusBar?.getInfo(),
|
||||
let dict = self?.toDict(info)
|
||||
else { return }
|
||||
call.resolve(dict)
|
||||
}
|
||||
}
|
||||
|
||||
@objc func setOverlaysWebView(_ call: CAPPluginCall) {
|
||||
guard let overlay = call.options["overlay"] as? Bool else { return }
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
self?.statusBar?.setOverlaysWebView(overlay)
|
||||
guard
|
||||
let info = self?.statusBar?.getInfo(),
|
||||
let dict = self?.toDict(info),
|
||||
let event = self?.statusBarOverlayChanged
|
||||
else { return }
|
||||
self?.notifyListeners(event, data: dict)
|
||||
}
|
||||
call.resolve()
|
||||
}
|
||||
|
||||
private func toDict(_ info: StatusBarInfo) -> [String: Any] {
|
||||
return [
|
||||
"visible": info.visible!,
|
||||
"style": info.style!,
|
||||
"color": info.color!,
|
||||
"overlays": info.overlays!,
|
||||
"height": info.height!
|
||||
]
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue