Skip to content

Commit 37561a8

Browse files
authored
Add support for the new iPhone SE (2nd generation). (devicekit#238)
* Add support for the new iPhone SE (2nd generation). * Add device identifier for iPhone SE (2nd generation) Source: theiphonewiki.com * Add support link and Apple Care image of iPhone SE. Also compile to propogate the device identifier to the gyb file. * Update changelog.
1 parent c136938 commit 37561a8

File tree

3 files changed

+39
-13
lines changed

3 files changed

+39
-13
lines changed

CHANGELOG.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
11
# Changelog
22

3+
## Version 3.2.0
4+
5+
Releasedate: TBD
6+
7+
```ruby
8+
pod 'DeviceKit', :git => 'https://github.com/devicekit/DeviceKit.git', :branch => 'master'
9+
#pod 'DeviceKit', '~> 3.2'
10+
```
11+
12+
### iPhone SE (2nd generation)
13+
- Added support for the iPhone SE (2nd generation). ([#238](https://github.com/devicekit/DeviceKit/pull/238))
14+
```swift
15+
Device.iPhoneSE2
16+
```
17+
318
## Version 3.1.0
419

520
Releasedate: 2020-03-29
621

722
```ruby
8-
pod 'DeviceKit', :git => 'https://github.com/devicekit/DeviceKit.git', :branch => 'master'
9-
#pod 'DeviceKit', '~> 3.1'
23+
pod 'DeviceKit', '~> 3.1'
1024
```
1125

1226
### 2020 iPad Pro

Source/Device.generated.swift

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ public enum Device {
144144
///
145145
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP806/sp806-iphone11pro-max_2x.png)
146146
case iPhone11ProMax
147+
/// Device is an [iPhone SE (2nd generation)](https://support.apple.com/kb/SP820)
148+
///
149+
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP820/iphone-se-2nd-gen_2x.png)
150+
case iPhoneSE2
147151
/// Device is an [iPad 2](https://support.apple.com/kb/SP622)
148152
///
149153
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP622/SP622_01-ipad2-mul.png)
@@ -356,6 +360,7 @@ public enum Device {
356360
case "iPhone12,1": return iPhone11
357361
case "iPhone12,3": return iPhone11Pro
358362
case "iPhone12,5": return iPhone11ProMax
363+
case "iPhone12,8": return iPhoneSE2
359364
case "iPad2,1", "iPad2,2", "iPad2,3", "iPad2,4": return iPad2
360365
case "iPad3,1", "iPad3,2", "iPad3,3": return iPad3
361366
case "iPad3,4", "iPad3,5", "iPad3,6": return iPad4
@@ -453,6 +458,7 @@ public enum Device {
453458
case .iPhone11: return 6.1
454459
case .iPhone11Pro: return 5.8
455460
case .iPhone11ProMax: return 6.5
461+
case .iPhoneSE2: return 4.7
456462
case .iPad2: return 9.7
457463
case .iPad3: return 9.7
458464
case .iPad4: return 9.7
@@ -528,6 +534,7 @@ public enum Device {
528534
case .iPhone11: return (width: 9, height: 19.5)
529535
case .iPhone11Pro: return (width: 9, height: 19.5)
530536
case .iPhone11ProMax: return (width: 9, height: 19.5)
537+
case .iPhoneSE2: return (width: 9, height: 16)
531538
case .iPad2: return (width: 3, height: 4)
532539
case .iPad3: return (width: 3, height: 4)
533540
case .iPad4: return (width: 3, height: 4)
@@ -584,7 +591,7 @@ public enum Device {
584591

585592
/// All iPhones
586593
public static var allPhones: [Device] {
587-
return [.iPhone4, .iPhone4s, .iPhone5, .iPhone5c, .iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax]
594+
return [.iPhone4, .iPhone4s, .iPhone5, .iPhone5c, .iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPhoneSE2]
588595
}
589596

590597
/// All iPads
@@ -692,7 +699,7 @@ public enum Device {
692699

693700
/// All Touch ID Capable Devices
694701
public static var allTouchIDCapableDevices: [Device] {
695-
return [.iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch]
702+
return [.iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneSE2, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch]
696703
}
697704

698705
/// All Face ID Capable Devices
@@ -702,7 +709,7 @@ public enum Device {
702709

703710
/// All Devices with Touch ID or Face ID
704711
public static var allBiometricAuthenticationCapableDevices: [Device] {
705-
return [.iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch, .iPadPro11Inch, .iPadPro12Inch3, .iPadPro11Inch2, .iPadPro12Inch4]
712+
return [.iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPhoneSE2, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch, .iPadPro11Inch, .iPadPro12Inch3, .iPadPro11Inch2, .iPadPro12Inch4]
706713
}
707714

708715
/// Returns whether or not the device has Touch ID
@@ -757,7 +764,7 @@ public enum Device {
757764

758765
/// All devices that support wireless charging.
759766
public static var allDevicesWithWirelessChargingSupport: [Device] {
760-
return [.iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax]
767+
return [.iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPhoneSE2]
761768
}
762769

763770
/// Returns whether or not the device supports wireless charging.
@@ -940,6 +947,7 @@ public enum Device {
940947
case .iPhone11: return 326
941948
case .iPhone11Pro: return 458
942949
case .iPhone11ProMax: return 458
950+
case .iPhoneSE2: return 326
943951
case .iPad2: return 132
944952
case .iPad3: return 264
945953
case .iPad4: return 264
@@ -1042,6 +1050,7 @@ extension Device: CustomStringConvertible {
10421050
case .iPhone11: return "iPhone 11"
10431051
case .iPhone11Pro: return "iPhone 11 Pro"
10441052
case .iPhone11ProMax: return "iPhone 11 Pro Max"
1053+
case .iPhoneSE2: return "iPhone SE (2nd generation)"
10451054
case .iPad2: return "iPad 2"
10461055
case .iPad3: return "iPad (3rd generation)"
10471056
case .iPad4: return "iPad (4th generation)"
@@ -1126,6 +1135,7 @@ extension Device: CustomStringConvertible {
11261135
case .iPhone11: return "iPhone 11"
11271136
case .iPhone11Pro: return "iPhone 11 Pro"
11281137
case .iPhone11ProMax: return "iPhone 11 Pro Max"
1138+
case .iPhoneSE2: return "iPhone SE (2nd generation)"
11291139
case .iPad2: return "iPad 2"
11301140
case .iPad3: return "iPad (3rd generation)"
11311141
case .iPad4: return "iPad (4th generation)"
@@ -1489,6 +1499,7 @@ extension Device {
14891499
case .iPhoneSE: return [.wide]
14901500
case .iPhone8: return [.wide]
14911501
case .iPhoneXR: return [.wide]
1502+
case .iPhoneSE2: return [.wide]
14921503
case .iPad2: return [.wide]
14931504
case .iPad3: return [.wide]
14941505
case .iPad4: return [.wide]
@@ -1525,18 +1536,18 @@ extension Device {
15251536

15261537
/// All devices that feature a camera
15271538
public static var allDevicesWithCamera: [Device] {
1528-
return [.iPodTouch5, .iPodTouch6, .iPodTouch7, .iPhone4, .iPhone4s, .iPhone5, .iPhone5c, .iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch, .iPadPro11Inch, .iPadPro12Inch3, .iPadPro11Inch2, .iPadPro12Inch4]
1539+
return [.iPodTouch5, .iPodTouch6, .iPodTouch7, .iPhone4, .iPhone4s, .iPhone5, .iPhone5c, .iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPhoneSE2, .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch, .iPadPro11Inch, .iPadPro12Inch3, .iPadPro11Inch2, .iPadPro12Inch4]
15291540
}
15301541

15311542
/// All devices that feature a normal camera
15321543
@available(*, deprecated, renamed: "allDevicesWithWideCamera")
15331544
public static var allDevicesWithNormalCamera: [Device] {
1534-
return [.iPodTouch5, .iPodTouch6, .iPodTouch7, .iPhone4, .iPhone4s, .iPhone5, .iPhone5c, .iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch, .iPadPro11Inch, .iPadPro12Inch3, .iPadPro11Inch2, .iPadPro12Inch4]
1545+
return Device.allDevicesWithWideCamera
15351546
}
15361547

15371548
/// All devices that feature a wide camera
15381549
public static var allDevicesWithWideCamera: [Device] {
1539-
return [.iPodTouch5, .iPodTouch6, .iPodTouch7, .iPhone4, .iPhone4s, .iPhone5, .iPhone5c, .iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch, .iPadPro11Inch, .iPadPro12Inch3, .iPadPro11Inch2, .iPadPro12Inch4]
1550+
return [.iPodTouch5, .iPodTouch6, .iPodTouch7, .iPhone4, .iPhone4s, .iPhone5, .iPhone5c, .iPhone5s, .iPhone6, .iPhone6Plus, .iPhone6s, .iPhone6sPlus, .iPhone7, .iPhone7Plus, .iPhoneSE, .iPhone8, .iPhone8Plus, .iPhoneX, .iPhoneXS, .iPhoneXSMax, .iPhoneXR, .iPhone11, .iPhone11Pro, .iPhone11ProMax, .iPhoneSE2, .iPad2, .iPad3, .iPad4, .iPadAir, .iPadAir2, .iPad5, .iPad6, .iPadAir3, .iPad7, .iPadMini, .iPadMini2, .iPadMini3, .iPadMini4, .iPadMini5, .iPadPro9Inch, .iPadPro12Inch, .iPadPro12Inch2, .iPadPro10Inch, .iPadPro11Inch, .iPadPro12Inch3, .iPadPro11Inch2, .iPadPro12Inch4]
15401551
}
15411552

15421553
/// All devices that feature a telephoto camera
@@ -1557,7 +1568,7 @@ extension Device {
15571568
/// Returns whether or not the current device has a normal camera
15581569
@available(*, deprecated, renamed: "hasWideCamera")
15591570
public var hasNormalCamera: Bool {
1560-
return self.cameras.contains(.wide)
1571+
return self.hasWideCamera
15611572
}
15621573

15631574
/// Returns whether or not the current device has a wide camera

Source/Device.swift.gyb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ iPhones = [
6363
Device("iPhoneXR", "Device is an [iPhone Xʀ](https://support.apple.com/kb/SP781)", "https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP781/SP781-iPhone-xr.jpg", ["iPhone11,8"], 6.1, (9, 19.5), "iPhone Xʀ", "iPhone XR", 326, False, False, False, True, False, True, True, True, True, 0, False, 1, False),
6464
Device("iPhone11", "Device is an [iPhone 11](https://support.apple.com/kb/SP804)", "https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP804/sp804-iphone11_2x.png", ["iPhone12,1"], 6.1, (9, 19.5), "iPhone 11", "iPhone 11", 326, False, False, False, True, False, True, True, True, True, 0, False, 13, False),
6565
Device("iPhone11Pro", "Device is an [iPhone 11 Pro](https://support.apple.com/kb/SP805)", "https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP805/sp805-iphone11pro_2x.png", ["iPhone12,3"], 5.8, (9, 19.5), "iPhone 11 Pro", "iPhone 11 Pro", 458, False, False, True, True, False, True, True, True, True, 0, False, 123, False),
66-
Device("iPhone11ProMax", "Device is an [iPhone 11 Pro Max](https://support.apple.com/kb/SP806)", "https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP806/sp806-iphone11pro-max_2x.png", ["iPhone12,5"], 6.5, (9, 19.5), "iPhone 11 Pro Max", "iPhone 11 Pro Max", 458, True, False, True, True, False, True, True, True, True, 0, False, 123, False)
66+
Device("iPhone11ProMax", "Device is an [iPhone 11 Pro Max](https://support.apple.com/kb/SP806)", "https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP806/sp806-iphone11pro-max_2x.png", ["iPhone12,5"], 6.5, (9, 19.5), "iPhone 11 Pro Max", "iPhone 11 Pro Max", 458, True, False, True, True, False, True, True, True, True, 0, False, 123, False),
67+
Device("iPhoneSE2", "Device is an [iPhone SE (2nd generation)](https://support.apple.com/kb/SP820)", "https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP820/iphone-se-2nd-gen_2x.png", ["iPhone12,8"], 4.7, (9, 16), "iPhone SE (2nd generation)", "iPhone SE (2nd generation)", 326, False, False, False, False, True, False, False, True, False, 0, False, 1, False)
6768
]
6869

6970
iPads = [
@@ -1129,7 +1130,7 @@ extension Device {
11291130
/// All devices that feature a normal camera
11301131
@available(*, deprecated, renamed: "allDevicesWithWideCamera")
11311132
public static var allDevicesWithNormalCamera: [Device] {
1132-
return [${', '.join(list(map(lambda device: "." + device.caseName, list(filter(lambda device: device.cameras == 1 or device.cameras == 12 or device.cameras == 13 or device.cameras == 123, iOSDevices)))))}]
1133+
return Device.allDevicesWithWideCamera
11331134
}
11341135

11351136
/// All devices that feature a wide camera
@@ -1155,7 +1156,7 @@ extension Device {
11551156
/// Returns whether or not the current device has a normal camera
11561157
@available(*, deprecated, renamed: "hasWideCamera")
11571158
public var hasNormalCamera: Bool {
1158-
return self.cameras.contains(.wide)
1159+
return self.hasWideCamera
11591160
}
11601161

11611162
/// Returns whether or not the current device has a wide camera

0 commit comments

Comments
 (0)