Browse Source

Swift 4

master
Marco Schmickler 8 years ago
parent
commit
712ca0862e
  1. 32
      .idea/codeStyles/Project.xml
  2. 14
      kplayer.xcodeproj/project.pbxproj
  3. 2
      kplayer/Info.plist
  4. 6
      kplayer/core/MediaItem.swift
  5. 26
      kplayer/core/NetworkManager.swift
  6. 2
      kplayer/detail/VideoPlayerController.swift
  7. 2
      kplayer/master/MasterViewController.swift
  8. 8
      kplayer/photo/MediaPhotoController.swift
  9. 2
      kplayer/util/stringutil.swift

32
.idea/codeStyles/Project.xml

@ -0,0 +1,32 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="ClassPredef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Class" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="mm" header="h" fileNamingConvention="NONE" />
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
</code_scheme>
</component>

14
kplayer.xcodeproj/project.pbxproj

@ -306,7 +306,7 @@
attributes = { attributes = {
LastSwiftMigration = 0700; LastSwiftMigration = 0700;
LastSwiftUpdateCheck = 0700; LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 0820;
LastUpgradeCheck = 0920;
ORGANIZATIONNAME = "Marco Schmickler"; ORGANIZATIONNAME = "Marco Schmickler";
TargetAttributes = { TargetAttributes = {
C98AF5CE1B124D6A00D196CC = { C98AF5CE1B124D6A00D196CC = {
@ -488,14 +488,20 @@
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@ -536,14 +542,20 @@
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;

2
kplayer/Info.plist

@ -53,6 +53,8 @@
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UIFileSharingEnabled</key>
<true/>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>
<dict> <dict>
<key>NSAllowsArbitraryLoads</key> <key>NSAllowsArbitraryLoads</key>

6
kplayer/core/MediaItem.swift

@ -96,7 +96,7 @@ class MediaItem: CustomDebugStringConvertible {
fileprivate func computeSortName(_ sname: String) -> String { fileprivate func computeSortName(_ sname: String) -> String {
var lsortName = sname.replacingOccurrences(of: "full", with: "") var lsortName = sname.replacingOccurrences(of: "full", with: "")
var fullNameArr = lsortName.characters.split {
var fullNameArr = lsortName.split {
$0 == "_" $0 == "_"
}.map { }.map {
String($0) String($0)
@ -106,7 +106,7 @@ class MediaItem: CustomDebugStringConvertible {
lsortName = fullNameArr[0] lsortName = fullNameArr[0]
} }
while lsortName.characters.count < 6 {
while lsortName.count < 6 {
lsortName = "0" + lsortName lsortName = "0" + lsortName
} }
@ -118,7 +118,7 @@ class MediaItem: CustomDebugStringConvertible {
Absoluter Pfad mit Slash am Ende. Absoluter Pfad mit Slash am Ende.
*/ */
var snapshotDirPathForVideo: String { var snapshotDirPathForVideo: String {
let len = "/srv/samba/ren".characters.count
let len = "/srv/samba/ren".count
let rootPostfix = (root as NSString).substring(from: len) let rootPostfix = (root as NSString).substring(from: len)
let tpath = "/srv/samba/ren/thumb\(rootPostfix)/\(path)/\(name)" let tpath = "/srv/samba/ren/thumb\(rootPostfix)/\(path)/\(name)"
let enc = tpath.addingPercentEscapes(using: String.Encoding.isoLatin1)! let enc = tpath.addingPercentEscapes(using: String.Encoding.isoLatin1)!

26
kplayer/core/NetworkManager.swift

@ -10,7 +10,7 @@ import Alamofire
class NetworkManager { class NetworkManager {
static let sharedInstance = NetworkManager() static let sharedInstance = NetworkManager()
let baseurl = "http://linkstation.local/tomcat/media"
let baseurl = "http://linkstation:8080/tomcat/media"
var authenticated = false var authenticated = false
@ -32,10 +32,10 @@ class NetworkManager {
} }
if root.endsWith("/") { if root.endsWith("/") {
root = root[root.startIndex..<root.characters.index(before: root.endIndex)]
root = root[root.startIndex..<root.index(before: root.endIndex)]
} }
let url1 = baseurl + "/service/listvideos" + rootParam let url1 = baseurl + "/service/listvideos" + rootParam
let len = root.characters.count
let len = root.count
var res = [MediaItem]() var res = [MediaItem]()
let url = (url1 as NSString).replacingOccurrences(of: " ", with: "+") let url = (url1 as NSString).replacingOccurrences(of: " ", with: "+")
print(url) print(url)
@ -48,9 +48,9 @@ class NetworkManager {
for s in json { for s in json {
// print(s) // print(s)
if s.hasSuffix(".mp4") || s.hasSuffix(".m4v") { if s.hasSuffix(".mp4") || s.hasSuffix(".m4v") {
let l = s.characters.count
let l = s.count
let name = NSURL(fileURLWithPath: s).lastPathComponent! let name = NSURL(fileURLWithPath: s).lastPathComponent!
var pathlen = l - len - name.characters.count
var pathlen = l - len - name.count
// if (pathlen > 1000) { // if (pathlen > 1000) {
// print(pathlen) // print(pathlen)
@ -81,11 +81,11 @@ class NetworkManager {
} }
if root.endsWith("/") { if root.endsWith("/") {
root = root[root.startIndex..<root.characters.index(before: root.endIndex)]
root = root[root.startIndex..<root.index(before: root.endIndex)]
} }
let url1 = baseurl + "/service/listpicdirs" + rootParam let url1 = baseurl + "/service/listpicdirs" + rootParam
let len = root.characters.count
let len = root.count
var res = [MediaItem]() var res = [MediaItem]()
let url = (url1 as NSString).replacingOccurrences(of: " ", with: "+") let url = (url1 as NSString).replacingOccurrences(of: " ", with: "+")
print(url) print(url)
@ -102,9 +102,9 @@ class NetworkManager {
for s in result { for s in result {
// print(s) // print(s)
if s.lowercased().hasSuffix(".jpg") { if s.lowercased().hasSuffix(".jpg") {
let l = s.characters.count
let l = s.count
let name = (s as NSString).lastPathComponent let name = (s as NSString).lastPathComponent
var pathlen = l - len - name.characters.count
var pathlen = l - len - name.count
// print(pathlen) // print(pathlen)
// print(name) // print(name)
@ -117,8 +117,8 @@ class NetworkManager {
let path = (s as NSString).substring(with: NSMakeRange(len + 1, pathlen - 2)) let path = (s as NSString).substring(with: NSMakeRange(len + 1, pathlen - 2))
let folderName = NSURL(fileURLWithPath: path).lastPathComponent! let folderName = NSURL(fileURLWithPath: path).lastPathComponent!
let fl = path.characters.count
let pfl = fl - folderName.characters.count
let fl = path.count
let pfl = fl - folderName.count
// print("\(folderName) \(pfl)") // print("\(folderName) \(pfl)")
let fpath = (path as NSString).substring(with: NSMakeRange(0, pfl)) let fpath = (path as NSString).substring(with: NSMakeRange(0, pfl))
@ -146,7 +146,7 @@ class NetworkManager {
} }
func listDirs(_ root: String, completionHandler: @escaping ([MediaItem], Bool) -> Void) -> Void { func listDirs(_ root: String, completionHandler: @escaping ([MediaItem], Bool) -> Void) -> Void {
let len = root.characters.count
let len = root.count
let url = (root as NSString).replacingOccurrences(of: " ", with: "+") let url = (root as NSString).replacingOccurrences(of: " ", with: "+")
let ux = baseurl + "/service/listdirs" + url let ux = baseurl + "/service/listdirs" + url
@ -181,7 +181,7 @@ class NetworkManager {
hasPics = true hasPics = true
let name = (root as NSString).lastPathComponent let name = (root as NSString).lastPathComponent
let namelen = name.characters.count
let namelen = name.count
let rootstart = root.substringRight(namelen) let rootstart = root.substringRight(namelen)
let i = MediaItem(name: name, path: "", root: rootstart, type: ItemType.DETAILS) let i = MediaItem(name: name, path: "", root: rootstart, type: ItemType.DETAILS)
res.append(i) res.append(i)

2
kplayer/detail/VideoPlayerController.swift

@ -13,7 +13,7 @@ class VideoPlayerController: UIViewController, ItemController {
var moviePlayer: ALMoviePlayerController? var moviePlayer: ALMoviePlayerController?
var currentItem: MediaItem? var currentItem: MediaItem?
var completionHandler: ((Void) -> Void)?
var completionHandler: (() -> Void)?
var buttons = Dictionary<UIButton, MediaItem>() var buttons = Dictionary<UIButton, MediaItem>()

2
kplayer/master/MasterViewController.swift

@ -42,7 +42,7 @@ class MasterViewController: UITableViewController, UISearchResultsUpdating {
let str = search.searchBar.text! let str = search.searchBar.text!
if str.hasSuffix("*") { if str.hasSuffix("*") {
let txt = str[str.startIndex ..< str.characters.index(str.endIndex, offsetBy: -1)]
let txt = str[str.startIndex ..< str.index(str.endIndex, offsetBy: -1)]
if let p = model.items[0].parent { if let p = model.items[0].parent {
let neu = MediaItem(name: txt, path: p.path + "*" + txt, root: p.root, type: ItemType.DETAILS) let neu = MediaItem(name: txt, path: p.path + "*" + txt, root: p.root, type: ItemType.DETAILS)
model.items.append(neu) model.items.append(neu)

8
kplayer/photo/MediaPhotoController.swift

@ -10,7 +10,7 @@ import Alamofire
class MediaPhotoController: NIToolbarPhotoViewController, NIPhotoAlbumScrollViewDataSource, NIPhotoScrubberViewDataSource, URLSessionDelegate { class MediaPhotoController: NIToolbarPhotoViewController, NIPhotoAlbumScrollViewDataSource, NIPhotoScrubberViewDataSource, URLSessionDelegate {
var items = [MediaItem]() var items = [MediaItem]()
var completionHandler: ((Void) -> Void)?
var completionHandler: (() -> Void)?
var requests = Array<ImageLoadOperation>() var requests = Array<ImageLoadOperation>()
@ -240,7 +240,7 @@ class MediaPhotoController: NIToolbarPhotoViewController, NIPhotoAlbumScrollView
if (currentItem.type == ItemType.PICS) { if (currentItem.type == ItemType.PICS) {
let items = currentItem let items = currentItem
let len = items.root.characters.count
let len = items.root.count
let url = NetworkManager.sharedInstance.baseurl + "/service/listfiles" + items.root + "/" + items.path + "/" + items.name let url = NetworkManager.sharedInstance.baseurl + "/service/listfiles" + items.root + "/" + items.path + "/" + items.name
print(items) print(items)
@ -255,9 +255,9 @@ class MediaPhotoController: NIToolbarPhotoViewController, NIPhotoAlbumScrollView
for s in json as! [String] { for s in json as! [String] {
if s.hasSuffix(".jpg") { if s.hasSuffix(".jpg") {
let l = s.characters.count
let l = s.count
let name = NSURL(fileURLWithPath: s).lastPathComponent! let name = NSURL(fileURLWithPath: s).lastPathComponent!
var pathlen = l - len - name.characters.count
var pathlen = l - len - name.count
// if (pathlen > 1000) { // if (pathlen > 1000) {
print(pathlen) print(pathlen)

2
kplayer/util/stringutil.swift

@ -39,6 +39,6 @@ public extension String {
} }
func length() -> Int { func length() -> Int {
return characters.count
return count
} }
} }
Loading…
Cancel
Save