|
|
@ -8,10 +8,12 @@ |
|
|
|
|
|
|
|
|
import UIKit |
|
|
import UIKit |
|
|
import Alamofire |
|
|
import Alamofire |
|
|
|
|
|
import FileBrowser |
|
|
|
|
|
|
|
|
protocol DetailDelegate { |
|
|
protocol DetailDelegate { |
|
|
func loadDetails(selectedItem: MediaItem, completionHandler: @escaping () -> Void) |
|
|
func loadDetails(selectedItem: MediaItem, completionHandler: @escaping () -> Void) |
|
|
func deleteThumb(selectedItem: MediaItem) |
|
|
func deleteThumb(selectedItem: MediaItem) |
|
|
|
|
|
func deleteLocal(selectedItem: MediaItem) |
|
|
func saveItem(selectedItem: MediaItem) |
|
|
func saveItem(selectedItem: MediaItem) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -83,12 +85,21 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout |
|
|
let overviewButton = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(overview)); |
|
|
let overviewButton = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(overview)); |
|
|
let favButton = UIBarButtonItem(barButtonSystemItem: .bookmarks, target: self, action: #selector(favorites)); |
|
|
let favButton = UIBarButtonItem(barButtonSystemItem: .bookmarks, target: self, action: #selector(favorites)); |
|
|
let vidButton = UIBarButtonItem(barButtonSystemItem: .play, target: self, action: #selector(vplayer)); |
|
|
let vidButton = UIBarButtonItem(barButtonSystemItem: .play, target: self, action: #selector(vplayer)); |
|
|
navigationItem.rightBarButtonItems = [vidButton, favButton, overviewButton] |
|
|
|
|
|
|
|
|
let browserButton = UIBarButtonItem(barButtonSystemItem: .organize, target: self, action: #selector(fileBrowser)); |
|
|
|
|
|
navigationItem.rightBarButtonItems = [vidButton, favButton, overviewButton,browserButton] |
|
|
if detailItem != nil { |
|
|
if detailItem != nil { |
|
|
print("Details \(detailItem!.children)") |
|
|
print("Details \(detailItem!.children)") |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// https://github.com/marmelroy/FileBrowser |
|
|
|
|
|
@objc func fileBrowser() { |
|
|
|
|
|
let d = FileHelper.getDocumentsDirectory() |
|
|
|
|
|
let fileBrowser = FileBrowser(initialPath: d, allowEditing: true) |
|
|
|
|
|
|
|
|
|
|
|
present(fileBrowser, animated: true, completion: nil) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@objc func vplayer() { |
|
|
@objc func vplayer() { |
|
|
videoplayer = !videoplayer |
|
|
videoplayer = !videoplayer |
|
|
} |
|
|
} |
|
|
@ -200,6 +211,9 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
else if items.local { |
|
|
|
|
|
self.delegate!.deleteLocal(selectedItem: items) |
|
|
|
|
|
} |
|
|
})) |
|
|
})) |
|
|
|
|
|
|
|
|
refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (action: UIAlertAction!) in |
|
|
refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (action: UIAlertAction!) in |
|
|
@ -277,7 +291,7 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout |
|
|
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
|
|
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
|
|
if let detail: MediaItem = self.detailItem { |
|
|
if let detail: MediaItem = self.detailItem { |
|
|
print(detail.toJSON()) |
|
|
print(detail.toJSON()) |
|
|
NetworkManager.sharedInstance.saveFavDir(name: "fav.json", item: detail) |
|
|
|
|
|
|
|
|
// NetworkManager.sharedInstance.saveFavDir(name: "fav.json", item: detail) |
|
|
|
|
|
|
|
|
var sectionItem = detail.children[indexPath.section] |
|
|
var sectionItem = detail.children[indexPath.section] |
|
|
currentItem = sectionItem |
|
|
currentItem = sectionItem |
|
|
@ -334,21 +348,43 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func showVideo(selectedItem: MediaItem) { |
|
|
func showVideo(selectedItem: MediaItem) { |
|
|
|
|
|
var se = selectedItem |
|
|
|
|
|
var children = detailItem!.children |
|
|
|
|
|
if videoplayer { |
|
|
|
|
|
if selectedItem.local { |
|
|
|
|
|
let jfile = selectedItem.playerURL!.appendingPathExtension("json") |
|
|
|
|
|
do { |
|
|
|
|
|
let jsonData = try Data(contentsOf: jfile) |
|
|
|
|
|
|
|
|
|
|
|
let items = try JSONDecoder().decode(MediaModel.self, from: jsonData) |
|
|
|
|
|
se = MediaItem(model: items) |
|
|
|
|
|
children = se.children |
|
|
|
|
|
|
|
|
|
|
|
print (String(data: jsonData, encoding: .utf8)) |
|
|
|
|
|
} catch { |
|
|
|
|
|
print(error) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var pc: ItemController? |
|
|
var pc: ItemController? |
|
|
|
|
|
|
|
|
pc = VideoController() |
|
|
pc = VideoController() |
|
|
|
|
|
|
|
|
pc!.setCurrentItem(item: selectedItem) |
|
|
|
|
|
pc!.setItems(items: detailItem!.children) |
|
|
|
|
|
|
|
|
pc!.setCurrentItem(item: se) |
|
|
|
|
|
pc!.setItems(items: children) |
|
|
pc!.setCompletionHandler(handler: { |
|
|
pc!.setCompletionHandler(handler: { |
|
|
self.collectionView.reloadData() |
|
|
self.collectionView.reloadData() |
|
|
self.collectionView.collectionViewLayout.invalidateLayout() |
|
|
self.collectionView.collectionViewLayout.invalidateLayout() |
|
|
|
|
|
|
|
|
self.delegate!.saveItem(selectedItem: self.currentItem!) |
|
|
|
|
|
|
|
|
if !se.local { |
|
|
|
|
|
self.delegate!.saveItem(selectedItem: se) |
|
|
|
|
|
} |
|
|
self.dismiss(animated: true, completion: nil); |
|
|
self.dismiss(animated: true, completion: nil); |
|
|
}) |
|
|
}) |
|
|
let navController = UINavigationController(rootViewController: (pc! as! UIViewController)) |
|
|
let navController = UINavigationController(rootViewController: (pc! as! UIViewController)) |
|
|
navController.modalPresentationStyle = .fullScreen |
|
|
navController.modalPresentationStyle = .fullScreen |
|
|
|
|
|
navController.modalPresentationCapturesStatusBarAppearance = true |
|
|
navController.navigationBar.barTintColor = UIColor.black |
|
|
navController.navigationBar.barTintColor = UIColor.black |
|
|
(pc! as! UIViewController).navigationItem.leftItemsSupplementBackButton = true |
|
|
(pc! as! UIViewController).navigationItem.leftItemsSupplementBackButton = true |
|
|
|
|
|
|
|
|
|