renamed folder so i can add it as a submodule

This commit is contained in:
Kima
2023-10-21 21:17:27 +02:00
parent 8e391c9c7f
commit 5e7414ada8
32 changed files with 3542 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
import 'package:filcnaplo/api/providers/database_provider.dart';
import 'package:filcnaplo/api/providers/user_provider.dart';
import 'package:filcnaplo_kreta_api/models/subject.dart';
import 'package:filcnaplo_kreta_api/providers/grade_provider.dart';
import 'package:flutter/widgets.dart';
class GoalProvider extends ChangeNotifier {
final DatabaseProvider _db;
final UserProvider _user;
late bool _done = false;
late GradeSubject? _doneSubject;
bool get hasDoneGoals => _done;
GradeSubject? get doneSubject => _doneSubject;
GoalProvider({
required DatabaseProvider database,
required UserProvider user,
}) : _db = database,
_user = user;
Future<void> fetchDone({required GradeProvider gradeProvider}) async {
var goalAvgs = await _db.userQuery.subjectGoalAverages(userId: _user.id!);
var beforeAvgs = await _db.userQuery.subjectGoalBefores(userId: _user.id!);
List<GradeSubject> subjects = gradeProvider.grades
.map((e) => e.subject)
.toSet()
.toList()
..sort((a, b) => a.name.compareTo(b.name));
goalAvgs.forEach((k, v) {
if (beforeAvgs[k] == v) {
_done = true;
_doneSubject = subjects.where((e) => e.id == k).toList()[0];
notifyListeners();
}
});
}
void lock() {
_done = false;
_doneSubject = null;
}
Future<void> clearGoal(GradeSubject subject) async {
final goalPlans = await _db.userQuery.subjectGoalPlans(userId: _user.id!);
final goalAvgs = await _db.userQuery.subjectGoalAverages(userId: _user.id!);
final goalBeforeGrades =
await _db.userQuery.subjectGoalBefores(userId: _user.id!);
final goalPinDates =
await _db.userQuery.subjectGoalPinDates(userId: _user.id!);
goalPlans.remove(subject.id);
goalAvgs.remove(subject.id);
goalBeforeGrades.remove(subject.id);
goalPinDates.remove(subject.id);
await _db.userStore.storeSubjectGoalPlans(goalPlans, userId: _user.id!);
await _db.userStore.storeSubjectGoalAverages(goalAvgs, userId: _user.id!);
await _db.userStore
.storeSubjectGoalBefores(goalBeforeGrades, userId: _user.id!);
await _db.userStore
.storeSubjectGoalPinDates(goalPinDates, userId: _user.id!);
}
}

View File

@@ -0,0 +1,27 @@
import 'package:filcnaplo/models/settings.dart';
import 'package:filcnaplo_premium/api/auth.dart';
import 'package:flutter/widgets.dart';
class PremiumProvider extends ChangeNotifier {
final SettingsProvider _settings;
List<String> get scopes => _settings.premiumScopes;
bool hasScope(String scope) => true;
String get accessToken => _settings.premiumAccessToken;
String get login => _settings.premiumLogin;
bool get hasPremium => true;
late final PremiumAuth _auth;
PremiumAuth get auth => _auth;
PremiumProvider({required SettingsProvider settings}) : _settings = settings {
_auth = PremiumAuth(settings: _settings);
_settings.addListener(() {
notifyListeners();
});
}
Future<void> activate({bool removePremium = false}) async {
await _auth.refreshAuth(removePremium: removePremium);
notifyListeners();
}
}