D1APP-81
This commit is contained in:
parent
8384e0b0f3
commit
3b3cdd20d0
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'dart:async';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
|
|
@ -11,6 +12,8 @@ class NewsDetailsState extends CoreProvier {
|
||||||
final List<NewsDetailsData?> news = [];
|
final List<NewsDetailsData?> news = [];
|
||||||
late final int initialIndex;
|
late final int initialIndex;
|
||||||
late final NewsRequestArgs args;
|
late final NewsRequestArgs args;
|
||||||
|
late Timer _trackingTimer;
|
||||||
|
int _trackingTimerCounter = 0;
|
||||||
|
|
||||||
int _currentIndex = 0;
|
int _currentIndex = 0;
|
||||||
int get currentIndex => _currentIndex;
|
int get currentIndex => _currentIndex;
|
||||||
|
|
@ -23,6 +26,7 @@ class NewsDetailsState extends CoreProvier {
|
||||||
}
|
}
|
||||||
final service = RequestService(RequestHelper.newsDetails(id, args));
|
final service = RequestService(RequestHelper.newsDetails(id, args));
|
||||||
await service.httpGet();
|
await service.httpGet();
|
||||||
|
_handleTracking(sendRequest: isForward != null);
|
||||||
if (service.isSuccess) {
|
if (service.isSuccess) {
|
||||||
final result = service.result;
|
final result = service.result;
|
||||||
NewsDetailsData? prevNews;
|
NewsDetailsData? prevNews;
|
||||||
|
|
@ -70,4 +74,21 @@ class NewsDetailsState extends CoreProvier {
|
||||||
news.firstWhere((item) => item!.id == currentNews.id)!.comments = count;
|
news.firstWhere((item) => item!.id == currentNews.id)!.comments = count;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _handleTracking({bool sendRequest = true}) async {
|
||||||
|
if (!sendRequest) {
|
||||||
|
_trackingTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
|
||||||
|
_trackingTimerCounter++;
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//send request
|
||||||
|
_trackingTimerCounter = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_trackingTimer.cancel();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'dart:async';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
|
|
@ -9,6 +10,8 @@ import 'package:didvan/services/network/request_helper.dart';
|
||||||
|
|
||||||
class RadarDetailsState extends CoreProvier {
|
class RadarDetailsState extends CoreProvier {
|
||||||
final List<RadarDetailsData?> radars = [];
|
final List<RadarDetailsData?> radars = [];
|
||||||
|
late Timer _trackingTimer;
|
||||||
|
int _trackingTimerCounter = 0;
|
||||||
late final int initialIndex;
|
late final int initialIndex;
|
||||||
late final RadarRequestArgs args;
|
late final RadarRequestArgs args;
|
||||||
|
|
||||||
|
|
@ -29,6 +32,7 @@ class RadarDetailsState extends CoreProvier {
|
||||||
}
|
}
|
||||||
final service = RequestService(RequestHelper.radarDetails(id, args));
|
final service = RequestService(RequestHelper.radarDetails(id, args));
|
||||||
await service.httpGet();
|
await service.httpGet();
|
||||||
|
_handleTracking(sendRequest: isForward != null);
|
||||||
if (service.isSuccess) {
|
if (service.isSuccess) {
|
||||||
final result = service.result;
|
final result = service.result;
|
||||||
RadarDetailsData? prevRadar;
|
RadarDetailsData? prevRadar;
|
||||||
|
|
@ -73,7 +77,7 @@ class RadarDetailsState extends CoreProvier {
|
||||||
appState = AppState.idle;
|
appState = AppState.idle;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//why? total page state shouldn't die!
|
||||||
if (isForward == null) {
|
if (isForward == null) {
|
||||||
appState = AppState.failed;
|
appState = AppState.failed;
|
||||||
}
|
}
|
||||||
|
|
@ -87,4 +91,21 @@ class RadarDetailsState extends CoreProvier {
|
||||||
count;
|
count;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _handleTracking({bool sendRequest = true}) async {
|
||||||
|
if (!sendRequest) {
|
||||||
|
_trackingTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
|
||||||
|
_trackingTimerCounter++;
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//send request
|
||||||
|
_trackingTimerCounter = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_trackingTimer.cancel();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue