Another attempt to fix badge on some Zoomed devices

This commit is contained in:
Kylmakalle
2024-07-04 02:45:56 +03:00
parent 4a192dd728
commit bc1e6b03b7
2 changed files with 22 additions and 1 deletions

View File

@@ -373,3 +373,18 @@ public enum DeviceMetrics: CaseIterable, Equatable {
return self.hasTopNotch || self.hasDynamicIsland
}
}
// MARK: Swifgram
public extension DeviceMetrics {
var deviceModelCode: String {
var systemInfo = utsname()
uname(&systemInfo)
let modelCode = withUnsafePointer(to: &systemInfo.machine) {
$0.withMemoryRebound(to: CChar.self, capacity: 1) {
ptr in String.init(validatingUTF8: ptr)
}
}
return modelCode ?? "unknown"
}
}

View File

@@ -1172,7 +1172,13 @@ public class Window1 {
// MARK: Swiftgram
var badgeOffset: CGFloat = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone13ProMax.statusBarHeight
if case self.deviceMetrics = DeviceMetrics.iPhone14ProZoomed {
badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProZoomed.statusBarHeight + 3.0
badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProZoomed.statusBarHeight
if ![
"iPhone13,1", // iPhone 12 mini in Zoomed mode detected as iPhone14ProZoomed
"iPhone14,4" // iPhone 13 Mini likely affected
].contains(self.deviceMetrics.deviceModelCode) {
badgeOffset += 3.0
}
} else if case self.deviceMetrics = DeviceMetrics.iPhone14ProMaxZoomed {
badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProMaxZoomed.statusBarHeight + 3.0
}