From 0959284e6fa5af2bb021811bcc71557a5cc01d92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bispo?= Date: Mon, 3 Nov 2025 20:33:56 +0000 Subject: [PATCH] [PM-26736] Fix push notification logout reason serialization (#6116) --- .../platform/manager/model/NotificationPayload.kt | 2 +- .../manager/model/PushNotificationLogOutReason.kt | 11 +++++++++++ .../data/platform/manager/PushManagerTest.kt | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/NotificationPayload.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/NotificationPayload.kt index 558884f1b3..9771bcccb7 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/NotificationPayload.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/NotificationPayload.kt @@ -57,7 +57,7 @@ sealed class NotificationPayload { @JsonNames("Date", "date") val date: ZonedDateTime?, - @JsonNames("PushNotificationLogOutReason", "pushNotificationLogOutReason") + @JsonNames("Reason", "reason") val pushNotificationLogOutReason: PushNotificationLogOutReason?, ) : NotificationPayload() diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/PushNotificationLogOutReason.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/PushNotificationLogOutReason.kt index 805f342a9a..d0dfb505b7 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/PushNotificationLogOutReason.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/PushNotificationLogOutReason.kt @@ -1,11 +1,22 @@ package com.x8bit.bitwarden.data.platform.manager.model +import androidx.annotation.Keep +import com.bitwarden.core.data.serializer.BaseEnumeratedIntSerializer import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable /** * Enumerated values to represent the possible reasons for a log out push notification */ +@Serializable(with = PushNotificationLogOutReasonSerializer::class) enum class PushNotificationLogOutReason { @SerialName("0") KDF_CHANGE, } + +@Keep +private class PushNotificationLogOutReasonSerializer : + BaseEnumeratedIntSerializer( + className = "PushNotificationLogOutReason", + values = PushNotificationLogOutReason.entries.toTypedArray(), + ) diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/PushManagerTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/PushManagerTest.kt index 269f8b78ec..c16f14a869 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/PushManagerTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/PushManagerTest.kt @@ -975,7 +975,7 @@ private val LOGOUT_KDF_NOTIFICATION_MAP = mapOf( "payload" to """{ "UserId": "078966a2-93c2-4618-ae2a-0a2394c88d37", "Date": "2023-10-27T12:00:00.000Z", - "PushNotificationLogOutReason": "0" + "Reason": 0 }""", )