Sfoglia il codice sorgente

forward-port state restoration fixes from the 2.6 branch

Felix Paul Kühne 10 anni fa
parent
commit
23dba31c57

+ 4 - 0
Sources/VLCAppDelegate.m

@@ -382,6 +382,8 @@ didFailToContinueUserActivityWithType:(NSString *)userActivityType
 {
     _passcodeValidated = YES;
     [self.playlistViewController updateViewContents];
+    if ([VLCPlaybackController sharedInstance].isPlaying)
+        [_playerDisplayController pushPlaybackView];
 }
 
 - (BOOL)passcodeValidated
@@ -394,6 +396,8 @@ didFailToContinueUserActivityWithType:(NSString *)userActivityType
     VLCKeychainCoordinator *keychainCoordinator = [VLCKeychainCoordinator defaultCoordinator];
 
     if (!_passcodeValidated && [keychainCoordinator passcodeLockEnabled]) {
+        [_playerDisplayController dismissPlaybackView];
+
         [keychainCoordinator validatePasscode];
     } else
         _passcodeValidated = YES;

+ 9 - 4
Sources/VLCMiniPlaybackView.m

@@ -111,10 +111,15 @@
     [_artworkView addGestureRecognizer:_artworkTapRecognizer];
     _artworkView.userInteractionEnabled = YES;
 
-    [[NSNotificationCenter defaultCenter] addObserver:self
-                                             selector:@selector(appBecameActive:)
-                                                 name:UIApplicationDidBecomeActiveNotification
-                                               object:nil];
+    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
+    [center addObserver:self
+               selector:@selector(appBecameActive:)
+                   name:UIApplicationDidBecomeActiveNotification
+                 object:nil];
+    [center addObserver:self
+               selector:@selector(appBecameActive:)
+                   name:VLCPasscodeValidated
+                 object:nil];
 
     return self;
 }

+ 3 - 0
Sources/VLCPlayerDisplayController.h

@@ -26,4 +26,7 @@ typedef NS_ENUM(NSUInteger, VLCPlayerDisplayControllerDisplayMode) {
 - (void)showFullscreenPlayback;
 - (void)closeFullscreenPlayback;
 
+- (void)pushPlaybackView;
+- (void)dismissPlaybackView;
+
 @end

+ 13 - 0
Sources/VLCPlayerDisplayController.m

@@ -162,6 +162,19 @@ static inline void commonSetup(VLCPlayerDisplayController *self)
     return [[UIApplication sharedApplication] applicationState] != UIApplicationStateBackground;
 }
 
+- (void)pushPlaybackView
+{
+    switch (self.displayMode) {
+        case VLCPlayerDisplayControllerDisplayModeFullscreen:
+            [self _presentFullscreenPlaybackViewIfNeeded];
+            break;
+        case VLCPlayerDisplayControllerDisplayModeMiniplayer:
+            [self _showHideMiniPlaybackView];
+        default:
+            break;
+    }
+}
+
 - (void)dismissPlaybackView
 {
     switch (self.displayMode) {