f
Some checks are pending
Build and Release / Build IPA (push) Waiting to run
Build and Release / Build Mac Catalyst (push) Waiting to run

This commit is contained in:
cranci1 2025-07-15 11:08:06 +02:00
parent c74a4e736e
commit e7af55e4ed
3 changed files with 28 additions and 7 deletions

View file

@ -195,12 +195,20 @@ extension JSContext {
let callReject: (String) -> Void = { message in
DispatchQueue.main.async {
reject.call(withArguments: [message])
if !reject.isUndefined {
reject.call(withArguments: [message])
} else {
Logger.shared.log("Reject callback is undefined", type: "Error")
}
}
}
let callResolve: ([String: Any]) -> Void = { dict in
DispatchQueue.main.async {
resolve.call(withArguments: [dict])
if !resolve.isUndefined {
resolve.call(withArguments: [dict])
} else {
Logger.shared.log("Resolve callback is undefined", type: "Error")
}
}
}

View file

@ -100,8 +100,12 @@ extension JSController {
guard let promiseDetails = promiseValueDetails else {
Logger.shared.log("extractDetails did not return a Promise", type: "Error")
detailsGroupQueue.sync {
guard !hasLeftDetailsGroup else { return }
guard !hasLeftDetailsGroup else {
Logger.shared.log("extractDetails: guard block called but group already left", type: "Debug")
return
}
hasLeftDetailsGroup = true
Logger.shared.log("Leaving dispatch group due to nil promise (details)", type: "Debug")
dispatchGroup.leave()
}
completion([], [])
@ -136,6 +140,7 @@ extension JSController {
} else {
Logger.shared.log("Result is not a string of extractDetails", type: "Error")
}
Logger.shared.log("Leaving dispatch group from details thenBlock", type: "Debug")
dispatchGroup.leave()
}
}
@ -149,6 +154,7 @@ extension JSController {
hasLeftDetailsGroup = true
Logger.shared.log("Promise rejected of extractDetails: \(String(describing: error.toString()))", type: "Error")
Logger.shared.log("Leaving dispatch group from details catchBlock", type: "Debug")
dispatchGroup.leave()
}
}
@ -173,6 +179,7 @@ extension JSController {
return
}
hasLeftEpisodesGroup = true
Logger.shared.log("Leaving dispatch group due to timeout", type: "Debug")
dispatchGroup.leave()
}
}
@ -182,8 +189,12 @@ extension JSController {
Logger.shared.log("extractEpisodes did not return a Promise", type: "Error")
timeoutWorkItem.cancel()
episodesGroupQueue.sync {
guard !hasLeftEpisodesGroup else { return }
guard !hasLeftEpisodesGroup else {
Logger.shared.log("extractEpisodes: guard block called but group already left", type: "Debug")
return
}
hasLeftEpisodesGroup = true
Logger.shared.log("Leaving dispatch group due to nil promise", type: "Debug")
dispatchGroup.leave()
}
completion([], [])
@ -220,6 +231,7 @@ extension JSController {
} else {
Logger.shared.log("Result is not a string of extractEpisodes", type: "Error")
}
Logger.shared.log("Leaving dispatch group from thenBlock", type: "Debug")
dispatchGroup.leave()
}
}
@ -234,6 +246,7 @@ extension JSController {
hasLeftEpisodesGroup = true
Logger.shared.log("Promise rejected of extractEpisodes: \(String(describing: error.toString()))", type: "Error")
Logger.shared.log("Leaving dispatch group from catchBlock", type: "Debug")
dispatchGroup.leave()
}
}

View file

@ -305,10 +305,10 @@ struct SettingsViewPlayer: View {
}
SettingsSection(title: NSLocalizedString("Progress bar Marker Color", comment: "")) {
ColorPicker(NSLocalizedString("Segments Color", comment: ""), selection: Binding(
ColorPicker(NSLocalizedString("Segments Color", comment: ""), selection: Binding<Color>(
get: {
if let data = UserDefaults.standard.data(forKey: "segmentsColorData"),
let uiColor = try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? UIColor {
let uiColor = try? NSKeyedUnarchiver.unarchivedObject(ofClass: UIColor.self, from: data) {
return Color(uiColor)
}
return .yellow
@ -322,7 +322,7 @@ struct SettingsViewPlayer: View {
UserDefaults.standard.set(data, forKey: "segmentsColorData")
}
}
))
), supportsOpacity: false)
.padding(.horizontal, 16)
.padding(.vertical, 12)
}