feat: Enhance FCM token management by adding unsubscribe logic to prevent duplicate registrations
This commit is contained in:
@@ -14,8 +14,9 @@ import com.rosetta.messenger.network.ProtocolManager
|
||||
object MessageLogger {
|
||||
private const val TAG = "RosettaMsg"
|
||||
|
||||
// Включить/выключить логирование (только в DEBUG)
|
||||
private val isEnabled: Boolean = android.os.Build.TYPE != "user"
|
||||
// Всегда включён — вывод идёт только в ProtocolManager.addLog() (in-memory UI),
|
||||
// не в logcat, безопасно для release
|
||||
private val isEnabled: Boolean = true
|
||||
|
||||
/**
|
||||
* Добавить лог в UI (Debug Logs в чате)
|
||||
@@ -252,6 +253,120 @@ object MessageLogger {
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование расшифровки фото (inline blob)
|
||||
*/
|
||||
fun logPhotoDecryptStart(
|
||||
messageId: String,
|
||||
attachmentId: String,
|
||||
blobSize: Int
|
||||
) {
|
||||
if (!isEnabled) return
|
||||
val shortMsgId = messageId.take(8)
|
||||
val shortAttId = attachmentId.take(8)
|
||||
val msg = "🖼️ PHOTO DECRYPT | msg:$shortMsgId att:$shortAttId blob:${blobSize}b"
|
||||
Log.d(TAG, msg)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование успешной расшифровки фото
|
||||
*/
|
||||
fun logPhotoDecryptSuccess(
|
||||
messageId: String,
|
||||
attachmentId: String,
|
||||
saved: Boolean
|
||||
) {
|
||||
if (!isEnabled) return
|
||||
val shortMsgId = messageId.take(8)
|
||||
val shortAttId = attachmentId.take(8)
|
||||
val msg = "✅ PHOTO OK | msg:$shortMsgId att:$shortAttId saved:$saved"
|
||||
Log.d(TAG, msg)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование ошибки расшифровки фото (blob null)
|
||||
*/
|
||||
fun logPhotoDecryptFailed(
|
||||
messageId: String,
|
||||
attachmentId: String
|
||||
) {
|
||||
if (!isEnabled) return
|
||||
val shortMsgId = messageId.take(8)
|
||||
val shortAttId = attachmentId.take(8)
|
||||
val msg = "❌ PHOTO DECRYPT FAIL | msg:$shortMsgId att:$shortAttId (decryptedBlob=null)"
|
||||
Log.e(TAG, msg)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование ошибки сохранения фото
|
||||
*/
|
||||
fun logPhotoSaveFailed(
|
||||
messageId: String,
|
||||
attachmentId: String
|
||||
) {
|
||||
if (!isEnabled) return
|
||||
val shortMsgId = messageId.take(8)
|
||||
val shortAttId = attachmentId.take(8)
|
||||
val msg = "⚠️ PHOTO SAVE FAIL | msg:$shortMsgId att:$shortAttId"
|
||||
Log.e(TAG, msg)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование исключения при расшифровке фото
|
||||
*/
|
||||
fun logPhotoDecryptError(
|
||||
messageId: String,
|
||||
attachmentId: String,
|
||||
error: Throwable
|
||||
) {
|
||||
if (!isEnabled) return
|
||||
val shortMsgId = messageId.take(8)
|
||||
val shortAttId = attachmentId.take(8)
|
||||
val errMsg = error.message?.take(80) ?: "unknown"
|
||||
val msg = "❌ PHOTO ERR | msg:$shortMsgId att:$shortAttId err:$errMsg"
|
||||
Log.e(TAG, msg, error)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование CDN загрузки фото
|
||||
*/
|
||||
fun logPhotoCdnDownload(message: String) {
|
||||
if (!isEnabled) return
|
||||
val msg = "🖼️ $message"
|
||||
Log.d(TAG, msg)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование успешной отправки read receipt
|
||||
*/
|
||||
fun logReadReceiptSent(opponentKey: String, retry: Boolean = false) {
|
||||
if (!isEnabled) return
|
||||
val shortKey = opponentKey.take(12)
|
||||
val retryStr = if (retry) " (retry)" else ""
|
||||
val msg = "👁 READ RECEIPT SENT$retryStr | to:$shortKey"
|
||||
Log.d(TAG, msg)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование ошибки отправки read receipt
|
||||
*/
|
||||
fun logReadReceiptFailed(opponentKey: String, error: Throwable, retry: Boolean = false) {
|
||||
if (!isEnabled) return
|
||||
val shortKey = opponentKey.take(12)
|
||||
val errMsg = error.message?.take(50) ?: "unknown"
|
||||
val retryStr = if (retry) " (retry)" else ""
|
||||
val msg = "❌ READ RECEIPT FAIL$retryStr | to:$shortKey err:$errMsg"
|
||||
Log.e(TAG, msg, error)
|
||||
addToUI(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
* Общий debug лог
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user