initialize method
Starts monitoring. Reference counted: each call must be balanced by a dispose call.
Implementation
@override
Future<void> initialize() => _serialized(() async {
_refCount++;
if (_refCount > 1) return;
// Subscribe before starting native monitoring so no event is missed.
final subscription = eventChannel.receiveBroadcastStream().listen(
_handleCallStateEvent,
onError: (Object error) {
debugPrint('call_state_handler: event channel error: $error');
},
);
_eventSubscription = subscription;
try {
await methodChannel.invokeMethod<void>('initialize');
} catch (_) {
_refCount--;
_eventSubscription = null;
await subscription.cancel();
rethrow;
}
});