@@ -46,14 +46,21 @@ public enum DeviceModel: CaseIterable {
4646 case iPhone15Pro, iPhone15ProMax
4747 case iPhone16, iPhone16Plus
4848 case iPhone16Pro, iPhone16ProMax
49+ case iPhone16e
50+ case iPhoneAir
51+ case iPhone17
52+ case iPhone17Pro, iPhone17ProMax
4953
5054 case iPadFirstGen, iPadSecondGen, iPadThirdGen, iPadFourthGen, iPadFifthGen, iPadSixthGen, iPadSeventhGen, iPadEighthGen, iPadNinthGen, iPadTenthGen
55+ case iPadA16
5156
5257 case iPadAir, iPadAir2, iPadAir3, iPadAir4, iPadAir5
5358
5459 case iPadAir11InchM2, iPadAir13InchM2
60+ case iPadAir11InchM3, iPadAir13InchM3
5561
5662 case iPadMini, iPadMini2, iPadMini3, iPadMini4, iPadMini5, iPadMini6
63+ case iPadMiniA17Pro
5764
5865 case iPadPro9_7Inch, iPadPro10_5Inch, iPadPro12_9Inch, iPadPro12_9Inch_SecondGen
5966
@@ -86,6 +93,9 @@ public enum DeviceModel: CaseIterable {
8693 case series9
8794 case ultra2
8895 case series10
96+ case series11
97+ case ultra3
98+ case se3
8999 #endif
90100
91101 case unknown
@@ -184,6 +194,13 @@ extension DeviceModel {
184194 case ( 17 , 2 ) : return . iPhone16ProMax
185195 case ( 17 , 3 ) : return . iPhone16
186196 case ( 17 , 4 ) : return . iPhone16Plus
197+
198+ case ( 17 , 5 ) : return . iPhone16e
199+
200+ case ( 18 , 1 ) : return . iPhone17Pro
201+ case ( 18 , 2 ) : return . iPhone17ProMax
202+ case ( 18 , 3 ) : return . iPhone17
203+ case ( 18 , 4 ) : return . iPhoneAir
187204
188205 default : return . unknown
189206 }
@@ -212,21 +229,26 @@ extension DeviceModel {
212229 case ( 11 , 6 ) , ( 11 , 7 ) : return . iPadEighthGen
213230 case ( 12 , 1 ) , ( 12 , 2 ) : return . iPadNinthGen
214231 case ( 13 , 18 ) , ( 13 , 19 ) : return . iPadTenthGen
232+ case ( 15 , 7 ) , ( 15 , 8 ) : return . iPadA16
233+
215234 case ( 4 , 1 ) , ( 4 , 2 ) , ( 4 , 3 ) : return . iPadAir
216235 case ( 5 , 3 ) , ( 5 , 4 ) : return . iPadAir2
217236 case ( 11 , 3 ) , ( 11 , 4 ) : return . iPadAir3
218237 case ( 13 , 1 ) , ( 13 , 2 ) : return . iPadAir4
219238 case ( 13 , 16 ) , ( 13 , 17 ) : return . iPadAir5
220- case ( 14 , 8 ) , ( 14 , 9 ) :
221- return . iPadAir11InchM2
222- case ( 14 , 10 ) , ( 14 , 11 ) :
223- return . iPadAir13InchM2
239+ case ( 14 , 8 ) , ( 14 , 9 ) : return . iPadAir11InchM2
240+ case ( 14 , 10 ) , ( 14 , 11 ) : return . iPadAir13InchM2
241+ case ( 15 , 3 ) , ( 15 , 4 ) : return . iPadAir11InchM3
242+ case ( 15 , 5 ) , ( 15 , 6 ) : return . iPadAir13InchM3
243+
224244 case ( 2 , 5 ) , ( 2 , 6 ) , ( 2 , 7 ) : return . iPadMini
225245 case ( 4 , 4 ) , ( 4 , 5 ) , ( 4 , 6 ) : return . iPadMini2
226246 case ( 4 , 7 ) , ( 4 , 8 ) , ( 4 , 9 ) : return . iPadMini3
227247 case ( 5 , 1 ) , ( 5 , 2 ) : return . iPadMini4
228248 case ( 11 , 1 ) , ( 11 , 2 ) : return . iPadMini5
229249 case ( 14 , 1 ) , ( 14 , 2 ) : return . iPadMini6
250+ case ( 16 , 1 ) , ( 16 , 2 ) : return . iPadMiniA17Pro
251+
230252 case ( 6 , 3 ) , ( 6 , 4 ) : return . iPadPro9_7Inch
231253 case ( 7 , 3 ) , ( 7 , 4 ) : return . iPadPro10_5Inch
232254 case ( 8 , 1 ) , ( 8 , 2 ) , ( 8 , 3 ) , ( 8 , 4 ) : return . iPadPro11Inch
@@ -302,6 +324,9 @@ extension DeviceModel {
302324 case ( 7 , 1 ) , ( 7 , 2 ) , ( 7 , 3 ) , ( 7 , 4 ) : return . series9
303325 case ( 7 , 5 ) : return . ultra2
304326 case ( 7 , 8 ) , ( 7 , 9 ) , ( 7 , 10 ) , ( 7 , 11 ) : return . series10
327+ case ( 7 , 17 ) , ( 7 , 18 ) , ( 7 , 19 ) , ( 7 , 20 ) : return . series11
328+ case ( 7 , 12 ) : return . ultra3
329+ case ( 7 , 13 ) , ( 7 , 14 ) , ( 7 , 15 ) , ( 7 , 16 ) : return . se3
305330 default : return . unknown
306331 }
307332 }
@@ -314,7 +339,6 @@ extension DeviceModel {
314339extension DeviceModel {
315340 public var hasNotch : Bool {
316341 switch self {
317-
318342 case . iPhoneX, . iPhoneXS, . iPhoneXSMax, . iPhoneXR:
319343 return true
320344 case . iPhone11, . iPhone11Pro, . iPhone11ProMax:
@@ -325,7 +349,8 @@ extension DeviceModel {
325349 return true
326350 case . iPhone14, . iPhone14Plus:
327351 return true
328-
352+ case . iPhone16e:
353+ return true
329354 default :
330355 return false
331356 }
@@ -339,6 +364,8 @@ extension DeviceModel {
339364 return true
340365 case . iPhone16, . iPhone16Plus, . iPhone16Pro, . iPhone16ProMax:
341366 return true
367+ case . iPhone17, . iPhoneAir, . iPhone17Pro, . iPhone17ProMax:
368+ return true
342369 default :
343370 return false
344371 }
0 commit comments