Skip to content

Commit be13010

Browse files
committed
LiveQueryController: connect at init
Should fix parse-community#330
1 parent 511bee8 commit be13010

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

lib/src/network/parse_live_query.dart

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,10 @@ class LiveQueryReconnectingController with WidgetsBindingObserver {
5252

5353
LiveQueryReconnectingController(
5454
this._reconnect, this._eventStream, this.debug) {
55-
Connectivity().onConnectivityChanged.listen((ConnectivityResult state) {
56-
if (!_isOnline && state != ConnectivityResult.none) _retryState = 0;
57-
_isOnline = state != ConnectivityResult.none;
58-
if (debug) print('$DEBUG_TAG: $state');
59-
_setReconnect();
60-
});
55+
56+
Connectivity().checkConnectivity().then(_connectivityChanged);
57+
Connectivity().onConnectivityChanged.listen(_connectivityChanged);
58+
6159
_eventStream.listen((LiveQueryClientEvent event) {
6260
switch (event) {
6361
case LiveQueryClientEvent.CONNECTED:
@@ -83,6 +81,13 @@ class LiveQueryReconnectingController with WidgetsBindingObserver {
8381
WidgetsBinding.instance.addObserver(this);
8482
}
8583

84+
void _connectivityChanged(ConnectivityResult state){
85+
if (!_isOnline && state != ConnectivityResult.none) _retryState = 0;
86+
_isOnline = state != ConnectivityResult.none;
87+
if (debug) print('$DEBUG_TAG: $state');
88+
_setReconnect();
89+
}
90+
8691
@override
8792
void didChangeAppLifecycleState(AppLifecycleState state) {
8893
switch (state) {
@@ -102,9 +107,9 @@ class LiveQueryReconnectingController with WidgetsBindingObserver {
102107
retryInterval[_retryState] >= 0) {
103108
_currentTimer =
104109
Timer(Duration(milliseconds: retryInterval[_retryState]), () {
105-
_currentTimer = null;
106-
_reconnect();
107-
});
110+
_currentTimer = null;
111+
_reconnect();
112+
});
108113
if (debug)
109114
print('$DEBUG_TAG: Retrytimer set to ${retryInterval[_retryState]}ms');
110115
if (_retryState < retryInterval.length - 1) _retryState++;
@@ -123,7 +128,7 @@ class Client {
123128
_client = client ??
124129
ParseHTTPClient(
125130
sendSessionId:
126-
autoSendSessionId ?? ParseCoreData().autoSendSessionId,
131+
autoSendSessionId ?? ParseCoreData().autoSendSessionId,
127132
securityContext: ParseCoreData().securityContext);
128133

129134
_debug = isDebugEnabled(objectLevelDebug: debug);
@@ -137,7 +142,7 @@ class Client {
137142
}
138143

139144
reconnectingController = LiveQueryReconnectingController(
140-
() => reconnect(userInitialized: false), getClientEventStream, _debug);
145+
() => reconnect(userInitialized: false), getClientEventStream, _debug);
141146
}
142147
static Client get instance => _getInstance();
143148
static Client _instance;
@@ -204,7 +209,7 @@ class Client {
204209
Future<Subscription> subscribe(QueryBuilder query) async {
205210
if (_webSocket == null) {
206211
await _clientEventStream.any((LiveQueryClientEvent event) =>
207-
event == LiveQueryClientEvent.CONNECTED);
212+
event == LiveQueryClientEvent.CONNECTED);
208213
}
209214
final int requestId = _requestIdGenerator();
210215
final Subscription subscription = Subscription(query, requestId);
@@ -394,7 +399,7 @@ class LiveQuery {
394399
_client = client ??
395400
ParseHTTPClient(
396401
sendSessionId:
397-
autoSendSessionId ?? ParseCoreData().autoSendSessionId,
402+
autoSendSessionId ?? ParseCoreData().autoSendSessionId,
398403
securityContext: ParseCoreData().securityContext);
399404

400405
_debug = isDebugEnabled(objectLevelDebug: debug);

0 commit comments

Comments
 (0)