From 8d8a51e57cb6583a048f5a8f52cc340b78c84e38 Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Mon, 25 Nov 2024 16:14:40 +0100 Subject: [PATCH] feat: added new M4 Macs (MacBook Pro and new Mac Mini) --- Kit/plugins/SystemKit.swift | 13 ++++++++++- .../macMini2024.imageset/Contents.json | 21 ++++++++++++++++++ .../macMini2024.imageset/macMini2024.png | Bin 0 -> 17537 bytes 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 Stats/Supporting Files/Assets.xcassets/devices/macMini2024.imageset/Contents.json create mode 100644 Stats/Supporting Files/Assets.xcassets/devices/macMini2024.imageset/macMini2024.png diff --git a/Kit/plugins/SystemKit.swift b/Kit/plugins/SystemKit.swift index 52040aab..aca611f8 100644 --- a/Kit/plugins/SystemKit.swift +++ b/Kit/plugins/SystemKit.swift @@ -453,6 +453,9 @@ public class SystemKit { private func getIcon(type: deviceType, year: Int) -> NSImage { switch type { case .macMini: + if year >= 2024 { + return NSImage(named: NSImage.Name("macbookMini2024"))! + } return NSImage(named: NSImage.Name("macMini"))! case .macStudio: return NSImage(named: NSImage.Name("macStudio"))! @@ -521,6 +524,8 @@ let deviceDict: [String: model_s] = [ "Macmini9,1": model_s(name: "Mac mini (M1)", year: 2020, type: .macMini), "Mac14,3": model_s(name: "Mac mini (M2)", year: 2023, type: .macMini), "Mac14,12": model_s(name: "Mac mini (M2 Pro)", year: 2023, type: .macMini), + "Mac16,10": model_s(name: "Mac mini (M4)", year: 2024, type: .macMini), + "Mac16,11": model_s(name: "Mac mini (M4 Pro)", year: 2024, type: .macMini), // Mac Studio "Mac13,1": model_s(name: "Mac Studio (M1 Max)", year: 2022, type: .macStudio), @@ -551,6 +556,8 @@ let deviceDict: [String: model_s] = [ "iMac21,2": model_s(name: "iMac 24-Inch (M1)", year: 2021, type: .iMac), "Mac15,4": model_s(name: "iMac 24-Inch (M3, 8 CPU/8 GPU)", year: 2023, type: .iMac), "Mac15,5": model_s(name: "iMac 24-Inch (M3, 8 CPU/10 GPU)", year: 2023, type: .iMac), + "Mac16,2": model_s(name: "iMac 24-Inch (M4, 8 CPU/8 GPU)", year: 2024, type: .iMac), + "Mac16,3": model_s(name: "iMac 24-Inch (M4, 10 CPU/10 GPU)", year: 2024, type: .iMac), // iMac Pro "iMacPro1,1": model_s(name: "iMac Pro", year: 2017, type: .iMacPro), @@ -615,7 +622,11 @@ let deviceDict: [String: model_s] = [ "Mac15,8": model_s(name: "MacBook Pro 14\" (M3 Max, 16 CPU/40 GPU)", year: 2023, type: .macbookPro), "Mac15,9": model_s(name: "MacBook Pro 16\" (M3 Max, 16 CPU/40 GPU)", year: 2023, type: .macbookPro), "Mac15,10": model_s(name: "MacBook Pro 14\" (M3 Max, 14 CPU/30 GPU)", year: 2023, type: .macbookPro), - "Mac15,11": model_s(name: "MacBook Pro 16\" (M3 Max, 14 CPU/30 GPU)", year: 2023, type: .macbookPro) + "Mac16,1": model_s(name: "MacBook Pro 14\" (M4, 10 CPU/10 GPU)", year: 2024, type: .macbookPro), + "Mac16,5": model_s(name: "MacBook Pro 16\" (M4 Max)", year: 2024, type: .macbookPro), + "Mac16,6": model_s(name: "MacBook Pro 14\" (M4 Max, 16 CPU/40 GPU)", year: 2024, type: .macbookPro), + "Mac16,7": model_s(name: "MacBook Pro 16\" (M4 Pro, 14 CPU/20 GPU)", year: 2024, type: .macbookPro), + "Mac16,8": model_s(name: "MacBook Pro 16\" (M4 Pro)", year: 2024, type: .macbookPro) ] let osDict: [String: String] = [ diff --git a/Stats/Supporting Files/Assets.xcassets/devices/macMini2024.imageset/Contents.json b/Stats/Supporting Files/Assets.xcassets/devices/macMini2024.imageset/Contents.json new file mode 100644 index 00000000..b586d53e --- /dev/null +++ b/Stats/Supporting Files/Assets.xcassets/devices/macMini2024.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "macMini2024.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Stats/Supporting Files/Assets.xcassets/devices/macMini2024.imageset/macMini2024.png b/Stats/Supporting Files/Assets.xcassets/devices/macMini2024.imageset/macMini2024.png new file mode 100644 index 0000000000000000000000000000000000000000..65200536b2e2bcebc07024c09e30e75bf869dee9 GIT binary patch literal 17537 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 literal 0 HcmV?d00001