diff --git a/filcnaplo/lib/api/login.dart b/filcnaplo/lib/api/login.dart index 0b9543e..f0834c8 100644 --- a/filcnaplo/lib/api/login.dart +++ b/filcnaplo/lib/api/login.dart @@ -62,6 +62,8 @@ Future loginAPI({ school: school, yearId: '1', parents: ['Teszt András', 'Teszt Linda'], + json: {"a": "b"}, + address: '1117 Budapest, Gábor Dénes utca 4.', ), role: Role.parent, ); diff --git a/filcnaplo/lib/api/providers/status_provider.dart b/filcnaplo/lib/api/providers/status_provider.dart index 5822366..a556a40 100644 --- a/filcnaplo/lib/api/providers/status_provider.dart +++ b/filcnaplo/lib/api/providers/status_provider.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/widgets.dart'; import 'package:http/http.dart' as http; @@ -12,6 +14,7 @@ class StatusProvider extends ChangeNotifier { StatusProvider() { _handleNetworkChanges(); + _handleDNSFailure(); Connectivity().checkConnectivity().then((value) => _networkType = value); } @@ -24,6 +27,7 @@ class StatusProvider extends ChangeNotifier { _networkType = event; if (event == ConnectivityResult.none) { if (!_stack.contains(Status.network)) { + _stack.remove(Status.apiError); _stack.insert(0, Status.network); notifyListeners(); } @@ -36,6 +40,31 @@ class StatusProvider extends ChangeNotifier { }); } + void _handleDNSFailure() { + try { + InternetAddress.lookup('api.refilc.hu').then((status) { + if (status.isEmpty) { + if (!_stack.contains(Status.network)) { + _stack.remove(Status.apiError); + _stack.insert(0, Status.network); + notifyListeners(); + } + } else { + if (_stack.contains(Status.network)) { + _stack.remove(Status.network); + notifyListeners(); + } + } + }); + } on SocketException catch (_) { + if (!_stack.contains(Status.network)) { + _stack.remove(Status.apiError); + _stack.insert(0, Status.network); + notifyListeners(); + } + } + } + void triggerRequest(http.Response res) { if (res.headers.containsKey("x-maintenance-mode") || res.statusCode == 503) { @@ -50,6 +79,7 @@ class StatusProvider extends ChangeNotifier { } } + if (_stack.contains(Status.network)) return; if (res.body == "invalid_grant" || res.body.replaceAll(' ', '') == '' || res.statusCode == 400) { diff --git a/filcnaplo_premium/lib/api/auth.dart b/filcnaplo_premium/lib/api/auth.dart index 3408919..45ddf5c 100644 --- a/filcnaplo_premium/lib/api/auth.dart +++ b/filcnaplo_premium/lib/api/auth.dart @@ -82,12 +82,12 @@ class PremiumAuth { //} // Skip premium check when disconnected - //try { + // try { // final status = await InternetAddress.lookup('github.com'); // if (status.isEmpty) return false; - //} on SocketException catch (_) { + // } on SocketException catch (_) { // return false; - //} + // } //for (int tries = 0; tries < 3; tries++) { // try {