@@ -221,9 +221,7 @@ class OutOfTimeViewController: UIViewController, RootContainment {
221
221
222
222
default :
223
223
errorPresenter. showAlertForError ( paymentFailure. error, context: . purchase) {
224
- MainActor . assumeIsolated {
225
- self . paymentState = . none
226
- }
224
+ self . paymentState = . none
227
225
}
228
226
}
229
227
}
@@ -253,30 +251,23 @@ class OutOfTimeViewController: UIViewController, RootContainment {
253
251
254
252
paymentState = . restoringPurchases
255
253
254
+ /// Safe to assume `@MainActor` isolation because `SendStoreReceiptOperation` sets both its
255
+ /// `dispatchQueue` and `completionQueue` to `.main`
256
256
_ = interactor. restorePurchases ( for: accountData. number) { [ weak self] result in
257
257
guard let self else { return }
258
-
259
- switch result {
260
- case let . success( response) :
261
- Task { @MainActor in
258
+ MainActor . assumeIsolated {
259
+ switch result {
260
+ case let . success( response) :
262
261
errorPresenter. showAlertForResponse ( response, context: . restoration) {
263
- MainActor . assumeIsolated {
264
- self . paymentState = . none
265
- }
262
+ self . paymentState = . none
266
263
}
267
- }
268
264
269
- case let . failure( error as StorePaymentManagerError ) :
270
- Task { @MainActor in
265
+ case let . failure( error as StorePaymentManagerError ) :
271
266
errorPresenter. showAlertForError ( error, context: . restoration) {
272
- MainActor . assumeIsolated {
273
- self . paymentState = . none
274
- }
267
+ self . paymentState = . none
275
268
}
276
- }
277
269
278
- default :
279
- Task { @MainActor in
270
+ default :
280
271
paymentState = . none
281
272
}
282
273
}
0 commit comments