Skip to content

hotfix/cp-11915-missing-proguard-rule-for-notificationserviceextension#360

Open
unnaticleverpush wants to merge 2 commits into
masterfrom
hotfix/cp-11915-missing-proguard-rule-for-notificationserviceextension
Open

hotfix/cp-11915-missing-proguard-rule-for-notificationserviceextension#360
unnaticleverpush wants to merge 2 commits into
masterfrom
hotfix/cp-11915-missing-proguard-rule-for-notificationserviceextension

Conversation

@unnaticleverpush

@unnaticleverpush unnaticleverpush commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Added a Proguard rule for NotificationServiceExtension.


Note

Medium Risk
Touches push subscription/token registration and consumer shrinker rules; incorrect handling could affect FCM retries, but the ProGuard change is narrowly scoped to extension implementations.

Overview
Fixes release/minified integrations where app-defined NotificationServiceExtension implementations could be stripped, breaking custom notification handling (CP-11915). Adds an explicit consumer ProGuard -keep rule for classes implementing that interface.

SubscriptionManagerFCM now treats Tasks.await failures from FirebaseMessaging.getToken() explicitly: restores interrupt status on InterruptedException, maps nested SERVICE_NOT_AVAILABLE **ExecutionException**s to IOException for existing retry/backoff, and logs other failures before falling back to FirebaseInstanceId.

Build tooling: root compileSdkVersion 34, Kotlin 1.9.22, and the example app applies org.jetbrains.kotlin.android with compileSdkVersion 34.

Reviewed by Cursor Bugbot for commit 15643d6. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Add a consumer ProGuard rule to keep NotificationServiceExtension, fixing release builds where the extension was stripped and notifications failed. Also hardens FCM token handling and updates build config for SDK 34. Addresses Linear CP-11915.

  • Bug Fixes

    • Keep any class implementing com.cleverpush.NotificationServiceExtension in consumer ProGuard rules.
    • In SubscriptionManagerFCM, handle InterruptedException (preserve interrupt) and ExecutionException from FirebaseMessaging.getToken(); map nested "SERVICE_NOT_AVAILABLE" to IOException and log others.
  • Dependencies

    • Bump compileSdkVersion to 34 and kotlinVersion to 1.9.22.
    • Apply org.jetbrains.kotlin.android plugin in the example app.

Written for commit 15643d6. Summary will update on new commits.

Review in cubic

Added a Proguard rule for `NotificationServiceExtension`.
@unnaticleverpush unnaticleverpush self-assigned this Jun 18, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 4 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread cleverpush/src/main/java/com/cleverpush/manager/SubscriptionManagerFCM.java Outdated
@unnaticleverpush unnaticleverpush requested a review from snuricp June 18, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant