Selaa lähdekoodia

VLCEmbeddedDialogProvider: fix runtime exception on iOS/tvOS 11

(cherry picked from commit becb3cb08f6764bd09a2eca6c1bf3a1ebc5c3280)
Felix Paul Kühne 7 vuotta sitten
vanhempi
commit
053cd0c4ec
1 muutettua tiedostoa jossa 10 lisäystä ja 1 poistoa
  1. 10 1
      Sources/VLCEmbeddedDialogProvider.m

+ 10 - 1
Sources/VLCEmbeddedDialogProvider.m

@@ -36,6 +36,7 @@
 - (void)displayQuestion:(NSArray * _Nonnull)dialogData;
 - (void)displayProgressDialog:(NSArray * _Nonnull)dialogData;
 - (void)updateDisplayedProgressDialog:(NSArray * _Nonnull)dialogData;
+- (void)dismissCurrentDialogViewController;
 
 @end
 
@@ -119,7 +120,10 @@ static void cancelCallback(void *p_data,
                            libvlc_dialog_id *p_id)
 {
     @autoreleasepool {
-        [[[[UIApplication sharedApplication].delegate.window rootViewController] presentedViewController] dismissViewControllerAnimated:YES completion:nil];
+        VLCEmbeddedDialogProvider *dialogProvider = (__bridge VLCEmbeddedDialogProvider *)p_data;
+        [dialogProvider performSelectorOnMainThread:@selector(dismissCurrentDialogViewController)
+                                         withObject:nil
+                                      waitUntilDone:NO];
     }
 }
 
@@ -302,4 +306,9 @@ static void updateProgressCallback(void *p_data,
     VKLog(@"%s: %@", __PRETTY_FUNCTION__, dialogData);
 }
 
+- (void)dismissCurrentDialogViewController
+{
+    [[[[UIApplication sharedApplication].delegate.window rootViewController] presentedViewController] dismissViewControllerAnimated:YES completion:nil];
+}
+
 @end