Skip to content

Commit e7af55e

Browse files
committed
f
1 parent c74a4e7 commit e7af55e

3 files changed

Lines changed: 28 additions & 7 deletions

File tree

Sora/Utlis & Misc/Extensions/JavaScriptCore+Extensions.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,20 @@ extension JSContext {
195195

196196
let callReject: (String) -> Void = { message in
197197
DispatchQueue.main.async {
198-
reject.call(withArguments: [message])
198+
if !reject.isUndefined {
199+
reject.call(withArguments: [message])
200+
} else {
201+
Logger.shared.log("Reject callback is undefined", type: "Error")
202+
}
199203
}
200204
}
201205
let callResolve: ([String: Any]) -> Void = { dict in
202206
DispatchQueue.main.async {
203-
resolve.call(withArguments: [dict])
207+
if !resolve.isUndefined {
208+
resolve.call(withArguments: [dict])
209+
} else {
210+
Logger.shared.log("Resolve callback is undefined", type: "Error")
211+
}
204212
}
205213
}
206214

Sora/Utlis & Misc/JSLoader/JSController-Details.swift

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,12 @@ extension JSController {
100100
guard let promiseDetails = promiseValueDetails else {
101101
Logger.shared.log("extractDetails did not return a Promise", type: "Error")
102102
detailsGroupQueue.sync {
103-
guard !hasLeftDetailsGroup else { return }
103+
guard !hasLeftDetailsGroup else {
104+
Logger.shared.log("extractDetails: guard block called but group already left", type: "Debug")
105+
return
106+
}
104107
hasLeftDetailsGroup = true
108+
Logger.shared.log("Leaving dispatch group due to nil promise (details)", type: "Debug")
105109
dispatchGroup.leave()
106110
}
107111
completion([], [])
@@ -136,6 +140,7 @@ extension JSController {
136140
} else {
137141
Logger.shared.log("Result is not a string of extractDetails", type: "Error")
138142
}
143+
Logger.shared.log("Leaving dispatch group from details thenBlock", type: "Debug")
139144
dispatchGroup.leave()
140145
}
141146
}
@@ -149,6 +154,7 @@ extension JSController {
149154
hasLeftDetailsGroup = true
150155

151156
Logger.shared.log("Promise rejected of extractDetails: \(String(describing: error.toString()))", type: "Error")
157+
Logger.shared.log("Leaving dispatch group from details catchBlock", type: "Debug")
152158
dispatchGroup.leave()
153159
}
154160
}
@@ -173,6 +179,7 @@ extension JSController {
173179
return
174180
}
175181
hasLeftEpisodesGroup = true
182+
Logger.shared.log("Leaving dispatch group due to timeout", type: "Debug")
176183
dispatchGroup.leave()
177184
}
178185
}
@@ -182,8 +189,12 @@ extension JSController {
182189
Logger.shared.log("extractEpisodes did not return a Promise", type: "Error")
183190
timeoutWorkItem.cancel()
184191
episodesGroupQueue.sync {
185-
guard !hasLeftEpisodesGroup else { return }
192+
guard !hasLeftEpisodesGroup else {
193+
Logger.shared.log("extractEpisodes: guard block called but group already left", type: "Debug")
194+
return
195+
}
186196
hasLeftEpisodesGroup = true
197+
Logger.shared.log("Leaving dispatch group due to nil promise", type: "Debug")
187198
dispatchGroup.leave()
188199
}
189200
completion([], [])
@@ -220,6 +231,7 @@ extension JSController {
220231
} else {
221232
Logger.shared.log("Result is not a string of extractEpisodes", type: "Error")
222233
}
234+
Logger.shared.log("Leaving dispatch group from thenBlock", type: "Debug")
223235
dispatchGroup.leave()
224236
}
225237
}
@@ -234,6 +246,7 @@ extension JSController {
234246
hasLeftEpisodesGroup = true
235247

236248
Logger.shared.log("Promise rejected of extractEpisodes: \(String(describing: error.toString()))", type: "Error")
249+
Logger.shared.log("Leaving dispatch group from catchBlock", type: "Debug")
237250
dispatchGroup.leave()
238251
}
239252
}

Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,10 +305,10 @@ struct SettingsViewPlayer: View {
305305
}
306306

307307
SettingsSection(title: NSLocalizedString("Progress bar Marker Color", comment: "")) {
308-
ColorPicker(NSLocalizedString("Segments Color", comment: ""), selection: Binding(
308+
ColorPicker(NSLocalizedString("Segments Color", comment: ""), selection: Binding<Color>(
309309
get: {
310310
if let data = UserDefaults.standard.data(forKey: "segmentsColorData"),
311-
let uiColor = try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? UIColor {
311+
let uiColor = try? NSKeyedUnarchiver.unarchivedObject(ofClass: UIColor.self, from: data) {
312312
return Color(uiColor)
313313
}
314314
return .yellow
@@ -322,7 +322,7 @@ struct SettingsViewPlayer: View {
322322
UserDefaults.standard.set(data, forKey: "segmentsColorData")
323323
}
324324
}
325-
))
325+
), supportsOpacity: false)
326326
.padding(.horizontal, 16)
327327
.padding(.vertical, 12)
328328
}

0 commit comments

Comments
 (0)