diff --git a/submodules/Display/Source/DeviceMetrics.swift b/submodules/Display/Source/DeviceMetrics.swift index 46db6fa471..beabad15ce 100644 --- a/submodules/Display/Source/DeviceMetrics.swift +++ b/submodules/Display/Source/DeviceMetrics.swift @@ -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" + } +} diff --git a/submodules/Display/Source/WindowContent.swift b/submodules/Display/Source/WindowContent.swift index 9c162889b6..d865efd05b 100644 --- a/submodules/Display/Source/WindowContent.swift +++ b/submodules/Display/Source/WindowContent.swift @@ -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 }