Skip to content

Commit 47788df

Browse files
Working on it
1 parent 4941061 commit 47788df

File tree

9 files changed

+237
-256
lines changed

9 files changed

+237
-256
lines changed

Package.swift

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ let package = Package(
1111
.visionOS(.v1),
1212
.iOS(.v14),
1313
.macCatalyst(.v14),
14-
.macOS(.v10_13)
14+
.macOS(.v13)
1515
],
1616
products: [
1717
// Products define the executables and libraries a package produces, making them visible to other packages.
@@ -29,3 +29,12 @@ let package = Package(
2929
dependencies: ["DeviceIdentificator"]),
3030
]
3131
)
32+
33+
let swiftSettings: [SwiftSetting] = [
34+
.enableUpcomingFeature("BareSlashRegexLiterals"),
35+
]
36+
37+
for target in package.targets {
38+
target.swiftSettings = target.swiftSettings ?? []
39+
target.swiftSettings?.append(contentsOf: swiftSettings)
40+
}

Sources/DeviceIdentificator/DeviceModel+Name.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
import Foundation
22

33
public extension DeviceModel {
4+
/// Name of the device without the variant. `iPad 1G` instead of `iPad 1G (Wifi)`
5+
var simpleName: String {
6+
if #available(iOS 16.0, *) {
7+
return name.replacing(/\ \(.+?\)/, with: "")
8+
} else {
9+
return name.replacingOccurrences(of: "\\([ \\w]*\\)", with: "$1", options: [.regularExpression])
10+
}
11+
}
12+
13+
/// Name of the device. Including his variant.
414
var name: String {
515
switch self {
616
case .iPod(let model):

Sources/DeviceIdentificator/Models/IPadModel+Name.swift

Lines changed: 82 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -4,149 +4,94 @@ public extension DeviceModel.IPadModel {
44
var name: String {
55
switch self {
66
// iPads
7-
case .iPad1Wifi: return "iPad1,1"
8-
case .iPad1Celullar: return "iPad1,2"
9-
case .iPad2Wifi: return "iPad2,1"
10-
case .iPad2GSM: return "iPad2,2"
11-
case .iPad2CDMA: return "iPad2,3"
12-
case .iPad2NewRev: return "iPad2,4"
13-
case .iPad3Wifi: return "iPad3,1"
14-
case .iPad3CDMA: return "iPad3,2"
15-
case .iPad3GSM: return "iPad3,3"
16-
case .iPad4Wifi: return "iPad3,4"
17-
case .iPad4GSM: return "iPad3,5"
18-
case .iPad4CDMA: return "iPad3,6"
19-
case .iPad5Wifi: return "iPad6,11"
20-
case .iPad5Celullar: return "iPad6,12"
21-
case .iPad6Wifi: return "iPad7,5"
22-
case .iPad6Celullar: return "iPad7,6"
23-
case .iPad7Wifi: return "iPad7,11"
24-
case .iPad7Celullar: return "iPad7,12"
25-
case .iPad8Wifi: return "iPad11,6"
26-
case .iPad8Celullar: return "iPad11,7"
27-
case .iPad9Wifi: return "iPad12,1"
28-
case .iPad9Celullar: return "iPad12,2"
29-
case .iPad10Wifi: return "iPad13,18"
30-
case .iPad10Celullar: return "iPad13,19"
7+
case .gen1Wifi: return "iPad 1G (Wifi)"
8+
case .gen1Celullar: return "iPad 1G (Celullar)"
9+
case .gen2Wifi: return "iPad 2G (Wifi)"
10+
case .gen2GSM: return "iPad 2G (GSM)"
11+
case .gen2CDMA: return "iPad 2G (CDMA)"
12+
case .gen2NewRev: return "iPad 2G (NewRev)"
13+
case .gen3Wifi: return "iPad 3G (Wifi)"
14+
case .gen3CDMA: return "iPad 3G (CDMA)"
15+
case .gen3GSM: return "iPad 3G (GSM)"
16+
case .gen4Wifi: return "iPad 4G (Wifi)"
17+
case .gen4GSM: return "iPad 4G (GSM)"
18+
case .gen4CDMA: return "iPad 4G (CDMA)"
19+
case .gen5Wifi: return "iPad 5G (Wifi)"
20+
case .gen5Celullar: return "iPad 5G (Celullar)"
21+
case .gen6Wifi: return "iPad 6G (Wifi)"
22+
case .gen6Celullar: return "iPad 6G (Celullar)"
23+
case .gen7Wifi: return "iPad 7G (Wifi)"
24+
case .gen7Celullar: return "iPad 7G (Celullar)"
25+
case .gen8Wifi: return "iPad 8G (Wifi)"
26+
case .gen8Celullar: return "iPad 8G (Celullar)"
27+
case .gen9Wifi: return "iPad 9G (Wifi)"
28+
case .gen9Celullar: return "iPad 9G (Celullar)"
29+
case .gen10Wifi: return "iPad 10G (Wifi)"
30+
case .gen10Celullar: return "iPad 10G (Celullar)"
3131

3232
// Minis
33-
case .iPadMini1Wifi: return "iPad2,5"
34-
case .iPadMini1GSM: return "iPad2,6"
35-
case .iPadMini1CDMA: return "iPad2,7"
36-
case .iPadMini2Wifi: return "iPad4,4"
37-
case .iPadMini2GSMCDMA: return "iPad4,5"
38-
case .iPadMini2China: return "iPad4,6"
39-
case .iPadMini3Wifi: return "iPad4,7"
40-
case .iPadMini3GSMCDMA: return "iPad4,8"
41-
case .iPadMini3China: return "iPad4,9"
42-
case .iPadMini4Wifi: return "iPad5,1"
43-
case .iPadMini4Celullar: return "iPad5,2"
44-
case .iPadMini5Wifi: return "iPad11,1"
45-
case .iPadMini5Celullar: return "iPad11,2"
46-
case .iPadMini6Wifi: return "iPad14,1"
47-
case .iPadMini6Celullar: return "iPad14,2"
33+
case .mini1Wifi: return "iPad Mini 1 (Wifi)"
34+
case .mini1GSM: return "iPad Mini 1 (GSM)"
35+
case .mini1CDMA: return "iPad Mini 1 (CDMA)"
36+
case .mini2Wifi: return "iPad Mini 2 (Wifi)"
37+
case .mini2GSMCDMA: return "iPad Mini 2 (Celullar)"
38+
case .mini2China: return "iPad Mini 2 (China)"
39+
case .mini3Wifi: return "iPad Mini 3 (Wifi)"
40+
case .mini3GSMCDMA: return "iPad Mini 3 (Celullar)"
41+
case .mini3China: return "iPad Mini 3 (China)"
42+
case .mini4Wifi: return "iPad Mini 4 (Wifi)"
43+
case .mini4Celullar: return "iPad Mini 4 (Celullar)"
44+
case .mini5Wifi: return "iPad Mini 5 (Wifi)"
45+
case .mini5Celullar: return "iPad Mini 5 (Celullar)"
46+
case .mini6Wifi: return "iPad Mini 6 (Wifi)"
47+
case .mini6Celullar: return "iPad Mini 6 (Celullar)"
4848

4949
// Airs
50-
case .iPadAir1Wifi: return "iPad4,1"
51-
case .iPadAir1GSMCDMA: return "iPad4,2"
52-
case .iPadAir1China: return "iPad4,3"
53-
case .iPadAir2Wifi: return "iPad5,3"
54-
case .iPadAir2Celullar: return "iPad5,4"
55-
case .iPadAir3Wifi: return "iPad11,3"
56-
case .iPadAir3Celullar: return "iPad11,4"
57-
case .iPadAir4Wifi: return "iPad13,1"
58-
case .iPadAir4Celullar: return "iPad13,2"
59-
case .iPadAir5Wifi: return "iPad13,16"
60-
case .iPadAir5Celullar: return "iPad13,17"
50+
case .air1Wifi: return "iPad Air 1 (Wifi)"
51+
case .air1GSMCDMA: return "iPad Air 1 (Celullar)"
52+
case .air1China: return "iPad Air 1 (China)"
53+
case .air2Wifi: return "iPad Air 2 (Wifi)"
54+
case .air2Celullar: return "iPad Air 2 (Celullar)"
55+
case .air3Wifi: return "iPad Air 3 (Wifi)"
56+
case .air3Celullar: return "iPad Air 3 (Celullar)"
57+
case .air4Wifi: return "iPad Air 4 (Wifi)"
58+
case .air4Celullar: return "iPad Air 4 (Celullar)"
59+
case .air5Wifi: return "iPad Air 5 (Wifi)"
60+
case .air5Celullar: return "iPad Air 5 (Celullar)"
6161

6262
// Pros
63-
case .iPadPro1_9d7inchWifi: return "iPad6,3"
64-
case .iPadPro1_9d7inchCelullar: return "iPad6,4"
65-
case .iPadPro1_12d9inchWifi: return "iPad6,7"
66-
case .iPadPro1_12d9inchCellular: return "iPad6,8"
67-
case .iPadPro1_10d5inchWifi: return "iPad7,3"
68-
case .iPadPro1_10d5inchCellular: return "iPad7,4"
69-
case .iPadPro2_12d9inchWifi: return "iPad7,1"
70-
case .iPadPro2_12d9inchCellular: return "iPad7,2"
71-
case .iPadPro1_11inchWifi: return "iPad8,1"
72-
case .iPadPro1_11inchWifiTera: return "iPad8,2"
73-
case .iPadPro1_11inchCelullar: return "iPad8,3"
74-
case .iPadPro1_11inchCelullarTera: return "iPad8,4"
75-
case .iPadPro2_11inchWifi: return "iPad8,9"
76-
case .iPadPro2_11inchCelullar: return "iPad8,10"
77-
case .iPadPro3_12d9inchWifi: return "iPad8,5"
78-
case .iPadPro3_12d9inchWifiTera: return "iPad8,6"
79-
case .iPadPro3_12d9inchCellular: return "iPad8,7"
80-
case .iPadPro3_12d9inchCellularTera: return "iPad8,8"
81-
case .iPadPro4_12d9inchWifi: return "iPad8,11"
82-
case .iPadPro4_12d9inchCellular: return "iPad8,12"
83-
case .iPadPro3_11inchWifi: return "iPad13,4"
84-
case .iPadPro3_11inchWifiTera: return "iPad13,5"
85-
case .iPadPro3_11inchCellular: return "iPad13,6"
86-
case .iPadPro3_11inchCellularTera: return "iPad13,7"
87-
case .iPadPro5_12d9inchWifi: return "iPad13,8"
88-
case .iPadPro5_12d9inchWifiTera: return "iPad13,9"
89-
case .iPadPro5_12d9inchCellular: return "iPad13,10"
90-
case .iPadPro5_12d9inchCellularTera: return "iPad13,11"
91-
case .iPadPro4_11inchWifi: return "iPad14,3"
92-
case .iPadPro4_11inchCellular: return "iPad14,4"
93-
case .iPadPro6_12d9inchWifi: return "iPad14,5"
94-
case .iPadPro6_12d9inchCellular: return "iPad14,6"
63+
case .pro1_9d7inchWifi: return "iPad Pro 1G 9.7\" (Wifi)"
64+
case .pro1_9d7inchCelullar: return "iPad Pro 1G 9.7\" (Celullar)"
65+
case .pro1_12d9inchWifi: return "iPad Pro 1G 12.9\" (Wifi)"
66+
case .pro1_12d9inchCellular: return "iPad Pro 1G 12.9\" (Celullar)"
67+
case .pro1_10d5inchWifi: return "iPad Pro 1G 10.5\" (Wifi)"
68+
case .pro1_10d5inchCellular: return "iPad Pro 1G 10.5\" (Celullar)"
69+
case .pro2_12d9inchWifi: return "iPad Pro 2G 12.9\" (Wifi)"
70+
case .pro2_12d9inchCellular: return "iPad Pro 2G 12.9\" (Celullar)"
71+
case .pro1_11inchWifi: return "iPad Pro 1G 11\" (Wifi)"
72+
case .pro1_11inchWifiTera: return "iPad Pro 1G 11\" (Wifi + Tera)"
73+
case .pro1_11inchCelullar: return "iPad Pro 1G 11\" (Celullar)"
74+
case .pro1_11inchCelullarTera: return "iPad Pro 1G 11\" (Celullar + Tera)"
75+
case .pro2_11inchWifi: return "iPad Pro 2G 11\" (Wifi)"
76+
case .pro2_11inchCelullar: return "iPad Pro 2G 11\" (Celullar)"
77+
case .pro3_12d9inchWifi: return "iPad Pro 3G 12.9\" (Wifi)"
78+
case .pro3_12d9inchWifiTera: return "iPad Pro 3G 12.9\" (Wifi + Tera)"
79+
case .pro3_12d9inchCellular: return "iPad Pro 3G 12.9\" (Celullar)"
80+
case .pro3_12d9inchCellularTera: return "iPad Pro 3G 12.9\" (Celullar + Tera)"
81+
case .pro4_12d9inchWifi: return "iPad Pro 4G 12.9\" (Wifi)"
82+
case .pro4_12d9inchCellular: return "iPad Pro 4G 12.9\" (Celullar)"
83+
case .pro3_11inchWifi: return "iPad Pro 3G 11\" (Wifi)"
84+
case .pro3_11inchWifiTera: return "iPad Pro 3G 11\" (Wifi + Tera)"
85+
case .pro3_11inchCellular: return "iPad Pro 3G 11\" (Celullar)"
86+
case .pro3_11inchCellularTera: return "iPad Pro 3G 11\" (Celullar + Tera)"
87+
case .pro5_12d9inchWifi: return "iPad Pro 5G 12.9\" (Wifi)"
88+
case .pro5_12d9inchWifiTera: return "iPad Pro 5G 12.9\" (Wifi + Tera)"
89+
case .pro5_12d9inchCellular: return "iPad Pro 5G 12.9\" (Celullar)"
90+
case .pro5_12d9inchCellularTera: return "iPad Pro 5G 12.9\" (Celullar + Tera)"
91+
case .pro4_11inchWifi: return "iPad Pro 4G 11\" (Wifi)"
92+
case .pro4_11inchCellular: return "iPad Pro 4G 11\" (Celullar)"
93+
case .pro6_12d9inchWifi: return "iPad Pro 6G 12.9\" (Wifi)"
94+
case .pro6_12d9inchCellular: return "iPad Pro 6G 12.9\" (Celullar)"
9595
}
9696
}
9797
}
98-
/*
99-
switch self {
100-
101-
// iPods Touch
102-
case .iPodTouch1G: return "iPod touch 1G"
103-
case .iPodTouch2G: return "iPod touch 2G"
104-
case .iPodTouch3G: return "iPod touch 3G"
105-
case .iPodTouch4G: return "iPod touch 4G"
106-
case .iPodTouch5G: return "iPod touch 5G"
107-
case .iPodTouch6G: return "iPod touch 6G"
108-
case .iPodTouch7G: return "iPod touch 7G"
109-
110-
// iPads Regular
111-
case .iPad1G: return "iPad 1G"
112-
case .iPad2G: return "iPad 2G"
113-
case .iPad3G: return "iPad 3G"
114-
case .iPad4G: return "iPad 4G"
115-
case .iPad5G: return "iPad 5G"
116-
case .iPad6G: return "iPad 6G"
117-
case .iPad7G: return "iPad 7G"
118-
case .iPad8G: return "iPad 8G"
119-
case .iPad9G: return "iPad 9G"
120-
case .iPad10G: return "iPad 10G"
121-
122-
// iPads Mini
123-
case .iPadMini1: return "iPad Mini"
124-
case .iPadMini2: return "iPad Mini 2"
125-
case .iPadMini3: return "iPad Mini 3"
126-
case .iPadMini4: return "iPad Mini 4"
127-
case .iPadMini5: return "iPad Mini 5"
128-
case .iPadMini6: return "iPad Mini 6"
129-
130-
// iPads Air
131-
case .iPadAir1G: return "iPad Air"
132-
case .iPadAir2G: return "iPad Air 2"
133-
case .iPadAir3G: return "iPad Air 3"
134-
case .iPadAir4G: return "iPad Air 4"
135-
case .iPadAir5G: return "iPad Air 5"
136-
137-
// iPads Pro
138-
case .iPadPro9d7inch1G: return "iPad Pro 9.7-Inch 1G"
139-
case .iPadPro10d5inch1G: return "iPad Pro 10.5-Inch 1G"
140-
case .iPadPro11inch: return "iPad Pro 11-Inch"
141-
case .iPadPro11inch2G: return "iPad Pro 11-Inch 2G"
142-
case .iPadPro11inch3G: return "iPad Pro 11-Inch 3G"
143-
case .iPadPro11inch4G: return "iPad Pro 11-Inch 4G"
144-
case .iPadPro12d9inch1G: return "iPad Pro 12.9-Inch 1G"
145-
case .iPadPro12d9inch2G: return "iPad Pro 12.9-Inch 2G"
146-
case .iPadPro12d9inch3G: return "iPad Pro 12.9-Inch 3G"
147-
case .iPadPro12d9inch4G: return "iPad Pro 12.9-Inch 4G"
148-
case .iPadPro12d9inch5G: return "iPad Pro 12.9-Inch 5G"
149-
case .iPadPro12d9inch6G: return "iPad Pro 12.9-Inch 6G"
150-
151-
}
152-
*/

0 commit comments

Comments
 (0)