diff --git a/Source/Device.swift b/Source/Device.swift index b00dfd7..142e984 100644 --- a/Source/Device.swift +++ b/Source/Device.swift @@ -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