add support for iPad 5, iPad Pro 10.5 iPad Pro 12.9 inch gen 2 (#75)

* add support for the 10.5 inch iPad Pro
state the source of the identifiers in the readme

* add support for iPad 5 and iPad Pro 12.9 inch gen 2
This commit is contained in:
Dennis Weissmann
2017-06-11 13:26:50 +02:00
committed by GitHub
parent 7c0224993b
commit 71dae7bc81
+27 -7
View File
@@ -138,6 +138,11 @@ public enum Device {
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP708/SP708-space_gray.jpeg)
case iPadAir2
/// Device is an [iPad 5](https://support.apple.com/kb/SP751)
///
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP751/ipad_5th_generation.png)
case iPad5
/// Device is an [iPad Mini](https://support.apple.com/kb/SP661)
///
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP661/sp661_ipad_mini_color.jpg)
@@ -158,15 +163,24 @@ public enum Device {
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP725/SP725ipad-mini-4.png)
case iPadMini4
/// Device is an [iPad Pro](https://support.apple.com/kb/sp723)
/// Device is an [iPad Pro](https://support.apple.com/kb/SP739)
///
/// ![Image](http://images.apple.com/v/ipad-pro/c/images/shared/buystrip/ipad_pro_large_2x.png)
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP739/SP739.png)
case iPadPro9Inch
case iPadPro12Inch
/// Device is an [iPad Pro](https://support.apple.com/kb/sp723)
///
/// ![Image](http://images.apple.com/v/ipad-pro/c/images/shared/buystrip/ipad_pro_large_2x.png)
case iPadPro12Inch
/// Device is an [iPad Pro](https://support.apple.com/kb/SP761)
///
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP761/ipad-pro-12in-hero-201706.png)
case iPadPro12Inch2
/// Device is an [iPad Pro 10.5](https://support.apple.com/kb/SP762)
///
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP761/ipad-pro-10in-hero-201706.png)
case iPadPro10Inch
#elseif os(tvOS)
@@ -231,13 +245,15 @@ public enum Device {
case "iPad3,4", "iPad3,5", "iPad3,6": return iPad4
case "iPad4,1", "iPad4,2", "iPad4,3": return iPadAir
case "iPad5,3", "iPad5,4": return iPadAir2
case "iPad6,11", "iPad6,12": return iPad5
case "iPad2,5", "iPad2,6", "iPad2,7": return iPadMini
case "iPad4,4", "iPad4,5", "iPad4,6": return iPadMini2
case "iPad4,7", "iPad4,8", "iPad4,9": return iPadMini3
case "iPad5,1", "iPad5,2": return iPadMini4
case "iPad6,3", "iPad6,4": return iPadPro9Inch
case "iPad6,7", "iPad6,8": return iPadPro12Inch
case "iPad7,4": return iPadPro10Inch
case "iPad7,1", "iPad7,2": return iPadPro12Inch2
case "iPad7,3", "iPad7,4": return iPadPro10Inch
case "i386", "x86_64": return simulator(mapToDevice(identifier: ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] ?? "iOS"))
default: return unknown(identifier)
}
@@ -264,7 +280,7 @@ public enum Device {
/// All iPads
public static var allPads: [Device] {
return [.iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4, .iPadPro9Inch, .iPadPro12Inch, .iPadPro10Inch]
return [.iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPad5, .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch]
}
/// All simulator iPods
@@ -324,12 +340,12 @@ public enum Device {
// 5.5-inch phones
case .iPhone6Plus, .iPhone6sPlus, .iPhone7Plus: return 5.5
// iPads
case .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2: return 9.7
case .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPad5: return 9.7
// iPad Minis
case .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4: return 7.9
// iPad Pros
case .iPadPro9Inch: return 9.7
case .iPadPro12Inch: return 12.9
case .iPadPro12Inch, .iPadPro12Inch2: return 12.9
case .iPadPro10Inch: return 10.5
case .simulator(let model): return model.diagonal
@@ -359,12 +375,14 @@ public enum Device {
case .iPad4: return (width: 3, height: 4)
case .iPadAir: return (width: 3, height: 4)
case .iPadAir2: return (width: 3, height: 4)
case .iPad5: return (width: 3, height: 4)
case .iPadMini: return (width: 3, height: 4)
case .iPadMini2: return (width: 3, height: 4)
case .iPadMini3: return (width: 3, height: 4)
case .iPadMini4: return (width: 3, height: 4)
case .iPadPro9Inch: return (width: 3, height: 4)
case .iPadPro12Inch: return (width: 3, height: 4)
case .iPadPro12Inch2: return (width: 3, height: 4)
case .iPadPro10Inch: return (width: 3, height: 4)
case .simulator(let model): return model.screenRatio
case .unknown: return (width: -1, height: -1)
@@ -510,12 +528,14 @@ extension Device: CustomStringConvertible {
case .iPad4: return "iPad 4"
case .iPadAir: return "iPad Air"
case .iPadAir2: return "iPad Air 2"
case .iPad5: return "iPad 5"
case .iPadMini: return "iPad Mini"
case .iPadMini2: return "iPad Mini 2"
case .iPadMini3: return "iPad Mini 3"
case .iPadMini4: return "iPad Mini 4"
case .iPadPro9Inch: return "iPad Pro (9.7-inch)"
case .iPadPro12Inch: return "iPad Pro (12.9-inch)"
case .iPadPro12Inch2: return "iPad Pro (12.9-inch) 2"
case .iPadPro10Inch: return "iPad Pro (10.5-inch)"
case .simulator(let model): return "Simulator (\(model))"
case .unknown(let identifier): return identifier