import 'package:stacked/stacked.dart'; import 'package:stacked_services/stacked_services.dart'; import 'package:yimaru_app/services/learn_service.dart'; import 'package:yimaru_app/services/status_checker_service.dart'; import 'package:yimaru_app/ui/common/enmus.dart'; import '../../../app/app.locator.dart'; import '../../../models/progress_summary.dart'; class ProgressViewModel extends ReactiveViewModel { // Dependency injection final _learnService = locator(); final _navigationService = locator(); final _statusCheckerService = locator(); @override List get listenableServices => [_learnService]; // Total practice count int get _totalCount => _learnService.totalCount; int get totalCount => _totalCount; // Completed practice count int get _completedCount => _learnService.completedCount; int get completedCount => _completedCount; // Total progress int get _totalProgress => _learnService.totalProgress; int get totalProgress => _totalProgress; // Courses final List> _courses = [ { 'title': 'IELTS Preparation', }, { 'title': 'Duolingo English Test', }, ]; List> get courses => _courses; // Navigation void pop() => _navigationService.back(); // Remote api // Learning progress Future getProgressSummary() async => runBusyFuture(_getProgressSummary(), busyObject: StateObjects.progressSummary); Future _getProgressSummary() async { if (await _statusCheckerService.checkConnection()) { await _learnService.getProgressSummary(); } } }