@applicaster/quick-brick-native-apple 5.20.1 → 5.20.3

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,6 +1,6 @@
1
1
  {
2
2
  "name": "QuickBrickApple",
3
- "version": "5.20.1",
3
+ "version": "5.20.3",
4
4
  "platforms": {
5
5
  "ios": "14.0",
6
6
  "tvos": "14.0"
@@ -16,7 +16,7 @@
16
16
  "authors": "Applicaster LTD.",
17
17
  "source": {
18
18
  "git": "https://github.com/applicaster/Zapp-Frameworks.git",
19
- "tag": "@@applicaster/quick-brick-native-apple/5.20.1"
19
+ "tag": "@@applicaster/quick-brick-native-apple/5.20.3"
20
20
  },
21
21
  "requires_arc": true,
22
22
  "source_files": "universal/**/*.{m,swift}",
@@ -36,8 +36,7 @@ class PushBridge: NSObject, RCTBridgeModule {
36
36
  /// - rejecter: rejecter when something fails
37
37
  @objc func registerTags(_ tags: [String]?,
38
38
  resolver: @escaping RCTPromiseResolveBlock,
39
- rejecter: @escaping RCTPromiseRejectBlock)
40
- {
39
+ rejecter: @escaping RCTPromiseRejectBlock) {
41
40
  FacadeConnector.connector?.push?.addTags(tags, completion: { result in
42
41
  switch result {
43
42
  case .success:
@@ -56,8 +55,7 @@ class PushBridge: NSObject, RCTBridgeModule {
56
55
  /// - rejecter: rejecter when something fails
57
56
  @objc func unregisterTags(_ tags: [String]?,
58
57
  resolver: @escaping RCTPromiseResolveBlock,
59
- rejecter: @escaping RCTPromiseRejectBlock)
60
- {
58
+ rejecter: @escaping RCTPromiseRejectBlock) {
61
59
  FacadeConnector.connector?.push?.removeTags(tags, completion: { result in
62
60
  switch result {
63
61
  case .success:
@@ -73,8 +71,7 @@ class PushBridge: NSObject, RCTBridgeModule {
73
71
  /// - Parameters:
74
72
  /// - resolver: resolver when everything succeed
75
73
  @objc func getRegisteredTags(_ resolver: @escaping RCTPromiseResolveBlock,
76
- rejecter _: @escaping RCTPromiseResolveBlock)
77
- {
74
+ rejecter _: @escaping RCTPromiseResolveBlock) {
78
75
  let tags = FacadeConnector.connector?.push?.getDeviceTags()
79
76
  resolver(tags)
80
77
  }
@@ -30,8 +30,7 @@ public extension ReactNativeManager {
30
30
  {
31
31
  let userInfo = userInfo
32
32
  if let urlString = getLink(userInfo: userInfo),
33
- let url = URL(string: urlString)
34
- {
33
+ let url = URL(string: urlString) {
35
34
  UIApplication.shared.open(url,
36
35
  options: [:],
37
36
  completionHandler: nil)
@@ -91,8 +91,7 @@ class FocusableGroupManager {
91
91
  /// - itemId: Id of the FocusableView to search
92
92
  /// - Returns: FocusableView instance if exist in searched group, otherwise nil
93
93
  class func item(byGroupId groupId: String,
94
- andItemId itemId: String) -> FocusableView?
95
- {
94
+ andItemId itemId: String) -> FocusableView? {
96
95
  itemsForGroup(by: groupId).first(where: { $0.key == itemId })?.value
97
96
  }
98
97
 
@@ -109,15 +108,13 @@ class FocusableGroupManager {
109
108
  let itemId = itemId,
110
109
  let groupView = focusableGroups[groupId],
111
110
  let viewToFocus = FocusableGroupManager.item(byGroupId: groupId,
112
- andItemId: itemId)
113
- {
111
+ andItemId: itemId) {
114
112
  groupView.updatePrefferedFocusEnv(with: viewToFocus)
115
113
 
116
114
  var rootView: UIView? = groupView
117
115
  while rootView !== nil, rootView?.isReactRootView() == false {
118
116
  if let unwrapedRootView = rootView,
119
- let superView = unwrapedRootView.superview
120
- {
117
+ let superView = unwrapedRootView.superview {
121
118
  rootView = superView
122
119
  } else {
123
120
  rootView = nil
@@ -129,8 +126,7 @@ class FocusableGroupManager {
129
126
  }
130
127
 
131
128
  if let rootView = rootView,
132
- let superView = rootView.superview as? RCTRootView
133
- {
129
+ let superView = rootView.superview as? RCTRootView {
134
130
  superView.reactPreferredFocusedView = viewToFocus
135
131
  if needsForceUpdate == true {
136
132
  superView.setNeedsFocusUpdate()
@@ -57,8 +57,7 @@ public class FocusableGroupView: RCTTVView {
57
57
 
58
58
  while rootView?.superview != nil {
59
59
  if let unwrapedRootView = rootView,
60
- let superView = unwrapedRootView.superview
61
- {
60
+ let superView = unwrapedRootView.superview {
62
61
  rootView = superView
63
62
  if let superFocusGroup = rootView as? FocusableGroupView {
64
63
  if let newFocusData = customPrefferedFocusEnvironment as? [FocusableView],
@@ -110,13 +109,11 @@ public class FocusableGroupView: RCTTVView {
110
109
 
111
110
  if focusItemIsDescendant(nextFocuseItem: nextFocusedItem) == false {
112
111
  if resetFocusToInitialValue,
113
- let initialItemId = initialItemId
114
- {
112
+ let initialItemId = initialItemId {
115
113
  if tryTakePrefferedViewFromDependantGroups() == false {
116
114
  if let groupId = groupId,
117
115
  let initialItemView = FocusableGroupManager.item(byGroupId: groupId,
118
- andItemId: initialItemId)
119
- {
116
+ andItemId: initialItemId) {
120
117
  customPrefferedFocusEnvironment = [initialItemView]
121
118
  retVal = true
122
119
  }
@@ -208,8 +205,7 @@ public class FocusableGroupView: RCTTVView {
208
205
  params[GroupViewUpdateEvents.isActive] = false
209
206
  isFocusDisabled = false
210
207
  if resetFocusToInitialValue,
211
- let initialItemId = initialItemId
212
- {
208
+ let initialItemId = initialItemId {
213
209
  if let groupId = groupId {
214
210
  let groupItems = FocusableGroupManager.itemsForGroup(by: groupId)
215
211
  if let initialItemView = groupItems[initialItemId] {
@@ -37,8 +37,7 @@ public class FocusableView: ParallaxView {
37
37
  }
38
38
  DispatchQueue.main.async { [weak self] in
39
39
  if let groupId = self?.groupId,
40
- let focusableGroup = focusableGroups[groupId]
41
- {
40
+ let focusableGroup = focusableGroups[groupId] {
42
41
  // Update Prefered focus view in group
43
42
  focusableGroup.updatePrefferedFocusEnv(with: self!)
44
43
  }
@@ -86,8 +86,7 @@ extension UIView: AnyParallaxableView {
86
86
  } else {
87
87
  if subviews.count > 1,
88
88
  let rnView = subviews[1] as? RCTTVView,
89
- let subviews = findSubview(view: rnView)
90
- {
89
+ let subviews = findSubview(view: rnView) {
91
90
  subviews.filter { $0 !== options.glowContainerView }
92
91
  .enumerated()
93
92
  .forEach { (index: Int, subview: UIView) in
@@ -49,8 +49,7 @@ extension ParallaxEffectOptions {
49
49
  if case let bundle = Bundle(for: ParallaxView.self),
50
50
  let glowImage = UIImage(named: "gloweffect",
51
51
  in: bundle,
52
- compatibleWith: nil)
53
- {
52
+ compatibleWith: nil) {
54
53
  glowImage.accessibilityIdentifier = glowImageAccessibilityIdentifier
55
54
  let imageView = UIImageView(image: glowImage)
56
55
  imageView.contentMode = .scaleAspectFit
@@ -8,10 +8,13 @@
8
8
 
9
9
  import Foundation
10
10
  import React
11
+ import XrayLogger
11
12
  import ZappCore
12
13
 
13
14
  @objc(AppLoaderBridge)
14
15
  class AppLoaderBridge: NSObject, RCTBridgeModule {
16
+ lazy var logger = Logger.getLogger(for: "\(Bundle.main.bundleIdentifier!)/native_application/AppLoaderBridge")
17
+
15
18
  static func moduleName() -> String! {
16
19
  "AppLoaderBridge"
17
20
  }
@@ -26,15 +29,17 @@ class AppLoaderBridge: NSObject, RCTBridgeModule {
26
29
  }
27
30
 
28
31
  enum Errors {
29
- static let canNotAccessAppData = "Can not access application data"
30
- static let parameterDoesNotExist = "The type parameter does not exist/supported"
31
- static let noIdentifierBody = "FacadeConnector can't delegate applicationData"
32
- static let noCharacters = "Layout id without charaters"
33
- static let urlCreationMessage = "There was a problem to create the new layout URLs"
34
- static let switchToNewLayoutMessage = "There was a problem to switch to new layout URLs"
35
- static let canNotGetPluginsContent = "Can not get the plugins content"
36
- static let canNotGetPipesEndpointContent = "Can not get the pipes endpoint content"
37
- static let canNotGetCellStylesContent = "Can not get the cell style content"
32
+ static let parameterDoesNotExist = (message: "The type parameter does not exist/supported", code: "1")
33
+ static let canNotAccessAppData = (message: "Can not access application data", code: "2")
34
+ static let switchToNewLayoutMessage = (message: "There was a problem to switch to new layout URLs", code: "3")
35
+ static let canNotGetRemoteConfigurationContent = (message: "Can not get the remotet configuration content", code: "4")
36
+ static let canNotGetPluginsContent = (message: "Can not get the plugins content", code: "5")
37
+ static let canNotGetOriginLayoutContent = (message: "Can not get the origin layout from layout.json content", code: "6")
38
+ static let canNotGetLayoutContentFromId = (message: "Can not get the layout from content id", code: "7")
39
+ static let canNotGetOriginCellStylesContent = (message: "Can not get the origin cellStyles from cell_styles.json", code: "8")
40
+ static let canNotGetCellStylesContent = (message: "Can not get the layout from content id", code: "9")
41
+ static let canNotGetStylesContent = (message: "Can not get the stylescontent", code: "10")
42
+ static let canNotGetPipesEndpointContent = (message: "Can not get the pipes endpoint content", code: "11")
38
43
  }
39
44
 
40
45
  enum ContentType: String {
@@ -47,7 +52,8 @@ class AppLoaderBridge: NSObject, RCTBridgeModule {
47
52
  }
48
53
 
49
54
  enum Consts {
50
- static let currentLayoutId = "currentLayoutId"
55
+ static let activeLayoutId = "active_layout_id"
56
+ static let defaultLayoutId = "default_layout_id"
51
57
  }
52
58
 
53
59
  // MARK: - Bridge Methods
@@ -55,71 +61,84 @@ class AppLoaderBridge: NSObject, RCTBridgeModule {
55
61
  @objc public func getFile(_ type: String,
56
62
  options _: [String: Any]?,
57
63
  resolver: @escaping RCTPromiseResolveBlock,
58
- rejecter: @escaping RCTPromiseRejectBlock)
59
- {
64
+ rejecter: @escaping RCTPromiseRejectBlock) {
60
65
  guard let applicationData = FacadeConnector.connector?.applicationData else {
61
- rejecter("2", Errors.canNotAccessAppData, nil)
66
+ rejecter(Errors.canNotAccessAppData.code, Errors.canNotAccessAppData.message, nil)
62
67
  return
63
68
  }
64
69
 
65
70
  guard let contentType = ContentType(rawValue: type) else {
66
- rejecter("1", Errors.parameterDoesNotExist, nil)
71
+ rejecter(Errors.parameterDoesNotExist.code, Errors.parameterDoesNotExist.message, nil)
67
72
  return
68
73
  }
69
74
 
70
75
  switch contentType {
71
76
  case .remoteConfigurations:
72
77
  guard let remoteConfig = applicationData.remoteConfigurationUrlContent() else {
73
- rejecter("2", Errors.canNotAccessAppData, nil)
78
+ rejecter(Errors.canNotGetRemoteConfigurationContent.code, Errors.canNotGetRemoteConfigurationContent.message, nil)
74
79
  return
75
80
  }
81
+
76
82
  let remoteConfigJsonString = remoteConfig.getJsonString()
77
83
  resolver(remoteConfigJsonString)
78
84
  case .pluginConfigurations:
79
85
  guard let pluginsContent = applicationData.pluginsUrlContent() else {
80
- rejecter("7", Errors.canNotGetPluginsContent, nil)
86
+ rejecter(Errors.canNotGetPluginsContent.code, Errors.canNotGetPluginsContent.message, nil)
81
87
  return
82
88
  }
83
89
 
84
90
  let jsonString = JsonHelper.convertObjectToJsonString(object: pluginsContent, options: [])
85
91
  resolver(jsonString)
86
92
  case .layout:
87
- guard let layoutId = getLayoutId() else {
88
- resolver(applicationData.layoutUrlContent()?.getJsonString())
93
+ guard let layoutId = getActiveOrDefaultFallbackLayoutId() else {
94
+ if let layoutContent = applicationData.layoutUrlContent() {
95
+ let layoutContentJsonString = layoutContent.getJsonString()
96
+ resolver(layoutContentJsonString)
97
+
98
+ } else {
99
+ rejecter(Errors.canNotGetOriginLayoutContent.code, Errors.canNotGetOriginLayoutContent.message, nil)
100
+ }
89
101
  return
90
102
  }
91
103
 
92
104
  applicationData.layoutUrlContent(for: layoutId) { layoutUrlContent in
93
105
  guard let layoutUrlContent = layoutUrlContent else {
94
- rejecter("4", Errors.switchToNewLayoutMessage, nil)
106
+ rejecter(Errors.canNotGetLayoutContentFromId.code, Errors.canNotGetLayoutContentFromId.message, nil)
95
107
  return
96
108
  }
97
109
 
98
110
  resolver(layoutUrlContent.getJsonString())
99
111
  }
100
- case .styles:
101
- guard let layoutId = getLayoutId() else {
102
- resolver(applicationData.stylesUrlContent()?.getJsonString())
112
+ case .cellStyles:
113
+ guard let layoutId = getActiveOrDefaultFallbackLayoutId() else {
114
+ if let cellStylesContent = applicationData.cellStylesUrlContent() {
115
+ let cellStylesContentJsonString = cellStylesContent.getJsonString()
116
+ resolver(cellStylesContentJsonString)
117
+ } else {
118
+ rejecter(Errors.canNotGetOriginCellStylesContent.code, Errors.canNotGetOriginCellStylesContent.message, nil)
119
+ }
103
120
  return
104
121
  }
105
122
 
106
123
  applicationData.cellStylesUrlContent(for: layoutId) { cellStylesUrlContent in
107
124
  guard let cellStylesUrlContent = cellStylesUrlContent else {
108
- rejecter("4", Errors.switchToNewLayoutMessage, nil)
125
+ rejecter(Errors.canNotGetCellStylesContent.code, Errors.canNotGetCellStylesContent.message, nil)
109
126
  return
110
127
  }
111
128
 
112
129
  resolver(cellStylesUrlContent.getJsonString())
113
130
  }
114
- case .cellStyles:
115
- guard let cellStylesData = applicationData.cellStylesUrlContent() else {
116
- rejecter("9", Errors.canNotGetCellStylesContent, nil)
131
+ case .styles:
132
+ guard let stylesURLContent = applicationData.stylesUrlContent() else {
133
+ rejecter(Errors.canNotGetStylesContent.code, Errors.canNotGetStylesContent.message, nil)
117
134
  return
118
135
  }
119
- resolver(cellStylesData.getJsonString())
136
+
137
+ let stylesURLContentJsonString = stylesURLContent.getJsonString()
138
+ resolver(stylesURLContentJsonString)
120
139
  case .pipesEndpoints:
121
140
  guard let pipesEndpointContent = applicationData.pipesEndpointContent() else {
122
- rejecter("8", Errors.canNotGetPipesEndpointContent, nil)
141
+ rejecter(Errors.canNotGetPipesEndpointContent.code, Errors.canNotGetPipesEndpointContent.message, nil)
123
142
  return
124
143
  }
125
144
  resolver(pipesEndpointContent.getJsonString())
@@ -129,26 +148,25 @@ class AppLoaderBridge: NSObject, RCTBridgeModule {
129
148
  @objc public func switchLayout(_ layoutId: String,
130
149
  options _: [String: Any]?,
131
150
  resolver: @escaping RCTPromiseResolveBlock,
132
- rejecter: @escaping RCTPromiseRejectBlock)
133
- {
151
+ rejecter: @escaping RCTPromiseRejectBlock) {
134
152
  // Construct the layout and cell_style URLS
135
153
  guard let applicationData = FacadeConnector.connector?.applicationData else {
136
- rejecter("2", Errors.canNotAccessAppData, nil)
154
+ rejecter(Errors.canNotAccessAppData.code, Errors.canNotAccessAppData.message, nil)
137
155
  return
138
156
  }
139
157
 
140
158
  applicationData.layoutUrlContent(for: layoutId) { layoutUrlContent in
141
159
  guard let _ = layoutUrlContent else {
142
- rejecter("4", Errors.switchToNewLayoutMessage, nil)
160
+ rejecter(Errors.switchToNewLayoutMessage.code, Errors.switchToNewLayoutMessage.message, nil)
143
161
  return
144
162
  }
145
163
 
146
164
  applicationData.cellStylesUrlContent(for: layoutId) { cellStylesUrlContent in
147
165
  DispatchQueue.main.async {
148
166
  guard let _ = cellStylesUrlContent,
149
- self.saveLayoutId(id: layoutId)
167
+ self.saveActiveLayoutId(id: layoutId)
150
168
  else {
151
- rejecter("4", Errors.switchToNewLayoutMessage, nil)
169
+ rejecter(Errors.switchToNewLayoutMessage.code, Errors.switchToNewLayoutMessage.message, nil)
152
170
  return
153
171
  }
154
172
  resolver(true)
@@ -159,9 +177,8 @@ class AppLoaderBridge: NSObject, RCTBridgeModule {
159
177
 
160
178
  // get the current layout id
161
179
  @objc public func getCurrentLayoutId(_ resolve: @escaping RCTPromiseResolveBlock,
162
- rejecter: @escaping RCTPromiseRejectBlock)
163
- {
164
- guard let layoutId = getLayoutId() else {
180
+ rejecter: @escaping RCTPromiseRejectBlock) {
181
+ guard let layoutId = getActiveOrDefaultFallbackLayoutId() else {
165
182
  getDefaultLayoutId(resolve, rejecter: rejecter)
166
183
  return
167
184
  }
@@ -171,16 +188,20 @@ class AppLoaderBridge: NSObject, RCTBridgeModule {
171
188
 
172
189
  // get the defualt layout id
173
190
  @objc public func getDefaultLayoutId(_ resolve: @escaping RCTPromiseResolveBlock,
174
- rejecter: @escaping RCTPromiseRejectBlock)
175
- {
191
+ rejecter: @escaping RCTPromiseRejectBlock) {
192
+ if let cachedDefaultLayoutId = FacadeConnector.connector?.storage?.localStorageValue(for: Consts.defaultLayoutId, namespace: nil) {
193
+ resolve(cachedDefaultLayoutId)
194
+ return
195
+ }
196
+
176
197
  guard let applicationData = FacadeConnector.connector?.applicationData else {
177
- rejecter("2", Errors.canNotAccessAppData, nil)
198
+ rejecter(Errors.canNotAccessAppData.code, Errors.canNotAccessAppData.message, nil)
178
199
  return
179
200
  }
180
201
 
181
202
  let layoutId = applicationData.layoutId()
182
203
  guard layoutId.isEmpty == false else {
183
- rejecter("3", Errors.parameterDoesNotExist, nil)
204
+ rejecter(Errors.parameterDoesNotExist.code, Errors.parameterDoesNotExist.message, nil)
184
205
  return
185
206
  }
186
207
  resolve(layoutId)
@@ -188,14 +209,20 @@ class AppLoaderBridge: NSObject, RCTBridgeModule {
188
209
 
189
210
  // MARK: - Private Methods
190
211
 
191
- private func saveLayoutId(id: String) -> Bool {
192
- FacadeConnector.connector?.storage?.sessionStorageSetValue(for: Consts.currentLayoutId,
212
+ private func saveActiveLayoutId(id: String) -> Bool {
213
+ FacadeConnector.connector?.storage?.sessionStorageSetValue(for: Consts.activeLayoutId,
193
214
  value: id,
194
215
  namespace: nil) ?? false
195
216
  }
196
217
 
197
- private func getLayoutId() -> String? {
198
- FacadeConnector.connector?.storage?.sessionStorageValue(for: Consts.currentLayoutId,
199
- namespace: nil)
218
+ private func getActiveOrDefaultFallbackLayoutId() -> String? {
219
+ guard let layoutId = FacadeConnector.connector?.storage?.sessionStorageValue(for: Consts.activeLayoutId,
220
+ namespace: nil) ??
221
+ FacadeConnector.connector?.storage?.localStorageValue(for: Consts.defaultLayoutId,
222
+ namespace: nil) else {
223
+ logger?.errorLog(message: "getActiveOrDefaultFallbackLayoutId: Can not find active layout id or default layout id. Please check application configuration")
224
+ return nil
225
+ }
226
+ return layoutId
200
227
  }
201
228
  }
@@ -34,8 +34,7 @@ class LocalNotificationBridge: NSObject, RCTBridgeModule {
34
34
 
35
35
  @objc func cancelLocalNotifications(_ identifiers: [String]?,
36
36
  resolver: @escaping RCTPromiseResolveBlock,
37
- rejecter: @escaping RCTPromiseRejectBlock)
38
- {
37
+ rejecter: @escaping RCTPromiseRejectBlock) {
39
38
  guard let identifiers = identifiers else {
40
39
  rejecter(Errors.failedToCancelLocalNotifications,
41
40
  nil,
@@ -57,8 +56,7 @@ class LocalNotificationBridge: NSObject, RCTBridgeModule {
57
56
 
58
57
  @objc public func presentLocalNotification(_ payload: [AnyHashable: Any]?,
59
58
  resolver: @escaping RCTPromiseResolveBlock,
60
- rejecter: @escaping RCTPromiseRejectBlock)
61
- {
59
+ rejecter: @escaping RCTPromiseRejectBlock) {
62
60
  guard let payload = payload as [AnyHashable: Any]? else {
63
61
  return
64
62
  }
@@ -45,8 +45,7 @@ class OfflineAssetsBridge: NSObject, RCTBridgeModule {
45
45
  @objc public func storeFiles(_ filesList: [[String: Any]]?,
46
46
  options: [String: Any]?,
47
47
  resolver: @escaping RCTPromiseResolveBlock,
48
- rejecter: @escaping RCTPromiseRejectBlock)
49
- {
48
+ rejecter: @escaping RCTPromiseRejectBlock) {
50
49
  // Request Header configuration:
51
50
  let configuration = URLSessionConfiguration.default
52
51
  let session = URLSession(configuration: configuration)
@@ -67,8 +66,7 @@ class OfflineAssetsBridge: NSObject, RCTBridgeModule {
67
66
  files.forEach { item in
68
67
  if let urlString = item[Params.url] as? String,
69
68
  let url = URL(string: urlString),
70
- let filePath = item[Params.file] as? String
71
- {
69
+ let filePath = item[Params.file] as? String {
72
70
  let filePathUrl = URL(fileURLWithPath: filePath.replacingOccurrences(of: "file://", with: ""))
73
71
  let task = FetchTask(url: url,
74
72
  saveTo: filePathUrl,
@@ -92,8 +90,7 @@ class OfflineAssetsBridge: NSObject, RCTBridgeModule {
92
90
  }
93
91
 
94
92
  @objc public func getFilesDirectory(_ resolver: @escaping RCTPromiseResolveBlock,
95
- rejecter: @escaping RCTPromiseRejectBlock)
96
- {
93
+ rejecter: @escaping RCTPromiseRejectBlock) {
97
94
  let folderName = "OfflineAssets"
98
95
 
99
96
  if let folderUrl = FileManager.default.getContentFolder(appendingFolderName: folderName) {
@@ -107,8 +104,7 @@ class OfflineAssetsBridge: NSObject, RCTBridgeModule {
107
104
 
108
105
  @objc public func delete(_ path: String?,
109
106
  resolver: @escaping RCTPromiseResolveBlock,
110
- rejecter: @escaping RCTPromiseRejectBlock)
111
- {
107
+ rejecter: @escaping RCTPromiseRejectBlock) {
112
108
  var success = false
113
109
  let fileManager = FileManager.default
114
110
 
@@ -147,14 +143,12 @@ class OfflineAssetsBridge: NSObject, RCTBridgeModule {
147
143
  var retValue = [FetchTaskOption]()
148
144
 
149
145
  if let boolValue = options?["overrideExistingFiles"] as? Bool,
150
- boolValue == true
151
- {
146
+ boolValue == true {
152
147
  retValue.append(.overrideExistingFiles)
153
148
  }
154
149
 
155
150
  if let boolValue = options?["abortOnFail"] as? Bool,
156
- boolValue == true
157
- {
151
+ boolValue == true {
158
152
  retValue.append(.abortOnFail)
159
153
  }
160
154
 
@@ -43,8 +43,7 @@ class PluginsManagerBridge: NSObject, RCTBridgeModule {
43
43
 
44
44
  @objc public func isPluginEnabled(_ identifier: String?,
45
45
  resolver: @escaping RCTPromiseResolveBlock,
46
- rejecter: @escaping RCTPromiseRejectBlock)
47
- {
46
+ rejecter: @escaping RCTPromiseRejectBlock) {
48
47
  guard let identifier = identifier else {
49
48
  rejecter(Errors.noIdentifierCode,
50
49
  Errors.noIdentifierBody,
@@ -62,8 +61,7 @@ class PluginsManagerBridge: NSObject, RCTBridgeModule {
62
61
 
63
62
  @objc public func disablePlugin(_ identifier: String?,
64
63
  resolver: @escaping RCTPromiseResolveBlock,
65
- rejecter: @escaping RCTPromiseRejectBlock)
66
- {
64
+ rejecter: @escaping RCTPromiseRejectBlock) {
67
65
  guard let identifier = identifier else {
68
66
  rejecter(Errors.noIdentifierCode,
69
67
  Errors.noIdentifierBody,
@@ -83,8 +81,7 @@ class PluginsManagerBridge: NSObject, RCTBridgeModule {
83
81
 
84
82
  @objc public func disableAllPlugins(_ pluginType: String?,
85
83
  resolver: @escaping RCTPromiseResolveBlock,
86
- rejecter: @escaping RCTPromiseRejectBlock)
87
- {
84
+ rejecter: @escaping RCTPromiseRejectBlock) {
88
85
  guard let pluginType = pluginType else {
89
86
  rejecter(Errors.noTypeCode,
90
87
  Errors.noTypeBody,
@@ -105,8 +102,7 @@ class PluginsManagerBridge: NSObject, RCTBridgeModule {
105
102
 
106
103
  @objc public func enablePlugin(_ identifier: String?,
107
104
  resolver: @escaping RCTPromiseResolveBlock,
108
- rejecter: @escaping RCTPromiseRejectBlock)
109
- {
105
+ rejecter: @escaping RCTPromiseRejectBlock) {
110
106
  guard let identifier = identifier else {
111
107
  rejecter(Errors.noIdentifierCode,
112
108
  Errors.noIdentifierBody,
@@ -128,8 +124,7 @@ class PluginsManagerBridge: NSObject, RCTBridgeModule {
128
124
 
129
125
  @objc public func enableAllPlugins(_ pluginType: String?,
130
126
  resolver: @escaping RCTPromiseResolveBlock,
131
- rejecter: @escaping RCTPromiseRejectBlock)
132
- {
127
+ rejecter: @escaping RCTPromiseRejectBlock) {
133
128
  guard let pluginType = pluginType else {
134
129
  rejecter(Errors.noTypeCode,
135
130
  Errors.noTypeBody,
@@ -137,8 +137,7 @@ class ReactNativeCommunicationModule: NSObject, RCTBridgeModule {
137
137
 
138
138
  @objc func setAppLanguage(_ language: String?,
139
139
  resolver: @escaping RCTPromiseResolveBlock,
140
- rejecter: @escaping RCTPromiseRejectBlock)
141
- {
140
+ rejecter: @escaping RCTPromiseRejectBlock) {
142
141
  let storageKey = "forcedLanguageCode"
143
142
 
144
143
  guard let language = language else {
@@ -170,8 +169,7 @@ class ReactNativeCommunicationModule: NSObject, RCTBridgeModule {
170
169
 
171
170
  if storage.localStorageSetValue(for: storageKey,
172
171
  value: language,
173
- namespace: nil) == true
174
- {
172
+ namespace: nil) == true {
175
173
  resolver(true)
176
174
  } else {
177
175
  rejecter(ReactNativeCommunicationModuleError.errorCode,
@@ -12,8 +12,7 @@ import ZappCore
12
12
  extension ReactNativeManager: UIApplicationDelegate {
13
13
  public func application(_ app: UIApplication,
14
14
  open url: URL,
15
- options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool
16
- {
15
+ options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
17
16
  RCTLinkingManager.application(app,
18
17
  open: url,
19
18
  options: options)
@@ -58,8 +58,7 @@ open class ReactNativeManager: NSObject, UserInterfaceLayerProtocol, UserInterfa
58
58
  if reactNativePackagerRoot == "dev" ||
59
59
  reactNativePackagerRoot == "localhost" ||
60
60
  reactNativePackagerRoot == "localhost:8081" ||
61
- reactNativePackagerRoot.isIPv4WithPort
62
- {
61
+ reactNativePackagerRoot.isIPv4WithPort {
63
62
  retVal = true
64
63
  }
65
64
 
@@ -74,8 +73,7 @@ open class ReactNativeManager: NSObject, UserInterfaceLayerProtocol, UserInterfa
74
73
  // MARK: UserInterfaceLayerProtocol
75
74
 
76
75
  public required init(launchOptions: [UIApplication.LaunchOptionsKey: Any]?,
77
- applicationData: [String: Any] = [:])
78
- {
76
+ applicationData: [String: Any] = [:]) {
79
77
  super.init()
80
78
  self.launchOptions = launchOptions
81
79
 
@@ -46,8 +46,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
46
46
  /// - rejecter: rejecter when something fails
47
47
  @objc public func setItem(_ key: String?, value: String?, namespace: String?,
48
48
  resolver: @escaping RCTPromiseResolveBlock,
49
- rejecter: @escaping RCTPromiseRejectBlock)
50
- {
49
+ rejecter: @escaping RCTPromiseRejectBlock) {
51
50
  guard let key = key,
52
51
  let value = value,
53
52
  let storage = FacadeConnector.connector?.storage
@@ -58,8 +57,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
58
57
 
59
58
  if storage.localStorageSetValue(for: key,
60
59
  value: value,
61
- namespace: namespace) == true
62
- {
60
+ namespace: namespace) == true {
63
61
  resolver(true)
64
62
  } else {
65
63
  rejecter(Errors.errorCode, Errors.errorMessageSet, nil)
@@ -76,8 +74,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
76
74
  @objc public func getItem(_ key: String?,
77
75
  namespace: String?,
78
76
  resolver: @escaping RCTPromiseResolveBlock,
79
- rejecter: @escaping RCTPromiseRejectBlock)
80
- {
77
+ rejecter: @escaping RCTPromiseRejectBlock) {
81
78
  guard let key = key,
82
79
  let storage = FacadeConnector.connector?.storage
83
80
  else {
@@ -99,8 +96,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
99
96
  @objc public func removeItem(_ key: String?,
100
97
  namespace: String?,
101
98
  resolver: @escaping RCTPromiseResolveBlock,
102
- rejecter: @escaping RCTPromiseRejectBlock)
103
- {
99
+ rejecter: @escaping RCTPromiseRejectBlock) {
104
100
  guard let key = key,
105
101
  let storage = FacadeConnector.connector?.storage
106
102
  else {
@@ -121,8 +117,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
121
117
  /// - rejecter: rejecter when something fails
122
118
  @objc public func getAllItems(_ namespace: String?,
123
119
  resolver: @escaping RCTPromiseResolveBlock,
124
- rejecter: @escaping RCTPromiseRejectBlock)
125
- {
120
+ rejecter: @escaping RCTPromiseRejectBlock) {
126
121
  guard let storage = FacadeConnector.connector?.storage else {
127
122
  rejecter(Errors.errorCode, Errors.errorMessageGet, nil)
128
123
  return
@@ -144,8 +139,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
144
139
  value: String?,
145
140
  namespace: String?,
146
141
  resolver: @escaping RCTPromiseResolveBlock,
147
- rejecter: @escaping RCTPromiseRejectBlock)
148
- {
142
+ rejecter: @escaping RCTPromiseRejectBlock) {
149
143
  guard let key = key,
150
144
  let value = value,
151
145
  let storage = FacadeConnector.connector?.storage
@@ -156,8 +150,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
156
150
 
157
151
  if storage.keychainStorageSetValue(for: key,
158
152
  value: value,
159
- namespace: namespace) == true
160
- {
153
+ namespace: namespace) == true {
161
154
  resolver(true)
162
155
  } else {
163
156
  rejecter(Errors.errorCode, Errors.errorMessageSet, nil)
@@ -174,8 +167,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
174
167
  @objc public func getKeychainItem(_ key: String?,
175
168
  namespace: String?,
176
169
  resolver: @escaping RCTPromiseResolveBlock,
177
- rejecter: @escaping RCTPromiseRejectBlock)
178
- {
170
+ rejecter: @escaping RCTPromiseRejectBlock) {
179
171
  guard let key = key,
180
172
  let storage = FacadeConnector.connector?.storage
181
173
  else {
@@ -197,8 +189,7 @@ class LocalStorageBridge: NSObject, RCTBridgeModule {
197
189
  @objc public func removeKeychainItem(_ key: String?,
198
190
  namespace: String?,
199
191
  resolver: @escaping RCTPromiseResolveBlock,
200
- rejecter: @escaping RCTPromiseRejectBlock)
201
- {
192
+ rejecter: @escaping RCTPromiseRejectBlock) {
202
193
  guard let key = key,
203
194
  let storage = FacadeConnector.connector?.storage
204
195
  else {
@@ -46,8 +46,7 @@ class SessionStorageBridge: NSObject, RCTBridgeModule {
46
46
  /// - rejecter: rejecter when something fails
47
47
  @objc public func setItem(_ key: String?, value: String?, namespace: String?,
48
48
  resolver: @escaping RCTPromiseResolveBlock,
49
- rejecter: @escaping RCTPromiseRejectBlock)
50
- {
49
+ rejecter: @escaping RCTPromiseRejectBlock) {
51
50
  guard let key = key,
52
51
  let value = value,
53
52
  let storage = FacadeConnector.connector?.storage
@@ -58,8 +57,7 @@ class SessionStorageBridge: NSObject, RCTBridgeModule {
58
57
 
59
58
  if storage.sessionStorageSetValue(for: key,
60
59
  value: value,
61
- namespace: namespace) == true
62
- {
60
+ namespace: namespace) == true {
63
61
  resolver(true)
64
62
  } else {
65
63
  rejecter(Errors.errorCode, Errors.errorMessageSet, nil)
@@ -75,8 +73,7 @@ class SessionStorageBridge: NSObject, RCTBridgeModule {
75
73
  /// - rejecter: rejecter when something fails
76
74
  @objc public func getItem(_ key: String?, namespace: String?,
77
75
  resolver: @escaping RCTPromiseResolveBlock,
78
- rejecter: @escaping RCTPromiseRejectBlock)
79
- {
76
+ rejecter: @escaping RCTPromiseRejectBlock) {
80
77
  guard let key = key,
81
78
  let storage = FacadeConnector.connector?.storage
82
79
  else {
@@ -99,8 +96,7 @@ class SessionStorageBridge: NSObject, RCTBridgeModule {
99
96
  @objc public func removeItem(_ key: String?,
100
97
  namespace: String?,
101
98
  resolver: @escaping RCTPromiseResolveBlock,
102
- rejecter: @escaping RCTPromiseRejectBlock)
103
- {
99
+ rejecter: @escaping RCTPromiseRejectBlock) {
104
100
  guard let key = key,
105
101
  let storage = FacadeConnector.connector?.storage
106
102
  else {
@@ -121,8 +117,7 @@ class SessionStorageBridge: NSObject, RCTBridgeModule {
121
117
  /// - rejecter: rejecter when something fails
122
118
  @objc public func getAllItems(_ namespace: String?,
123
119
  resolver: @escaping RCTPromiseResolveBlock,
124
- rejecter: @escaping RCTPromiseRejectBlock)
125
- {
120
+ rejecter: @escaping RCTPromiseRejectBlock) {
126
121
  guard let storage = FacadeConnector.connector?.storage else {
127
122
  rejecter(Errors.errorCode, Errors.errorMessageGet, nil)
128
123
  return
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applicaster/quick-brick-native-apple",
3
- "version": "5.20.1",
3
+ "version": "5.20.3",
4
4
  "description": "iOS and tvOS native code for QuickBrick applications. This package is used to provide native logic for QuickBrick",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"