mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-30 15:10:56 +00:00
WIP Fix AppBadge
This commit is contained in:
parent
9b8e109fda
commit
fce69ba1cf
9
Swiftgram/SGAppBadgeOffset/BUILD
Normal file
9
Swiftgram/SGAppBadgeOffset/BUILD
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
filegroup(
|
||||||
|
name = "SGAppBadgeOffset",
|
||||||
|
srcs = glob([
|
||||||
|
"Sources/**/*.swift",
|
||||||
|
]),
|
||||||
|
visibility = [
|
||||||
|
"//visibility:public",
|
||||||
|
],
|
||||||
|
)
|
@ -0,0 +1,9 @@
|
|||||||
|
import Foundation
|
||||||
|
|
||||||
|
extension Window1 {
|
||||||
|
func sgAppBadgeOffset(_ defaultOffset: CGFloat) -> CGFloat {
|
||||||
|
var additionalOffset: CGFloat = 0.0
|
||||||
|
additionalOffset += 30.0
|
||||||
|
return defaultOffset + additionalOffset
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,13 @@
|
|||||||
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
|
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
|
||||||
|
|
||||||
|
sgsrc = [
|
||||||
|
"//Swiftgram/SGAppBadgeOffset:SGAppBadgeOffset"
|
||||||
|
]
|
||||||
|
|
||||||
swift_library(
|
swift_library(
|
||||||
name = "Display",
|
name = "Display",
|
||||||
module_name = "Display",
|
module_name = "Display",
|
||||||
srcs = glob([
|
srcs = sgsrc + glob([
|
||||||
"Source/**/*.swift",
|
"Source/**/*.swift",
|
||||||
]),
|
]),
|
||||||
copts = [
|
copts = [
|
||||||
|
@ -389,33 +389,3 @@ public enum DeviceMetrics: CaseIterable, Equatable {
|
|||||||
return self.hasTopNotch || self.hasDynamicIsland
|
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"
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -1219,25 +1219,7 @@ public class Window1 {
|
|||||||
|
|
||||||
if let image = self.badgeView.image {
|
if let image = self.badgeView.image {
|
||||||
self.updateBadgeVisibility()
|
self.updateBadgeVisibility()
|
||||||
// MARK: Swiftgram
|
self.badgeView.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.windowLayout.size.width - image.size.width) / 2.0), y: self.sgAppBadgeOffset(5.0)), size: image.size)
|
||||||
var badgeOffset: CGFloat
|
|
||||||
if case self.deviceMetrics = DeviceMetrics.iPhone14ProZoomed {
|
|
||||||
badgeOffset = self.deviceMetrics.statusBarHeight - DeviceMetrics.iPhone14ProZoomed.statusBarHeight
|
|
||||||
if self.deviceMetrics.modelHasDynamicIsland {
|
|
||||||
badgeOffset += 3.0
|
|
||||||
}
|
|
||||||
} else if case self.deviceMetrics = DeviceMetrics.iPhone14ProMaxZoomed {
|
|
||||||
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
|
|
||||||
}
|
|
||||||
self.badgeView.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.windowLayout.size.width - image.size.width) / 2.0), y: 5.0 + badgeOffset), size: image.size)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user