mark & unmark functions moved to user provider
This commit is contained in:
parent
14c79edc7b
commit
fdbbc914af
|
|
@ -1,5 +1,4 @@
|
||||||
import 'dart:io';
|
import 'package:collection/collection.dart';
|
||||||
|
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/user.dart';
|
import 'package:didvan/models/user.dart';
|
||||||
import 'package:didvan/models/view/alert_data.dart';
|
import 'package:didvan/models/view/alert_data.dart';
|
||||||
|
|
@ -11,6 +10,10 @@ import 'package:didvan/utils/action_sheet.dart';
|
||||||
|
|
||||||
class UserProvider extends CoreProvier {
|
class UserProvider extends CoreProvier {
|
||||||
late User user;
|
late User user;
|
||||||
|
|
||||||
|
static final List<MapEntry> _radarMarkQueue = [];
|
||||||
|
static final List<MapEntry> _newsMarkQueue = [];
|
||||||
|
|
||||||
Future<String?> setAndGetToken({String? newToken}) async {
|
Future<String?> setAndGetToken({String? newToken}) async {
|
||||||
if (newToken == null) {
|
if (newToken == null) {
|
||||||
final token = await StorageService.getValue(key: 'token');
|
final token = await StorageService.getValue(key: 'token');
|
||||||
|
|
@ -29,7 +32,7 @@ class UserProvider extends CoreProvier {
|
||||||
throw 'Getting user from API failed!';
|
throw 'Getting user from API failed!';
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> setProfilePhoto(File file) async {
|
Future<bool> setProfilePhoto(dynamic file) async {
|
||||||
appState = AppState.isolatedBusy;
|
appState = AppState.isolatedBusy;
|
||||||
final RequestService service =
|
final RequestService service =
|
||||||
RequestService(RequestHelper.updateUserProfile);
|
RequestService(RequestHelper.updateUserProfile);
|
||||||
|
|
@ -94,4 +97,40 @@ class UserProvider extends CoreProvier {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<void> changeRadarMark(int id, bool value) async {
|
||||||
|
_radarMarkQueue.add(MapEntry(id, value));
|
||||||
|
Future.delayed(const Duration(milliseconds: 500), () async {
|
||||||
|
final MapEntry? lastChange =
|
||||||
|
_radarMarkQueue.lastWhereOrNull((item) => item.key == id);
|
||||||
|
if (lastChange == null) return;
|
||||||
|
if (lastChange.value) {
|
||||||
|
final service = RequestService(RequestHelper.markRadar(id));
|
||||||
|
if (value) {
|
||||||
|
await service.post();
|
||||||
|
} else {
|
||||||
|
await service.delete();
|
||||||
|
}
|
||||||
|
_radarMarkQueue.removeWhere((element) => element.key == id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<void> changeNewsMark(int id, bool value) async {
|
||||||
|
_newsMarkQueue.add(MapEntry(id, value));
|
||||||
|
Future.delayed(const Duration(milliseconds: 500), () async {
|
||||||
|
final MapEntry? lastChange =
|
||||||
|
_newsMarkQueue.lastWhereOrNull((item) => item.key == id);
|
||||||
|
if (lastChange == null) return;
|
||||||
|
if (lastChange.value) {
|
||||||
|
final service = RequestService(RequestHelper.markNews(id));
|
||||||
|
if (value) {
|
||||||
|
await service.post();
|
||||||
|
} else {
|
||||||
|
await service.delete();
|
||||||
|
}
|
||||||
|
_newsMarkQueue.removeWhere((element) => element.key == id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue