import 'package:didvan/models/enums.dart'; import 'package:didvan/models/overview_data.dart'; import 'package:didvan/providers/core_provider.dart'; import 'package:didvan/providers/user_provider.dart'; import 'package:didvan/services/network/request.dart'; import 'package:didvan/services/network/request_helper.dart'; class BookmarksState extends CoreProvier { final List bookmarks = []; String search = ''; String lastSearch = ''; bool get searching => search != ''; Future getBookmarks() async { if (search != '') { lastSearch = search; } appState = AppState.busy; final service = RequestService(RequestHelper.bookmarks()); await service.httpGet(); if (service.isSuccess) { final marks = service.result['contents']; bookmarks.clear(); for (var i = 0; i < marks.length; i++) { bookmarks.add(OverviewData.fromJson(marks[i])); } appState = AppState.idle; return; } appState = AppState.failed; } void onMarkChanged(int id, bool value) { if (value) return; final type = bookmarks.firstWhere((element) => element.id == id).type; switch (type) { case 'radar': UserProvider.changeRadarMark(id, value); break; case 'news': UserProvider.changeNewsMark(id, value); break; default: } bookmarks.removeWhere((element) => element.id == id); notifyListeners(); } }