Релиз 1.4.2: защита от звонков с другого устройства, лог FCM токена
All checks were successful
Android Kernel Build / build (push) Successful in 21m53s
All checks were successful
Android Kernel Build / build (push) Successful in 21m53s
- CREATE_ROOM без ключей шифрования — сброс (звонок принят на другом устройстве) - dispose PeerConnection при завершении звонка (фикс зависания портов ~30с) - Сохранение FCM токена в crash_reports для rosettadev1
This commit is contained in:
@@ -23,8 +23,8 @@ val gitShortSha = safeGitOutput("rev-parse", "--short", "HEAD") ?: "unknown"
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
// Rosetta versioning — bump here on each release
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
val rosettaVersionName = "1.4.1"
|
||||
val rosettaVersionCode = 43 // Increment on each release
|
||||
val rosettaVersionName = "1.4.2"
|
||||
val rosettaVersionCode = 44 // Increment on each release
|
||||
val customWebRtcAar = file("libs/libwebrtc-custom.aar")
|
||||
|
||||
android {
|
||||
|
||||
@@ -373,6 +373,14 @@ object CallManager {
|
||||
breadcrumb("SIG: CREATE_ROOM IGNORED — empty roomId!")
|
||||
return
|
||||
}
|
||||
// Если ключей нет — звонок был принят на другом устройстве,
|
||||
// а сервер всё равно прислал CREATE_ROOM. Сбрасываем.
|
||||
if (sharedKeyBytes == null && localPrivateKey == null) {
|
||||
breadcrumb("SIG: CREATE_ROOM but no session keys — call accepted on another device, resetting")
|
||||
CallSoundManager.stop()
|
||||
resetSession(reason = null, notifyPeer = false)
|
||||
return
|
||||
}
|
||||
roomId = incomingRoomId
|
||||
updateState {
|
||||
it.copy(
|
||||
|
||||
@@ -748,6 +748,15 @@ object ProtocolManager {
|
||||
send(subPacket)
|
||||
lastSubscribedToken = token
|
||||
addLog("🔔 Push token SUBSCRIBE sent")
|
||||
|
||||
// Сохраняем FCM токен в crash_reports для просмотра через rosettadev1
|
||||
try {
|
||||
val dir = java.io.File(context.filesDir, "crash_reports")
|
||||
if (!dir.exists()) dir.mkdirs()
|
||||
val f = java.io.File(dir, "fcm_token.txt")
|
||||
val ts = java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.getDefault()).format(java.util.Date())
|
||||
f.writeText("=== FCM TOKEN ===\n\nTimestamp: $ts\nDeviceId: $deviceId\n\nToken:\n$token\n")
|
||||
} catch (_: Throwable) {}
|
||||
}
|
||||
|
||||
private fun requestSynchronize() {
|
||||
|
||||
Reference in New Issue
Block a user