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"
}
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 {
self.updateBadgeVisibility()
// MARK: Swiftgram
var badgeOffset: CGFloat = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone13ProMax.statusBarHeight
var badgeOffset: CGFloat
if case self.deviceMetrics = DeviceMetrics.iPhone14ProZoomed {
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) {
if self.deviceMetrics.modelHasDynamicIsland {
badgeOffset += 3.0
}
} 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 {
badgeOffset += 3.0 // Centering badge in status bar for Dynamic island devices