@hiloenergie/capacitor-plugin-safe-area 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,45 +1,27 @@
1
1
  import Foundation
2
2
  import Capacitor
3
3
 
4
- func makeSafeArea(_ insets: CGRect) -> [String :[String: Int]] {
4
+ func makeSafeArea(_ insets: UIEdgeInsets) -> [String :[String: Int]] {
5
5
  return [
6
6
  "insets": [
7
- "top": Int(insets.minY),
8
- "bottom": Int(insets.height),
9
- "right": Int(insets.width),
10
- "left": Int(insets.minX)
7
+ "top": Int(insets.top),
8
+ "bottom": Int(insets.bottom),
9
+ "right": Int(insets.right),
10
+ "left": Int(insets.left)
11
11
  ]
12
12
  ];
13
13
  }
14
14
 
15
- func getInsets(controller: UIViewController) -> CGRect {
15
+ func getInsets(controller: UIViewController) -> UIEdgeInsets {
16
16
  let keyWindow = UIApplication.shared.windows
17
17
  .filter { window in window.rootViewController == controller }
18
18
  .first
19
19
 
20
20
  if (keyWindow == nil) {
21
- return CGRect.zero;
21
+ return UIEdgeInsets.zero
22
22
  }
23
23
 
24
- let safeFrame = keyWindow!.safeAreaLayoutGuide.layoutFrame
25
-
26
- return CGRect(
27
- x: safeFrame.minX,
28
- y: safeFrame.minY,
29
- width: keyWindow!.frame.maxX - safeFrame.maxX,
30
- height: keyWindow!.frame.maxY - safeFrame.maxY
31
- )
32
- }
33
-
34
- @objc
35
- public class SizeWithCoordinator: NSObject {
36
- public var size: CGSize;
37
- public var coordinator: UIViewControllerTransitionCoordinator;
38
-
39
- init(size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
40
- self.size = size;
41
- self.coordinator = coordinator;
42
- }
24
+ return keyWindow!.safeAreaInsets
43
25
  }
44
26
 
45
27
  let EVENT_ON_INSETS_CHANGED = "safeAreaPluginsInsetChange"
@@ -50,9 +32,9 @@ let EVENT_ON_INSETS_CHANGED = "safeAreaPluginsInsetChange"
50
32
  */
51
33
  @objc(SafeAreaPlugin)
52
34
  public class SafeAreaPlugin: CAPPlugin {
53
- public static let ViewWillTransitionToSizeWithCoordinatorNotification = NSNotification.Name(rawValue: "SafeAreaPlugin.ViewWillTransitionToSizeWithCoordinator");
35
+ public static let ViewSafeAreaInsetsDidChange = NSNotification.Name(rawValue: "SafeAreaPlugin.ViewSafeAreaInsetsDidChange");
54
36
 
55
- private var safeArea = makeSafeArea(CGRect.zero)
37
+ private var safeArea = makeSafeArea(UIEdgeInsets.zero)
56
38
 
57
39
  override public func load() {
58
40
  NotificationCenter.default.addObserver(
@@ -62,21 +44,12 @@ public class SafeAreaPlugin: CAPPlugin {
62
44
  object: nil
63
45
  )
64
46
 
65
- if #available(iOS 13.0, *) {
66
- NotificationCenter.default.addObserver(
67
- self,
68
- selector: #selector(self.onViewWillTransitionTo),
69
- name: SafeAreaPlugin.ViewWillTransitionToSizeWithCoordinatorNotification,
70
- object: nil
71
- )
72
- } else {
73
- NotificationCenter.default.addObserver(
74
- self,
75
- selector: #selector(self.onWillChangeStatusBarFrameNotification),
76
- name: UIApplication.willChangeStatusBarFrameNotification,
77
- object: nil
78
- )
79
- }
47
+ NotificationCenter.default.addObserver(
48
+ self,
49
+ selector: #selector(self.onViewSafeAreaInsetsDidChange),
50
+ name: SafeAreaPlugin.ViewSafeAreaInsetsDidChange,
51
+ object: nil
52
+ )
80
53
  }
81
54
 
82
55
  deinit {
@@ -98,42 +71,23 @@ public class SafeAreaPlugin: CAPPlugin {
98
71
  self.changeSafeArea(insets)
99
72
  }
100
73
 
101
- @objc func onWillChangeStatusBarFrameNotification(newFrame: CGRect) {
74
+ @objc func onViewSafeAreaInsetsDidChange() {
102
75
  let insets = getInsets(controller: (self.bridge?.viewController)!)
103
- let insetsGuess = CGRect(
104
- x: insets.minX,
105
- y: newFrame.height,
106
- width: insets.width,
107
- height: insets.height
108
- )
109
- self.changeSafeArea(insetsGuess)
110
- }
111
-
112
- @objc func onViewWillTransitionTo(sizeWithCoordinator: SizeWithCoordinator) {
113
- let insets = getInsets(controller: (self.bridge?.viewController)!)
114
- let insetsGuess = CGRect(
115
- x: insets.minX,
116
- y: sizeWithCoordinator.size.height,
117
- width: insets.width,
118
- height: insets.height
119
- )
120
- self.changeSafeArea(insetsGuess)
76
+ self.changeSafeArea(insets)
121
77
  }
122
78
 
123
- func changeSafeArea(_ insets: CGRect) {
79
+ func changeSafeArea(_ insets: UIEdgeInsets) {
124
80
  self.safeArea = makeSafeArea(insets)
125
81
  self.notifyListeners(EVENT_ON_INSETS_CHANGED, data: self.safeArea)
126
82
  }
127
83
  }
128
84
 
129
85
  extension CAPBridgeViewController {
130
- public override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
131
- super.viewWillTransition(to: size, with: coordinator)
132
- if #available(iOS 13.0, *) {
133
- NotificationCenter.default.post(
134
- name: SafeAreaPlugin.ViewWillTransitionToSizeWithCoordinatorNotification,
135
- object: SizeWithCoordinator(size: size, with: coordinator)
136
- )
137
- }
86
+ public override func viewSafeAreaInsetsDidChange() {
87
+ super.viewSafeAreaInsetsDidChange()
88
+ NotificationCenter.default.post(
89
+ name: SafeAreaPlugin.ViewSafeAreaInsetsDidChange,
90
+ object: nil
91
+ )
138
92
  }
139
93
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiloenergie/capacitor-plugin-safe-area",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "A plugin to expose the safe area insets from the native iOS/Android device to your web project.",
5
5
  "author": "Kevin Pacheco",
6
6
  "license": "MIT",