Browse Source

CollectionViewController: Adapt Models to SortModel

Carola Nitz 6 years ago
parent
commit
6ca292501a

+ 4 - 0
SharedSources/MediaLibraryModel/AlbumModel.swift

@@ -64,6 +64,10 @@ extension AlbumModel: MediaLibraryObserver {
 }
 }
 
 
 extension VLCMLAlbum: MediaCollectionModel {
 extension VLCMLAlbum: MediaCollectionModel {
+    func sortModel() -> SortModel? {
+        return nil
+    }
+
     func files() -> [VLCMLMedia] {
     func files() -> [VLCMLMedia] {
         return tracks
         return tracks
     }
     }

+ 5 - 0
SharedSources/MediaLibraryModel/ArtistModel.swift

@@ -63,6 +63,11 @@ extension ArtistModel: MediaLibraryObserver {
 }
 }
 
 
 extension VLCMLArtist: MediaCollectionModel {
 extension VLCMLArtist: MediaCollectionModel {
+
+    func sortModel() -> SortModel? {
+        return SortModel([.alpha])
+    }
+
     func files() -> [VLCMLMedia] {
     func files() -> [VLCMLMedia] {
         return []
         return []
     }
     }

+ 2 - 0
SharedSources/MediaLibraryModel/CollectionModel.swift

@@ -9,6 +9,7 @@
 import Foundation
 import Foundation
 
 
 class CollectionModel: MLBaseModel {
 class CollectionModel: MLBaseModel {
+    var sortModel: SortModel
 
 
     typealias MLType = VLCMLMedia // could be anything
     typealias MLType = VLCMLMedia // could be anything
     required init(medialibrary: MediaLibraryService) {
     required init(medialibrary: MediaLibraryService) {
@@ -18,6 +19,7 @@ class CollectionModel: MLBaseModel {
     required init(mediaService: MediaLibraryService, mediaCollection: MediaCollectionModel) {
     required init(mediaService: MediaLibraryService, mediaCollection: MediaCollectionModel) {
         self.medialibrary = mediaService
         self.medialibrary = mediaService
         files = mediaCollection.files()
         files = mediaCollection.files()
+        sortModel = mediaCollection.sortModel() ?? SortModel([.default])
     }
     }
 
 
     func append(_ item: VLCMLMedia) {
     func append(_ item: VLCMLMedia) {

+ 4 - 0
SharedSources/MediaLibraryModel/GenreModel.swift

@@ -73,6 +73,10 @@ extension VLCMLGenre {
 }
 }
 
 
 extension VLCMLGenre: MediaCollectionModel {
 extension VLCMLGenre: MediaCollectionModel {
+    func sortModel() -> SortModel? {
+        return SortModel([.alpha])
+    }
+
     func files() -> [VLCMLMedia] {
     func files() -> [VLCMLMedia] {
         return []
         return []
     }
     }

+ 1 - 0
SharedSources/MediaLibraryModel/MediaLibraryBaseModel.swift

@@ -72,4 +72,5 @@ protocol EditableMLModel {
 
 
 protocol MediaCollectionModel {
 protocol MediaCollectionModel {
     func files() -> [VLCMLMedia]
     func files() -> [VLCMLMedia]
+    func sortModel() -> SortModel?
 }
 }

+ 4 - 0
SharedSources/MediaLibraryModel/PlaylistModel.swift

@@ -89,6 +89,10 @@ extension VLCMLPlaylist {
 }
 }
 
 
 extension VLCMLPlaylist: MediaCollectionModel {
 extension VLCMLPlaylist: MediaCollectionModel {
+    func sortModel() -> SortModel? {
+        return nil
+    }
+
     func files() -> [VLCMLMedia] {
     func files() -> [VLCMLMedia] {
         return media
         return media
     }
     }

+ 2 - 1
VLC.xcodeproj/project.pbxproj

@@ -17,7 +17,6 @@
 		411453B9219C48DA002D94E1 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 411453B8219C48DA002D94E1 /* Launch Screen.storyboard */; };
 		411453B9219C48DA002D94E1 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 411453B8219C48DA002D94E1 /* Launch Screen.storyboard */; };
 		411DC0FD20F650B10044305E /* VLCMediaSubcategory+VLCDragAndDrop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BE7521FC4947400ACCC42 /* VLCMediaSubcategory+VLCDragAndDrop.swift */; };
 		411DC0FD20F650B10044305E /* VLCMediaSubcategory+VLCDragAndDrop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BE7521FC4947400ACCC42 /* VLCMediaSubcategory+VLCDragAndDrop.swift */; };
 		412086362231FE43006A6630 /* UIViewController+VLCAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EABFB1BE14C4B003668DA /* UIViewController+VLCAlert.m */; };
 		412086362231FE43006A6630 /* UIViewController+VLCAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EABFB1BE14C4B003668DA /* UIViewController+VLCAlert.m */; };
-		4120863A22323E87006A6630 /* CollectionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4120863922323E87006A6630 /* CollectionModel.swift */; };
 		41251ED01FD0CF7900099110 /* AppCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41251ECE1FD0CF7900099110 /* AppCoordinator.swift */; };
 		41251ED01FD0CF7900099110 /* AppCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41251ECE1FD0CF7900099110 /* AppCoordinator.swift */; };
 		41273A3C1A955C4100A2EF77 /* VLCMigrationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 41273A3A1A955C4100A2EF77 /* VLCMigrationViewController.m */; };
 		41273A3C1A955C4100A2EF77 /* VLCMigrationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 41273A3A1A955C4100A2EF77 /* VLCMigrationViewController.m */; };
 		41273A3D1A955C4100A2EF77 /* VLCMigrationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41273A3B1A955C4100A2EF77 /* VLCMigrationViewController.xib */; };
 		41273A3D1A955C4100A2EF77 /* VLCMigrationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41273A3B1A955C4100A2EF77 /* VLCMigrationViewController.xib */; };
