@usercentrics/react-native-sdk 2.7.4 → 2.7.5

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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,15 @@
1
1
  [Release Notes](https://docs.usercentrics.com/cmp_in_app_sdk/latest/about/history/)
2
+ ### 2.7.5
3
+
4
+ ## Improvements
5
+
6
+ * Major improvements to main thread use.
7
+
8
+ ## Resolved Issues
9
+
10
+ * [Android] Resolve NPE crash happening in edge cases.
11
+ * Stability improvements.
12
+
2
13
  # 2.7.4
3
14
 
4
15
  ## Features
@@ -1,4 +1,4 @@
1
- def usercentrics_version = "2.7.4"
1
+ def usercentrics_version = "2.7.5"
2
2
  version usercentrics_version
3
3
 
4
4
  buildscript {
@@ -9,12 +9,10 @@ public protocol UsercentricsManager {
9
9
  func restoreUserSession(controllerId: String, onSuccess: @escaping ((UsercentricsReadyStatus) -> Void), onFailure: @escaping ((Error) -> Void))
10
10
 
11
11
  func showFirstLayer(bannerSettings: BannerSettings?,
12
- hostView: UIViewController,
13
12
  layout: UsercentricsLayout,
14
13
  dismissViewHandler: @escaping (UsercentricsConsentUserResponse) -> Void)
15
14
 
16
15
  func showSecondLayer(bannerSettings: BannerSettings?,
17
- hostView: UIViewController,
18
16
  dismissViewHandler: @escaping (UsercentricsConsentUserResponse) -> Void)
19
17
 
20
18
  func getControllerId() -> String
@@ -58,18 +56,15 @@ final class UsercentricsManagerImplementation: UsercentricsManager {
58
56
  }
59
57
 
60
58
  func showFirstLayer(bannerSettings: BannerSettings?,
61
- hostView: UIViewController,
62
59
  layout: UsercentricsLayout,
63
60
  dismissViewHandler: @escaping (UsercentricsConsentUserResponse) -> Void) {
64
- UsercentricsBanner(bannerSettings: bannerSettings).showFirstLayer(hostView: hostView,
65
- layout: layout,
61
+ UsercentricsBanner(bannerSettings: bannerSettings).showFirstLayer(layout: layout,
66
62
  completionHandler: dismissViewHandler)
67
63
  }
68
64
 
69
65
  func showSecondLayer(bannerSettings: BannerSettings?,
70
- hostView: UIViewController,
71
66
  dismissViewHandler: @escaping (UsercentricsConsentUserResponse) -> Void) {
72
- UsercentricsBanner(bannerSettings: bannerSettings).showSecondLayer(hostView: hostView, completionHandler: dismissViewHandler)
67
+ UsercentricsBanner(bannerSettings: bannerSettings).showSecondLayer(completionHandler: dismissViewHandler)
73
68
  }
74
69
 
75
70
  func restoreUserSession(controllerId: String, onSuccess: @escaping ((UsercentricsReadyStatus) -> Void), onFailure: @escaping ((Error) -> Void)) {
@@ -44,7 +44,6 @@ class RNUsercentricsModule: NSObject, RCTBridgeModule {
44
44
  queue.async { [weak self] in
45
45
  guard
46
46
  let self = self,
47
- let rootVC = self.getPresentationViewController(),
48
47
  let layoutString = dict["layout"] as? String,
49
48
  let layout = UsercentricsLayout.from(enumString: layoutString)
50
49
  else {
@@ -54,7 +53,6 @@ class RNUsercentricsModule: NSObject, RCTBridgeModule {
54
53
 
55
54
  let bannerSettingsDict = dict["bannerSettings"] as? NSDictionary
56
55
  self.usercentricsManager.showFirstLayer(bannerSettings: BannerSettings(from: bannerSettingsDict),
57
- hostView: rootVC as! UIViewController,
58
56
  layout: layout) { response in
59
57
  resolve(response.toDictionary())
60
58
  }
@@ -64,17 +62,14 @@ class RNUsercentricsModule: NSObject, RCTBridgeModule {
64
62
  @objc func showSecondLayer(_ dict: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
65
63
  queue.async { [weak self] in
66
64
  guard
67
- let self = self,
68
- let rootVC = self.getPresentationViewController()
65
+ let self = self
69
66
  else {
70
67
  reject("usercentrics_reactNative_showFirstLayer_error", RNUsercentricsModuleError.invalidData.localizedDescription, RNUsercentricsModuleError.invalidData)
71
68
  return
72
69
  }
73
70
 
74
71
  let bannerSettingsDict = dict["bannerSettings"] as? NSDictionary
75
- self.usercentricsManager.showSecondLayer(bannerSettings: BannerSettings(from: bannerSettingsDict),
76
- hostView: rootVC as! UIViewController) { response in
77
- rootVC.dismiss(animated: true)
72
+ self.usercentricsManager.showSecondLayer(bannerSettings: BannerSettings(from: bannerSettingsDict)) { response in
78
73
  resolve(response.toDictionary())
79
74
  }
80
75
  }
@@ -192,23 +187,4 @@ class RNUsercentricsModule: NSObject, RCTBridgeModule {
192
187
  @objc func reset() -> Void {
193
188
  usercentricsManager.reset()
194
189
  }
195
-
196
- func getPresentationViewController() -> PresentationViewController? {
197
- var window: UIWindow?
198
- if #available(iOS 13.0, *) {
199
- window = UIApplication
200
- .shared
201
- .connectedScenes
202
- .compactMap { $0 as? UIWindowScene }
203
- .flatMap { $0.windows }
204
- .first { $0.isKeyWindow }
205
- } else {
206
- window = UIApplication.shared.windows.first { $0.isKeyWindow }
207
- }
208
- var viewController = window?.rootViewController
209
- while viewController?.presentedViewController != nil {
210
- viewController = viewController?.presentedViewController
211
- }
212
- return viewController
213
- }
214
190
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@usercentrics/react-native-sdk",
3
- "version": "2.7.4",
3
+ "version": "2.7.5",
4
4
  "description": "Usercentrics SDK",
5
5
  "homepage": "https://usercentrics.com",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "author": "Usercentrics <developer@usercentrics.com>",
9
9
  "iosPackageName": "react-native-usercentrics",
10
- "iosPackageVersion": "2.7.4",
10
+ "iosPackageVersion": "2.7.5",
11
11
  "license": "SEE LICENSE IN LICENSE",
12
12
  "files": [
13
13
  "android",