Skip to content

Commit

Permalink
moved UIDevice extensions to Context
Browse files Browse the repository at this point in the history
  • Loading branch information
thorstenstark committed Dec 29, 2016
1 parent c76867b commit 83c18bb
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 111 deletions.
8 changes: 4 additions & 4 deletions PiwikTracker.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
1FCA6D451DBE0B2F0033F01C /* PiwikTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FCA6D3B1DBE0B2F0033F01C /* PiwikTracker.framework */; };
1FCA6D4A1DBE0B2F0033F01C /* PiwikTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCA6D491DBE0B2F0033F01C /* PiwikTrackerTests.swift */; };
1FCA6D4C1DBE0B2F0033F01C /* PiwikTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FCA6D3E1DBE0B2F0033F01C /* PiwikTracker.h */; settings = {ATTRIBUTES = (Public, ); }; };
2DE767EF1E0890CA00CA3CD7 /* UIDevice+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DE767EE1E0890CA00CA3CD7 /* UIDevice+Extensions.swift */; };
2DE767EF1E0890CA00CA3CD7 /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DE767EE1E0890CA00CA3CD7 /* Context.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All @@ -30,7 +30,7 @@
1FCA6D441DBE0B2F0033F01C /* PiwikTrackerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PiwikTrackerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
1FCA6D491DBE0B2F0033F01C /* PiwikTrackerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PiwikTrackerTests.swift; sourceTree = "<group>"; };
1FCA6D4B1DBE0B2F0033F01C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
2DE767EE1E0890CA00CA3CD7 /* UIDevice+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIDevice+Extensions.swift"; sourceTree = "<group>"; };
2DE767EE1E0890CA00CA3CD7 /* Context.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Context.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -75,7 +75,7 @@
children = (
1FCA6D3E1DBE0B2F0033F01C /* PiwikTracker.h */,
1FCA6D3F1DBE0B2F0033F01C /* Info.plist */,
2DE767EE1E0890CA00CA3CD7 /* UIDevice+Extensions.swift */,
2DE767EE1E0890CA00CA3CD7 /* Context.swift */,
);
path = PiwikTracker;
sourceTree = "<group>";
Expand Down Expand Up @@ -200,7 +200,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2DE767EF1E0890CA00CA3CD7 /* UIDevice+Extensions.swift in Sources */,
2DE767EF1E0890CA00CA3CD7 /* Context.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
115 changes: 115 additions & 0 deletions PiwikTracker/Context.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import UIKit

public class Context {

public class Application {
// TODO: implement me
}

public class Device {

/// The platform name of the device i.e. "iPhone1,1" or "iPad3,6"
static let platform: String = {
var size = 0
sysctlbyname("hw.machine", nil, &size, nil, 0)
var machine = [CChar](repeating: 0, count: Int(size))
sysctlbyname("hw.machine", &machine, &size, nil, 0)
return String(cString: machine)
}()

/// A human readable version of the platform name i.e. "iPhone 6 Plus" or "iPad Air 2 (WiFi)"
/// Or the platform name in case no human readable name was found.
static let humanReadablePlatformName: String = {
switch platform {

// iPhone
case "iPhone1,1": return "iPhone 1G"
case "iPhone1,2": return "iPhone 3G"
case "iPhone2,1": return "iPhone 3GS"
case "iPhone3,1": return "iPhone 4"
case "iPhone3,2": return "iPhone 4 (Revision A)"
case "iPhone3,3": return "Verizon iPhone 4"
case "iPhone4,1": return "iPhone 4S"
case "iPhone5,1": return "iPhone 5 (GSM)"
case "iPhone5,2": return "iPhone 5 (GSM+CDMA)"
case "iPhone5,3": return "iPhone 5c (GSM)"
case "iPhone5,4": return "iPhone 5c (Global)"
case "iPhone6,1": return "iPhone 5s (GSM)"
case "iPhone6,2": return "iPhone 5s (Global)"
case "iPhone7,1": return "iPhone 6 Plus"
case "iPhone7,2": return "iPhone 6"
case "iPhone8,1": return "iPhone 6s"
case "iPhone8,2": return "iPhone 6s Plus"
case "iPhone8,4": return "iPhone SE"
case "iPhone9,1": return "iPhone 7 (GSM+CDMA)"
case "iPhone9,2": return "iPhone 7 Plus (GSM+CDMA)"
case "iPhone9,3": return "iPhone 7 (Global)"
case "iPhone9,4": return "iPhone 7 Plus (Global)"

// iPod
case "iPod1,1": return "iPod Touch 1G"
case "iPod2,1": return "iPod Touch 2G"
case "iPod3,1": return "iPod Touch 3G"
case "iPod4,1": return "iPod Touch 4G"
case "iPod5,1": return "iPod Touch 5G"
case "iPod6,1": return "iPod Touch 6G"

// iPad
case "iPad1,1": return "iPad 1"
case "iPad2,1": return "iPad 2 (WiFi)"
case "iPad2,2": return "iPad 2 (GSM)"
case "iPad2,3": return "iPad 2 (CDMA)"
case "iPad2,4": return "iPad 2 (WiFi)"
case "iPad2,5": return "iPad Mini 1 (WiFi)"
case "iPad2,6": return "iPad Mini 1 (GSM)"
case "iPad2,7": return "iPad Mini 1 (GSM+CDMA)"
case "iPad3,1": return "iPad 3 (WiFi)"
case "iPad3,2": return "iPad 3 (GSM+CDMA)"
case "iPad3,3": return "iPad 3 (GSM)"
case "iPad3,4": return "iPad 4 (WiFi)"
case "iPad3,5": return "iPad 4 (GSM)"
case "iPad3,6": return "iPad 4 (GSM+CDMA)"
case "iPad4,1": return "iPad Air 1 (WiFi)"
case "iPad4,2": return "iPad Air 1 (Cellular)"
case "iPad4,3": return "iPad Air"
case "iPad4,4": return "iPad Mini 2 (WiFi)"
case "iPad4,5": return "iPad Mini 2 (Cellular)"
case "iPad4,6": return "iPad Mini 2 (Rev)"
case "iPad4,7": return "iPad Mini 3 (WiFi)"
case "iPad4,8": return "iPad Mini 3 (A1600)"
case "iPad4,9": return "iPad Mini 3 (A1601)"
case "iPad5,1": return "iPad Mini 4 (WiFi)"
case "iPad5,2": return "iPad Mini 4 (Cellular)"
case "iPad5,3": return "iPad Air 2 (WiFi)"
case "iPad5,4": return "iPad Air 2 (Cellular)"
case "iPad6,3": return "iPad Pro 9.7 (WiFi)"
case "iPad6,4": return "iPad Pro 9.7 (Cellular)"
case "iPad6,7": return "iPad Pro 12.9 (WiFi)"
case "iPad6,8": return "iPad Pro 12.9 (Cellular)"

case "i386": return "Simulator"
case "x86_64": return "Simulator"

default: return platform
}
}()

/// The version number of the OS as String i.e. "1.2" or "9.4"
static let osVersion: String = {
return UIDevice.current.systemVersion
}()

// Returns the screen size in points
static let screenSize: String = {
let bounds = UIScreen.main.bounds
return "\(bounds.size.width)x\(bounds.size.height)"
}()

// Returns the screen size in pixels
static let physicalScreenSize: String = {
let bounds = UIScreen.main.nativeBounds
return "\(bounds.size.width)x\(bounds.size.height)"
}()
}
}

107 changes: 0 additions & 107 deletions PiwikTracker/UIDevice+Extensions.swift

This file was deleted.

0 comments on commit 83c18bb

Please sign in to comment.