Browse Source

library view controller: return early and don't set the activity if MLKit fails to provide a media URI description

(cherry picked from commit d43effa97ca0d729d5752130e072af2399f254e4)
Felix Paul Kühne 7 years ago
parent
commit
f2095690a0
1 changed files with 7 additions and 6 deletions
  1. 7 6
      Sources/VLCLibraryViewController.m

+ 7 - 6
Sources/VLCLibraryViewController.m

@@ -353,6 +353,11 @@ static NSString *kUsingTableViewToShowData = @"UsingTableViewToShowData";
 - (void)createSpotlightItem:(nonnull NSManagedObject *)mediaObject
 {
     if (![VLCKeychainCoordinator passcodeLockEnabled]) {
+        NSURL *uriRepresentation = mediaObject.objectID.URIRepresentation;
+        if (uriRepresentation == nil) {
+            return;
+        }
+
         self.userActivity = [[NSUserActivity alloc] initWithActivityType:kVLCUserActivityPlaying];
 
         MLFile *file = nil;
@@ -363,14 +368,10 @@ static NSString *kUsingTableViewToShowData = @"UsingTableViewToShowData";
         } else if ([mediaObject isKindOfClass:[MLFile class]]){
             file = (MLFile *)mediaObject;
         }
+
         self.userActivity.title = file.title;
         self.userActivity.contentAttributeSet = file.coreSpotlightAttributeSet;
-
-        NSURL *uriRepresentation = mediaObject.objectID.URIRepresentation;
-        if (uriRepresentation != nil) {
-            self.userActivity.userInfo = @{ @"playingmedia": uriRepresentation};
-        }
-
+        self.userActivity.userInfo = @{ @"playingmedia": uriRepresentation};
         self.userActivity.eligibleForSearch = YES;
         self.userActivity.eligibleForHandoff = YES;
         [self.userActivity becomeCurrent];