Implemented way to fetch stations in batches
This commit is contained in:
@@ -4,13 +4,31 @@ import '../model/flood_station.dart';
|
||||
import 'api.dart';
|
||||
|
||||
class FloodStationProvider extends ChangeNotifier {
|
||||
List<FloodStation> _allStations = [];
|
||||
FloodStation? selectedStation;
|
||||
|
||||
List<FloodStation> _allStations = [];
|
||||
|
||||
List<FloodStation> get allStations => _allStations;
|
||||
|
||||
Future loadAllStationsInBatches({silent = false}) {
|
||||
int offset = 0;
|
||||
return Future.doWhile(() async {
|
||||
final stations = await Api.fetchStationsByRange(500, offset);
|
||||
if (stations.isNotEmpty) {
|
||||
_allStations.addAll(stations);
|
||||
if (!silent) {
|
||||
notifyListeners();
|
||||
}
|
||||
offset += 500;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future loadAllStations({silent = false}) {
|
||||
return Api.fetchStations().then(
|
||||
return Api.fetchAllStations().then(
|
||||
(value) {
|
||||
_allStations = value;
|
||||
if (!silent) {
|
||||
|
||||
Reference in New Issue
Block a user