@@ -57,6 +56,7 @@
 		419A2C661F37A4B70069D224 /* VLCStringsForLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 419A2C651F37A4B70069D224 /* VLCStringsForLocalization.m */; };
 		419A2C661F37A4B70069D224 /* VLCStringsForLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 419A2C651F37A4B70069D224 /* VLCStringsForLocalization.m */; };
 		419A2C681F37A4B70069D224 /* VLCStringsForLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 419A2C651F37A4B70069D224 /* VLCStringsForLocalization.m */; };
 		419A2C681F37A4B70069D224 /* VLCStringsForLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 419A2C651F37A4B70069D224 /* VLCStringsForLocalization.m */; };
 		419D7F051F54176900AF69A2 /* VLCTimeNavigationTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D7F041F54176900AF69A2 /* VLCTimeNavigationTitleView.xib */; };
 		419D7F051F54176900AF69A2 /* VLCTimeNavigationTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D7F041F54176900AF69A2 /* VLCTimeNavigationTitleView.xib */; };
+		41A780E52241EBCD0034BA74 /* CollectionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4120863922323E87006A6630 /* CollectionModel.swift */; };
 		41B4DA3E21400E8E000BA27D /* MediaEditCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41B4DA3D21400E8E000BA27D /* MediaEditCell.xib */; };
 		41B4DA3E21400E8E000BA27D /* MediaEditCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41B4DA3D21400E8E000BA27D /* MediaEditCell.xib */; };
 		41B93C011A53833B00102E8B /* VLCProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B93C001A53833B00102E8B /* VLCProgressView.m */; };
 		41B93C011A53833B00102E8B /* VLCProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B93C001A53833B00102E8B /* VLCProgressView.m */; };
 		41B93C051A53835300102E8B /* VLCCloudServiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B93C031A53835300102E8B /* VLCCloudServiceCell.m */; };
 		41B93C051A53835300102E8B /* VLCCloudServiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B93C031A53835300102E8B /* VLCCloudServiceCell.m */; };
@@ -2957,6 +2957,7 @@
 				8D43712D2056AF1600F36458 /* VLCRendererDiscovererManager.swift in Sources */,
 				8D43712D2056AF1600F36458 /* VLCRendererDiscovererManager.swift in Sources */,
 				7DC19AE41868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.m in Sources */,
 				7DC19AE41868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.m in Sources */,
 				7D3784AD183A9906009EE944 /* VLCDropboxController.m in Sources */,
 				7D3784AD183A9906009EE944 /* VLCDropboxController.m in Sources */,
+				41A780E52241EBCD0034BA74 /* CollectionModel.swift in Sources */,
 				7D3784AE183A9906009EE944 /* VLCDropboxTableViewController.m in Sources */,
 				7D3784AE183A9906009EE944 /* VLCDropboxTableViewController.m in Sources */,
 				7D3784BE183A9938009EE944 /* UIBarButtonItem+Theme.m in Sources */,
 				7D3784BE183A9938009EE944 /* UIBarButtonItem+Theme.m in Sources */,
 				DD3EFF3B1BDEBCE500B68579 /* VLCNetworkServerBrowserVLCMedia.m in Sources */,
 				DD3EFF3B1BDEBCE500B68579 /* VLCNetworkServerBrowserVLCMedia.m in Sources */,