callbundle_android 1.0.14
callbundle_android: ^1.0.14 copied to clipboard
Android implementation of the CallBundle federated Flutter plugin. Provides ConnectionService + TelecomManager + OEM-adaptive notifications.
1.0.14 #
- Caller avatar support — profile photos displayed in incoming call full-screen Activity (via Coil), notification large icon, and CallStyle person icon.
- Added
callerAvatarfield toCallInfodata class. - Added
io.coil-kt:coil:2.7.0dependency for image loading. NotificationHelper.showOngoingCallNotificationnow accepts optionalcallerAvatarparameter.IncomingCallActivityshows profile photo with circle crop and graceful initials fallback.- Documentation updates — new Caller Avatar section.
1.0.13 #
- Version alignment — all CallBundle packages now share the same version number.
- Documentation rewrite — clean formatting, OEM-adaptive notifications, background reject, token refresh, ProGuard, and battery optimization docs.
1.0.12 #
- Fix: Background FCM engine hijacking main plugin instance —
onAttachedToEnginenow preserves the configured main instance soCallActionReceiversends through the active MethodChannel instead of storing pending. - Fix: Caller metadata missing after background accept —
onCallAcceptednow accepts optionalintentExtrafallback from notification PendingIntent whencallStateManagerdoesn't have the call (registered by background engine). - Fix: Accept notification action doesn't open app (killed state) — Accept button now uses
PendingIntent.getActivity()instead ofgetBroadcast(), which directly launches the Activity with a strong OS-level BAL exemption that works on Android 12+ and all OEMs. Handles intent inonNewIntent(background) andonAttachedToActivity(killed). - Fix: CallStyle Accept also uses getActivity — Android 12+
CallStyle.forIncomingCallwas still usinggetBroadcast()for Accept, now fixed. - Fix: Ringtone continues playing after decline —
mediaPlayerandvibratorare now static/companion fields shared across allNotificationHelperinstances. - Fix: Notification auto-timeout — incoming call notifications auto-dismiss after configured
duration(default 60s), withtimedOutevent sent to Dart. Safety net for delayedcall_cancelledFCM. - Safety net:
onNewIntentdelivers pending events — if pending accept was stored (background engine fallback),bringAppToForegroundintent triggers pending delivery viaNewIntentListener.
1.0.9 #
- Fix: App not brought to foreground after accepting call —
CallActionReceiverandCallBundlePlugin.onCallAccepted()now launch the main Activity withFLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_SINGLE_TOP | FLAG_ACTIVITY_REORDER_TO_FRONTso the app is visible after accepting from a notification in background/killed state.
1.0.8 #
- Fix incoming call UI not showing when app is in killed state —
NotificationHelpernow initializes eagerly at plugin registration instead of waiting forconfigure(). - Fix notification not dismissed on call accept —
cancelNotificationnow called inonCallAccepted(). - Thread
extrametadata through notification PendingIntents so caller info is preserved in cold-start accept/decline flows. CallActionReceivernow extractscallExtraBundle from Intent when plugin is null, preventing metadata loss.
1.0.7 #
- Add
dartPluginClass: CallBundleAndroidfor proper federated plugin registration.
1.0.6 #
- Comprehensive README with architecture, OEM detection, cold-start flow, and permission details.
- Add lock screen support:
showWhenLocked,turnScreenOn, and keyguard dismissal for incoming call full-screen intent. - Full-screen intent now includes
FLAG_ACTIVITY_REORDER_TO_FRONTfor reliable activity display.
1.0.5 #
- Fix critical cold-start bug: Accept/Decline from notification when app is killed now persists to
PendingCallStoreinstead of being silently dropped. - Cancel notification on Decline/End even when plugin instance is null.
1.0.4 #
- Add
checkPermissionsnative handler — returns permission status without prompting. - Fix
requestPermissionsresponse to use consistentNativeCallPermissionsformat.
1.0.3 #
- Actually request
POST_NOTIFICATIONSpermission (API 33+) via system dialog instead of just checking. - Open system settings for
USE_FULL_SCREEN_INTENTpermission (API 34+) when not granted. - Implement
PluginRegistry.RequestPermissionsResultListenerfor proper permission callback handling.
1.0.2 #
- Fix full-screen intent to target the app's launch Activity instead of empty Intent.
- Ensures incoming call notification properly brings the app to foreground.
1.0.1 #
- Documentation updates and metadata cleanup.
1.0.0 #
- Initial release of the CallBundle Android implementation.
ConnectionService+TelecomManagerintegration.- OEM-adaptive notification strategy for budget Android devices.
PendingCallStorefor deterministic cold-start call delivery.- Consumer ProGuard rules shipped with the plugin.
NotificationCompat.CallStylefor API 31+ with standard fallback.- Ringtone and vibration management with ringer mode awareness.
- Full
MethodChannelhandler for all call operations.