bitwarden / android

Bitwarden mobile app for Android.
https://bitwarden.com
GNU General Public License v3.0
5.85k stars 760 forks source link

Update NotificationPayload to handle null values #3391

Closed david-livefront closed 3 days ago

david-livefront commented 3 days ago

🎟ī¸ Tracking

N/A

📔 Objective

This PR resolves a crash found in Crashlytics:

    Fatal Exception: kotlinx.serialization.MissingFieldException: Fields [Id, RevisionDate] are required for type with serial name 'com.x8bit.bitwarden.data.platform.manager.model.NotificationPayload.SyncCipherNotification', but they were missing at path: $
       at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:95)
       at kotlinx.serialization.json.Json.decodeFromString(Json.kt:165)
       at com.x8bit.bitwarden.data.platform.manager.PushManagerImpl.onMessageReceived(PushManagerImpl.kt:347)
       at com.x8bit.bitwarden.data.platform.manager.PushManagerImpl.onMessageReceived(PushManagerImpl.kt:125)
       at com.x8bit.bitwarden.data.push.BitwardenFirebaseMessagingService.onMessageReceived(BitwardenFirebaseMessagingService.kt:23)
       at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(FirebaseMessagingService.java:243)
       at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(FirebaseMessagingService.java:193)
       at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(FirebaseMessagingService.java:179)
       at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(FirebaseMessagingService.java:168)
       at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$com-google-firebase-messaging-EnhancedIntentService(EnhancedIntentService.java:82)
       at com.google.firebase.messaging.EnhancedIntentService$$ExternalSyntheticLambda1.run(D8$$SyntheticClass)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
       at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.3.0:2)
       at java.lang.Thread.run(Thread.java:1012)

⏰ Reminders before review

đŸĻŽ Reviewer guidelines

github-actions[bot] commented 3 days ago

Logo Checkmarx One – Scan Summary & Details – 08f66f04-7a6d-4779-9c1a-eecca94a98de

No New Or Fixed Issues Found

codecov[bot] commented 3 days ago

Codecov Report

Attention: Patch coverage is 44.44444% with 5 lines in your changes missing coverage. Please review.

Project coverage is 85.65%. Comparing base (44e2596) to head (8a31e64).

Files Patch % Lines
...bitwarden/data/platform/manager/PushManagerImpl.kt 44.44% 0 Missing and 5 partials :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #3391 +/- ## ========================================== - Coverage 85.66% 85.65% -0.01% ========================================== Files 356 356 Lines 28917 28922 +5 Branches 5010 5015 +5 ========================================== + Hits 24772 24774 +2 Misses 2123 2123 - Partials 2022 2025 +3 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

david-livefront commented 3 days ago

Thanks @brian-livefront