Selaa lähdekoodia

add list repeat mode

(cherry picked from commit c47362923b577e2a33f59f5309847327af42c09b)
Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
Tobias Conradi 10 vuotta sitten
vanhempi
commit
e7066b9623

+ 13 - 7
Sources/VLCMovieViewController.m

@@ -1127,14 +1127,20 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
     LOCKCHECK;
 
     VLCMediaListPlayer *listPlayer = self.playbackController.listPlayer;
-
-    if (listPlayer.repeatMode == VLCDoNotRepeat) {
-        listPlayer.repeatMode = VLCRepeatCurrentItem;
-        _multiSelectionView.displayRepeatOne = YES;
-    } else {
-        listPlayer.repeatMode = VLCDoNotRepeat;
-        _multiSelectionView.displayRepeatOne = NO;
+    VLCRepeatMode nextRepeatMode = VLCDoNotRepeat;
+    switch (listPlayer.repeatMode) {
+        case VLCDoNotRepeat:
+            nextRepeatMode = VLCRepeatCurrentItem;
+            break;
+        case VLCRepeatCurrentItem:
+            nextRepeatMode = VLCRepeatAllItems;
+            break;
+        default:
+            nextRepeatMode = VLCDoNotRepeat;
+            break;
     }
+    listPlayer.repeatMode = nextRepeatMode;
+    _multiSelectionView.repeatMode = nextRepeatMode;
 }
 
 - (void)toggleShuffleMode

+ 2 - 1
Sources/VLCMultiSelectionMenuView.h

@@ -27,7 +27,8 @@
 @property (readwrite, assign) BOOL showsEqualizer;
 @property (readwrite, assign) BOOL mediaHasChapters;
 
-- (void)setDisplayRepeatOne:(BOOL)displayRepeatOne;
+@property (nonatomic, assign) VLCRepeatMode repeatMode;
+
 - (void)setDisplayLock:(BOOL)displayLock;
 - (void)setDisplayShuffle:(BOOL)displayShuffle;
 - (CGSize)proposedDisplaySize;

+ 14 - 5
Sources/VLCMultiSelectionMenuView.m

@@ -152,12 +152,21 @@
     return CGSizeMake(spacer + buttonWidth + spacer, height);
 }
 
-- (void)setDisplayRepeatOne:(BOOL)displayRepeatOne
+- (void)setRepeatMode:(VLCRepeatMode)repeatMode
 {
-    if (displayRepeatOne)
-        [_repeatButton setImage:[UIImage imageNamed:@"repeatOne"] forState:UIControlStateNormal];
-    else
-        [_repeatButton setImage:[UIImage imageNamed:@"repeat"] forState:UIControlStateNormal];
+    _repeatMode = repeatMode;
+    switch (repeatMode) {
+        case VLCRepeatCurrentItem:
+            [_repeatButton setImage:[UIImage imageNamed:@"repeatOne"] forState:UIControlStateNormal];
+            break;
+        case VLCRepeatAllItems:
+            [_repeatButton setImage:[UIImage imageNamed:@"repeatList"] forState:UIControlStateNormal];
+            break;
+        case VLCDoNotRepeat:
+        default:
+            [_repeatButton setImage:[UIImage imageNamed:@"repeat"] forState:UIControlStateNormal];
+            break;
+    }
 }
 
 - (void)setDisplayLock:(BOOL)displayLock

+ 23 - 0
vlc-ios/Images.xcassets/Movie View/repeatList.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x",
+      "filename" : "repeatList.png"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x",
+      "filename" : "repeatList@2x.png"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x",
+      "filename" : "repeatList@3x.png"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
vlc-ios/Images.xcassets/Movie View/repeatList.imageset/repeatList.png


BIN
vlc-ios/Images.xcassets/Movie View/repeatList.imageset/repeatList@2x.png


BIN
vlc-ios/Images.xcassets/Movie View/repeatList.imageset/repeatList@3x.png