|
|
|
@ -9,8 +9,8 @@ |
|
|
|
import UIKit |
|
|
|
import CoreData |
|
|
|
|
|
|
|
class MasterViewController: UITableViewController { |
|
|
|
|
|
|
|
class MasterViewController: UITableViewController, UISearchResultsUpdating { |
|
|
|
let searchController = UISearchController(searchResultsController: nil) |
|
|
|
let model = ItemModel() |
|
|
|
|
|
|
|
override func awakeFromNib() { |
|
|
|
@ -22,7 +22,10 @@ class MasterViewController: UITableViewController { |
|
|
|
} |
|
|
|
|
|
|
|
override func viewDidLoad() { |
|
|
|
|
|
|
|
searchController.searchResultsUpdater = self |
|
|
|
searchController.dimsBackgroundDuringPresentation = false |
|
|
|
definesPresentationContext = true |
|
|
|
tableView.tableHeaderView = searchController.searchBar |
|
|
|
} |
|
|
|
|
|
|
|
override func didReceiveMemoryWarning() { |
|
|
|
@ -32,20 +35,31 @@ class MasterViewController: UITableViewController { |
|
|
|
// Dispose of any resources that can be recreated. |
|
|
|
} |
|
|
|
|
|
|
|
func updateSearchResultsForSearchController(search: UISearchController) { |
|
|
|
let str = search.searchBar.text! |
|
|
|
|
|
|
|
if str.hasSuffix("*") { |
|
|
|
let txt = str[str.startIndex ..< str.endIndex.advancedBy(-1)] |
|
|
|
let neu = MediaItem(name: txt, path: model.items[0].parent!.path + "*" + txt, root: model.items[0].parent!.root, type: ItemType.DETAILS) |
|
|
|
model.items.append(neu) |
|
|
|
neu.parent = model.items[0].parent |
|
|
|
self.tableView.reloadData() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func selectLoadedItem(selectedItem: MediaItem) { |
|
|
|
switch selectedItem.type { |
|
|
|
case ItemType.DETAILS: |
|
|
|
performSegueWithIdentifier("showDetail", sender: self) |
|
|
|
case ItemType.DETAILS: |
|
|
|
performSegueWithIdentifier("showDetail", sender: self) |
|
|
|
|
|
|
|
case ItemType.FOLDER: |
|
|
|
if selectedItem.children.first?.type == ItemType.VIDEO { |
|
|
|
performSegueWithIdentifier("showDetail", sender: self) |
|
|
|
} |
|
|
|
else { |
|
|
|
gotoNextFolder(selectedItem) |
|
|
|
} |
|
|
|
default: |
|
|
|
print(selectedItem.type) |
|
|
|
case ItemType.FOLDER: |
|
|
|
if selectedItem.children.first?.type == ItemType.VIDEO { |
|
|
|
performSegueWithIdentifier("showDetail", sender: self) |
|
|
|
} else { |
|
|
|
gotoNextFolder(selectedItem) |
|
|
|
} |
|
|
|
default: |
|
|
|
print(selectedItem.type) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -56,7 +70,7 @@ class MasterViewController: UITableViewController { |
|
|
|
if selectedItem.type == ItemType.DETAILS { |
|
|
|
gotoDetails(selectedItem) |
|
|
|
return |
|
|
|
// selectLoadedItem(selectedItem) |
|
|
|
// selectLoadedItem(selectedItem) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -88,8 +102,7 @@ class MasterViewController: UITableViewController { |
|
|
|
neu.children.append(details) |
|
|
|
hasDetails = true |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
} else { |
|
|
|
// item.type = ItemType.FOLDER |
|
|
|
item.parent = selectedItem |
|
|
|
neu.children.append(item) |
|
|
|
@ -132,26 +145,31 @@ class MasterViewController: UITableViewController { |
|
|
|
selectedItem.children = model.items |
|
|
|
selectedItem.loaded = false |
|
|
|
|
|
|
|
var all: [MediaItem]? |
|
|
|
if selectedItem.path.containsString("*") { |
|
|
|
selectedItem.loaded = true |
|
|
|
} else |
|
|
|
{ |
|
|
|
|
|
|
|
var all: [MediaItem]? |
|
|
|
|
|
|
|
for f in selectedItem.children { |
|
|
|
print(f.path) |
|
|
|
if f.type == ItemType.FOLDER && f.path == "" { |
|
|
|
all = f.children |
|
|
|
break |
|
|
|
for f in selectedItem.children { |
|
|
|
print(f.path) |
|
|
|
if f.type == ItemType.FOLDER && f.path == "" { |
|
|
|
all = f.children |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if all != nil { |
|
|
|
selectedItem.children = all! |
|
|
|
selectedItem.loaded = false |
|
|
|
if all != nil { |
|
|
|
selectedItem.children = all! |
|
|
|
selectedItem.loaded = false |
|
|
|
|
|
|
|
for f in all! { |
|
|
|
f.loaded = false |
|
|
|
f.parent = selectedItem |
|
|
|
for f in all! { |
|
|
|
f.loaded = false |
|
|
|
f.parent = selectedItem |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
self.performSegueWithIdentifier("showDetail", sender: self) |
|
|
|
return |
|
|
|
} |
|
|
|
|