Фикс: групповой пуш-навигация, in-app баннер Telegram parity, надёжность NSE аватарок
This commit is contained in:
@@ -13,7 +13,7 @@ enum ReleaseNotes {
|
||||
body: """
|
||||
|
||||
**Пуш-уведомления**
|
||||
Аватарки отправителей в системных пушах (Communication Notification). In-app баннер переделан 1-в-1 как в Telegram (glass-фон, жесты, анимации). Исправлен спам вибраций при входе. Desktop-suppression 30 сек.
|
||||
Аватарки отправителей в системных пушах. In-app баннер 1-в-1 Telegram (glass-фон, жесты, анимации). Тап по групповому пушу теперь открывает группу, а не пустой чат. Надёжность аватарок: fallback scale, timeout safety. Desktop-suppression 30 сек.
|
||||
"""
|
||||
)
|
||||
]
|
||||
|
||||
@@ -562,7 +562,17 @@ final class AppDelegate: NSObject, UIApplicationDelegate, UNUserNotificationCent
|
||||
}
|
||||
|
||||
// Android parity: try multiple key names for sender identification.
|
||||
let senderKey = Self.extractSenderKey(from: userInfo)
|
||||
var senderKey = Self.extractSenderKey(from: userInfo)
|
||||
|
||||
// Server sends group ID without #group: prefix (CLAUDE.md line 480).
|
||||
// Add prefix so ChatRoute.isGroup detects it correctly.
|
||||
let pushType = userInfo["type"] as? String
|
||||
if pushType == "group_message",
|
||||
!senderKey.isEmpty,
|
||||
!senderKey.hasPrefix("#group:"),
|
||||
!senderKey.hasPrefix("group:") {
|
||||
senderKey = "#group:\(senderKey)"
|
||||
}
|
||||
|
||||
if !senderKey.isEmpty {
|
||||
let senderName = Self.firstNonBlank(userInfo, keys: [
|
||||
|
||||
Reference in New Issue
Block a user