callwave_flutter 0.3.1
callwave_flutter: ^0.3.1 copied to clipboard
Flutter plugin for WhatsApp-style or Google Meet/Microsoft Teams-style VoIP call UX. Incoming/outgoing notifications, accept/decline/timeout, CallKit and Android full-screen intents.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
0.3.1 - 2026-03-07 #
Fixed #
- Shortened pubspec description to meet pub.dev 60–180 character requirement
- Tightened dependency constraints (
callwave_flutter_platform_interfaceandcallwave_flutter_method_channelto^0.1.2) for pub.dev compatibility scoring
0.3.0 - 2026-03-07 #
Added #
- Ongoing-call restoration after process death: native layer persists call state
and
connectedAtMs;restoreActiveSessions()restores sessions with correct elapsed time.CallwaveEngine.onResumeCallfor rejoin logic; default falls back toonAnswerCall/onStartCall.CallEventExtraKeys.connectedAtMsin event extra. - Missed-call startup actions:
CallStartupAction,CallStartupActionType, andCallStartupRouteDecision.pendingAction()for when the app is launched from a missed-call notification (tap body or "Call Back") prepareStartupRouteDecision()now returnspendingActionwhen the user launched from a missed-call notification and no active call session existsCallEventExtraKeys.launchActionOpenMissedCallandlaunchActionCallbackfor launch action values in callback/missed eventsbackgroundIncomingCallDeclineValidator,CallDeclineDecision, andCallDeclineFailureReasonfor headless decline reporting from terminated incoming-call UI without opening the app
Breaking for custom platform implementations #
- Custom
CallwaveFlutterPlatformimplementations must implementtakePendingStartupAction()(returnsnullby default). For ongoing-call restoration, implementsyncCallConnectedStateandclearCallState(default no-ops). - Custom
CallwaveFlutterPlatformimplementations must updatemarkMissedto accept optionalextra. OverrideconfirmAcceptedCallonly if using [IncomingAcceptStrategy.deferOpenUntilConfirmed]; it has a default no-op. The method channel implementation already includes these changes. registerBackgroundIncomingCallValidatorsignature changed:backgroundCallbackHandleis now optional, andbackgroundDeclineCallbackHandlewas added. Custom platforms must update their override to accept both optional handles.
0.2.1 - 2026-03-06 #
0.2.0 - 2026-03-06 #
Added #
- Conference session models:
CallParticipantandConferenceState CallSession.updateConferenceState(...)andparticipantCountfor in-app conference orchestration- Built-in conference
CallScreenmode when participant count is greater than 1 CallwaveScopeconference customization hooks:conferenceScreenBuilder,participantTileBuilder, andconferenceControlsBuilderCallwaveThemeDatafor built-in conference styling while preserving current Callwave defaultsCallDataExtraKeys.androidMissedCallNotificationTextfor customizable Android missed call notification body textCallEventExtraKeyswithlaunchActionandlaunchActionOpenOngoingfor platform launch actions (e.g. Android ongoing call notification tap)
Changed #
- Conference layout: primary and local panels now in left column; rail on right. Primary panel title simplified to "Current Speaker"
- Conference mode uses the current Callwave style and keeps controls as a plain bottom row with no rounded dock container
- Default conference controls are now call-type aware:
video calls show
Mic,Speaker,Cam,End; audio calls showMic,Speaker,End - One-to-one call UI remains unchanged and is still used for
participantCount <= 1 - Refactored call actions layout and enhanced test coverage for video call actions
- Enhanced documentation and example app for missed call notifications
0.1.1 - 2026-03-05 #
Changed #
- Extended pubspec description for pub.dev
- Example app moved to
packages/callwave_flutter/examplefor pub.dev recognition - Example imports refactored to relative paths for IDE compatibility
- Listener function declaration in
callwave_flutter_impl.dartclarified - Deduplication logic in
call_session.dartsimplified with map literal - Action button size made constant in
call_action_button.dart - Conference state instantiation in tests updated to use const constructor
- README enhanced with "Why callwave_flutter?" and platform status details
0.1.0 - 2025-03-04 #
Added #
- Initial release of callwave_flutter
CallwaveFluttersingleton withshowIncomingCall,showOutgoingCall,endCall,markMissed, andStream<CallEvent> eventsCallwaveEngineandCallSessionfor session-first orchestrationCallScreenwidget for full-screen call UI (incoming/outgoing, accept/decline, mute/speaker/end)CallwaveScopeandCallStartupRouteDecisionfor cold-start routing- Android implementation: full-screen call intents, notifications, timeout scheduling (
AlarmManager) - iOS implementation: CallKit integration
- Event buffering for cold-start delivery (max 50 events, 10-minute TTL)
PostCallBehaviorfor background-on-ended (Android)CallDataExtraKeysconstants for WebRTC backends (roomId, meetingId, token, etc.)