Bladeren bron

This fixes the logic for createSpotlightItem: when it's faced with an
MLShowEpisode

It is crashing, right now. This happens when several
video files get lumped into a tv show folder and the user tries to play
one of them, for example.
It also simplifies handling objects that aren't an MLFile, keeping the
behavior it already had.

Signed-off-by: Tobias Conradi <videolan@tobias-conradi.de>

Filipe Cabecinhas 9 jaren geleden
bovenliggende
commit
7fca7170aa
1 gewijzigde bestanden met toevoegingen van 10 en 8 verwijderingen
  1. 10 8
      Sources/VLCLibraryViewController.m

+ 10 - 8
Sources/VLCLibraryViewController.m

@@ -310,17 +310,19 @@ static NSString *kUsingTableViewToShowData = @"UsingTableViewToShowData";
 {
     if ([CSSearchableItemAttributeSet class] != nil && [(VLCAppDelegate *)[UIApplication sharedApplication].delegate passcodeValidated]) {
         self.userActivity = [[NSUserActivity alloc] initWithActivityType:kVLCUserActivityPlaying];
-        self.userActivity.title = ((MLFile *)mediaObject).title;
-        self.userActivity.userInfo = @{@"playingmedia":mediaObject.objectID.URIRepresentation};
+
+        MLFile *file = nil;
         if ([mediaObject isKindOfClass:[MLAlbumTrack class]]) {
-            MLFile *file = [(MLAlbumTrack *)mediaObject anyFileFromTrack];
-            self.userActivity.contentAttributeSet = file.coreSpotlightAttributeSet;
+            file = [(MLAlbumTrack *)mediaObject anyFileFromTrack];
         } else if ([mediaObject isKindOfClass:[MLShowEpisode class]]) {
-            MLFile *file = [(MLShowEpisode *)mediaObject anyFileFromEpisode];
-            self.userActivity.contentAttributeSet = file.coreSpotlightAttributeSet;
-        } else {
-            self.userActivity.contentAttributeSet = ((MLFile *)mediaObject).coreSpotlightAttributeSet;
+            file = [(MLShowEpisode *)mediaObject anyFileFromEpisode];
+        } else if ([mediaObject isKindOfClass:[MLFile class]]){
+            file = (MLFile *)mediaObject;
         }
+        self.userActivity.title = file.title;
+        self.userActivity.contentAttributeSet = file.coreSpotlightAttributeSet;
+        self.userActivity.userInfo = @{@"playingmedia":mediaObject.objectID.URIRepresentation};
+
         self.userActivity.eligibleForSearch = YES;
         self.userActivity.eligibleForHandoff = YES;
         //self.userActivity.contentUserAction = NSUserActivityContentUserActionPlay;