Skip to content

Commit e5edd57

Browse files
PerondasPerondasPerondascloudwebrtc
authored
Fixed nullability errors in subscriber.dart (#319)
* Added default response to cancellation * Added flag to stop ConcurrentModificationError when stopping ua * update. * Removed some problematic ! operators Co-authored-by: Perondas <114622@fhwn.ac.at> Co-authored-by: Perondas <Pperondas@gmail.com> Co-authored-by: cloudwebrtc <duanweiwei1982@gmail.com>
1 parent 8ba53ea commit e5edd57

File tree

1 file changed

+45
-47
lines changed

1 file changed

+45
-47
lines changed

lib/src/subscriber.dart

Lines changed: 45 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -39,44 +39,6 @@ class C {
3939
}
4040

4141
class Subscriber extends EventManager implements Owner {
42-
String? _id;
43-
44-
final String _target;
45-
46-
late int _expires;
47-
48-
String? _contentType;
49-
50-
late Map<String, dynamic> _params;
51-
52-
late int _state;
53-
54-
late Dialog? _dialog;
55-
56-
DateTime? _expires_timestamp;
57-
58-
Timer? _expires_timer;
59-
60-
late bool _terminated;
61-
62-
Timer? _unsubscribe_timeout_timer;
63-
64-
late Map<String, dynamic> _data;
65-
66-
late String _event_name;
67-
68-
num? _event_id;
69-
70-
late List<dynamic> _headers;
71-
72-
late List<Map<String, dynamic>> _queue;
73-
74-
@override
75-
late Function(IncomingRequest p1) receiveRequest;
76-
77-
@override
78-
UA ua;
79-
8042
Subscriber(this.ua, this._target, String eventName, String accept,
8143
[int expires = 900,
8244
String? contentType,
@@ -149,14 +111,51 @@ class Subscriber extends EventManager implements Owner {
149111
// To enqueue subscribes created before receive initial subscribe OK.
150112
_queue = <Map<String, dynamic>>[];
151113
}
114+
String? _id;
115+
116+
final String _target;
117+
118+
late int _expires;
119+
120+
String? _contentType;
121+
122+
late Map<String, dynamic> _params;
123+
124+
late int _state;
125+
126+
late Dialog? _dialog;
127+
128+
DateTime? _expires_timestamp;
129+
130+
Timer? _expires_timer;
131+
132+
late bool _terminated;
133+
134+
Timer? _unsubscribe_timeout_timer;
135+
136+
late Map<String, dynamic> _data;
137+
138+
late String _event_name;
139+
140+
num? _event_id;
141+
142+
late List<dynamic> _headers;
143+
144+
late List<Map<String, dynamic>> _queue;
145+
146+
@override
147+
late Function(IncomingRequest p1) receiveRequest;
148+
149+
@override
150+
UA ua;
152151
String? get id => _id;
153152

153+
@override
154154
int? get status => _state;
155155

156156
@override
157157
int get TerminatedCode => C.STATE_TERMINATED;
158158

159-
@override
160159
void onRequestTimeout() {
161160
_dialogTerminated(C.SUBSCRIBE_RESPONSE_TIMEOUT);
162161
}
@@ -165,7 +164,6 @@ class Subscriber extends EventManager implements Owner {
165164
* User API
166165
*/
167166

168-
@override
169167
void onTransportError() {
170168
_dialogTerminated(C.SUBSCRIBE_TRANSPORT_ERROR);
171169
}
@@ -337,7 +335,7 @@ class Subscriber extends EventManager implements Owner {
337335
clearTimeout(_unsubscribe_timeout_timer);
338336

339337
if (_dialog != null) {
340-
_dialog!.terminate();
338+
_dialog?.terminate();
341339
_dialog = null;
342340
}
343341

@@ -357,7 +355,7 @@ class Subscriber extends EventManager implements Owner {
357355
throw ArgumentError('Incoming response was null');
358356
}
359357

360-
if (response.status_code >= 200 && response.status_code! < 300) {
358+
if (response.status_code >= 200 && response.status_code < 300) {
361359
// Create dialog
362360
if (_dialog == null) {
363361
_id = response.call_id!;
@@ -382,7 +380,7 @@ class Subscriber extends EventManager implements Owner {
382380
}
383381
} else {
384382
ua.destroySubscriber(this);
385-
_id = response.call_id!;
383+
_id = response.call_id;
386384
ua.newSubscriber(sub: this);
387385
}
388386

@@ -403,7 +401,7 @@ class Subscriber extends EventManager implements Owner {
403401

404402
int? expires = parseInt(expires_value!, 10);
405403

406-
if (expires! > 0) {
404+
if (expires != null && expires > 0) {
407405
_scheduleSubscribe(expires);
408406
}
409407
} else if (response.status_code == 401 || response.status_code == 407) {
@@ -501,7 +499,7 @@ class Subscriber extends EventManager implements Owner {
501499
headers.add('Content-Type: $_contentType');
502500
}
503501

504-
var manager = EventManager();
502+
EventManager manager = EventManager();
505503
manager.on(EventOnReceiveResponse(), (EventOnReceiveResponse response) {
506504
_receiveSubscribeResponse(response.response);
507505
});
@@ -521,7 +519,7 @@ class Subscriber extends EventManager implements Owner {
521519

522520
request_sender.send();
523521

524-
var s = _dialog!.sendRequest(SipMethod.SUBSCRIBE, <String, dynamic>{
522+
_dialog?.sendRequest(SipMethod.SUBSCRIBE, <String, dynamic>{
525523
'body': body,
526524
'extraHeaders': headers,
527525
'eventHandlers': manager,
@@ -554,7 +552,7 @@ class Subscriber extends EventManager implements Owner {
554552
}
555553

556554
class SubscriptionId {
555+
SubscriptionId(this.target, this.event);
557556
String target;
558557
String event;
559-
SubscriptionId(this.target, this.event);
560558
}

0 commit comments

Comments
 (0)