Initial commit
This commit is contained in:
		
							
								
								
									
										98
									
								
								LightshowManager/ViewController.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								LightshowManager/ViewController.swift
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| // | ||||
| //  ViewController.swift | ||||
| //  LightshowManager | ||||
| // | ||||
| //  Created by Quentin Millardet on 20/04/2024. | ||||
| // | ||||
|  | ||||
| import UIKit | ||||
| import os | ||||
|  | ||||
| class ViewController: UIViewController, UIDocumentPickerDelegate { | ||||
|      | ||||
|     var startingDirectory : URL? | ||||
|     var model : LightshowModel? | ||||
|      | ||||
|     override func viewDidLoad() { | ||||
|         super.viewDidLoad() | ||||
|         model = (UIApplication.shared.delegate as! AppDelegate).model | ||||
|  | ||||
|         // Do any additional setup after loading the view. | ||||
|     } | ||||
|  | ||||
|      | ||||
|     @IBAction func selectFolder(_ sender: Any) { | ||||
|      | ||||
|         // Create a document picker for directories. | ||||
|         let documentPicker = | ||||
|             UIDocumentPickerViewController(forOpeningContentTypes: [.folder]) | ||||
|         documentPicker.delegate = self | ||||
|  | ||||
|  | ||||
|         // Set the initial directory. | ||||
|         documentPicker.directoryURL = startingDirectory | ||||
|  | ||||
|  | ||||
|         // Present the document picker. | ||||
|         present(documentPicker, animated: true, completion: nil) | ||||
|     } | ||||
|      | ||||
|     func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) { | ||||
|         // Start accessing a security-scoped resource. | ||||
|         guard url.startAccessingSecurityScopedResource() else { | ||||
|             // Handle the failure here. | ||||
|             return | ||||
|         } | ||||
|  | ||||
|  | ||||
|         // Make sure you release the security-scoped resource when you finish. | ||||
|         defer { url.stopAccessingSecurityScopedResource() } | ||||
|  | ||||
|  | ||||
|         // Use file coordination for reading and writing any of the URL’s content. | ||||
|         var error: NSError? = nil | ||||
|         NSFileCoordinator().coordinate(readingItemAt: url, error: &error) { (url) in | ||||
|                  | ||||
|             let keys : [URLResourceKey] = [.nameKey, .isDirectoryKey] | ||||
|                  | ||||
|             // Get an enumerator for the directory's content. | ||||
|             guard let fileList = | ||||
|                 FileManager.default.enumerator(at: url, includingPropertiesForKeys: keys) else { | ||||
|                 Swift.debugPrint("*** Unable to access the contents of \(url.path) ***\n") | ||||
|                 return | ||||
|             } | ||||
|              | ||||
|             model?.resetStundent() | ||||
|                  | ||||
|             for case let file as URL in fileList { | ||||
|                  | ||||
|                  | ||||
|                 let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "network") | ||||
|                 logger.debug("chosen file: \(file.relativeString)") | ||||
|                  | ||||
|                 let filename = file.lastPathComponent; | ||||
|                  | ||||
|                 if (filename.contains(".mp3") || filename.contains(".fseq") ){ | ||||
|                     model?.setStudentAtIndex(model?.getStudentCount() ?? 0, withdraw: filename ) | ||||
|                 } | ||||
|                  | ||||
|                 // Start accessing the content's security-scoped URL. | ||||
|                 guard file.startAccessingSecurityScopedResource() else { | ||||
|                     logger.error("Not accessing Security Scoped Ressource") | ||||
|                     // Handle the failure here. | ||||
|                     continue | ||||
|                 } | ||||
|  | ||||
|  | ||||
|                 // Do something with the file here. | ||||
| //                Swift.debugPrint("chosen file: \(file.lastPathComponent)") | ||||
|                      | ||||
|                 // Make sure you release the security-scoped resource when you finish. | ||||
|                 file.stopAccessingSecurityScopedResource() | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|  | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user