fixes for device badge

This commit is contained in:
Kylmakalle 2024-07-04 03:50:10 +03:00
parent b58e326f38
commit 03d4f0803e
2 changed files with 23 additions and 6 deletions

View File

@ -387,4 +387,19 @@ public extension DeviceMetrics {
} }
return modelCode ?? "unknown" return modelCode ?? "unknown"
} }
var modelHasDynamicIsland: Bool {
switch self.deviceModelCode {
case "iPhone15,2", // iPhone 14 Pro
"iPhone15,3", // iPhone 14 Pro Max
"iPhone15,4", // iPhone 15
"iPhone15,5", // iPhone 15 Plus
"iPhone16,1", // iPhone 15 Pro
"iPhone16,2": // iPhone 15 Pro Max
return true
default:
return false
}
}
} }

View File

@ -1170,17 +1170,19 @@ public class Window1 {
if let image = self.badgeView.image { if let image = self.badgeView.image {
self.updateBadgeVisibility() self.updateBadgeVisibility()
// MARK: Swiftgram // MARK: Swiftgram
var badgeOffset: CGFloat = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone13ProMax.statusBarHeight var badgeOffset: CGFloat
if case self.deviceMetrics = DeviceMetrics.iPhone14ProZoomed { if case self.deviceMetrics = DeviceMetrics.iPhone14ProZoomed {
badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProZoomed.statusBarHeight badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProZoomed.statusBarHeight
if ![ if self.deviceMetrics.modelHasDynamicIsland {
"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 badgeOffset += 3.0
} }
} else if case self.deviceMetrics = DeviceMetrics.iPhone14ProMaxZoomed { } else if case self.deviceMetrics = DeviceMetrics.iPhone14ProMaxZoomed {
badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProMaxZoomed.statusBarHeight + 3.0 badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProMaxZoomed.statusBarHeight
if self.deviceMetrics.modelHasDynamicIsland {
badgeOffset += 3.0
}
} else {
badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone13ProMax.statusBarHeight
} }
if badgeOffset != 0 { if badgeOffset != 0 {
badgeOffset += 3.0 // Centering badge in status bar for Dynamic island devices badgeOffset += 3.0 // Centering badge in status bar for Dynamic island devices