fixed premium features
This commit is contained in:
@@ -2,7 +2,8 @@ import 'package:filcnaplo/api/providers/update_provider.dart';
|
||||
import 'package:filcnaplo/models/settings.dart';
|
||||
import 'package:filcnaplo/ui/date_widget.dart';
|
||||
import 'package:filcnaplo/ui/filter/widgets/grades.dart' as grade_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/certifications.dart' as certification_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/certifications.dart'
|
||||
as certification_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/messages.dart' as message_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/absences.dart' as absence_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/homework.dart' as homework_filter;
|
||||
@@ -11,7 +12,8 @@ import 'package:filcnaplo/ui/filter/widgets/notes.dart' as note_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/events.dart' as event_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/lessons.dart' as lesson_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/update.dart' as update_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/missed_exams.dart' as missed_exam_filter;
|
||||
import 'package:filcnaplo/ui/filter/widgets/missed_exams.dart'
|
||||
as missed_exam_filter;
|
||||
import 'package:filcnaplo_kreta_api/models/week.dart';
|
||||
import 'package:filcnaplo_kreta_api/providers/absence_provider.dart';
|
||||
import 'package:filcnaplo_kreta_api/providers/event_provider.dart';
|
||||
@@ -28,11 +30,31 @@ import 'package:flutter/material.dart';
|
||||
import 'package:animated_list_plus/transitions.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
const List<FilterType> homeFilters = [FilterType.all, FilterType.grades, FilterType.messages, FilterType.absences];
|
||||
const List<FilterType> homeFilters = [
|
||||
FilterType.all,
|
||||
FilterType.grades,
|
||||
FilterType.messages,
|
||||
FilterType.absences
|
||||
];
|
||||
|
||||
enum FilterType { all, grades, newGrades, messages, absences, homework, exams, notes, events, lessons, updates, certifications, missedExams }
|
||||
enum FilterType {
|
||||
all,
|
||||
grades,
|
||||
newGrades,
|
||||
messages,
|
||||
absences,
|
||||
homework,
|
||||
exams,
|
||||
notes,
|
||||
events,
|
||||
lessons,
|
||||
updates,
|
||||
certifications,
|
||||
missedExams
|
||||
}
|
||||
|
||||
Future<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesNoExcused = false, required BuildContext context}) async {
|
||||
Future<List<DateWidget>> getFilterWidgets(FilterType activeData,
|
||||
{bool absencesNoExcused = false, required BuildContext context}) async {
|
||||
final gradeProvider = Provider.of<GradeProvider>(context);
|
||||
final timetableProvider = Provider.of<TimetableProvider>(context);
|
||||
final messageProvider = Provider.of<MessageProvider>(context);
|
||||
@@ -53,7 +75,8 @@ Future<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesN
|
||||
getFilterWidgets(FilterType.grades, context: context),
|
||||
getFilterWidgets(FilterType.lessons, context: context),
|
||||
getFilterWidgets(FilterType.messages, context: context),
|
||||
getFilterWidgets(FilterType.absences, context: context, absencesNoExcused: true),
|
||||
getFilterWidgets(FilterType.absences,
|
||||
context: context, absencesNoExcused: true),
|
||||
getFilterWidgets(FilterType.homework, context: context),
|
||||
getFilterWidgets(FilterType.exams, context: context),
|
||||
getFilterWidgets(FilterType.updates, context: context),
|
||||
@@ -66,15 +89,18 @@ Future<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesN
|
||||
|
||||
// Grades
|
||||
case FilterType.grades:
|
||||
items = grade_filter.getWidgets(gradeProvider.grades, gradeProvider.lastSeenDate);
|
||||
items = grade_filter.getWidgets(
|
||||
gradeProvider.grades, gradeProvider.lastSeenDate);
|
||||
if (settingsProvider.gradeOpeningFun) {
|
||||
items.addAll(await getFilterWidgets(FilterType.newGrades, context: context));
|
||||
items.addAll(
|
||||
await getFilterWidgets(FilterType.newGrades, context: context));
|
||||
}
|
||||
break;
|
||||
|
||||
// Grades
|
||||
case FilterType.newGrades:
|
||||
items = grade_filter.getNewWidgets(gradeProvider.grades, gradeProvider.lastSeenDate);
|
||||
items = grade_filter.getNewWidgets(
|
||||
gradeProvider.grades, gradeProvider.lastSeenDate);
|
||||
break;
|
||||
|
||||
// Certifications
|
||||
@@ -93,7 +119,8 @@ Future<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesN
|
||||
|
||||
// Absences
|
||||
case FilterType.absences:
|
||||
items = absence_filter.getWidgets(absenceProvider.absences, noExcused: absencesNoExcused);
|
||||
items = absence_filter.getWidgets(absenceProvider.absences,
|
||||
noExcused: absencesNoExcused);
|
||||
break;
|
||||
|
||||
// Homework
|
||||
@@ -118,25 +145,30 @@ Future<List<DateWidget>> getFilterWidgets(FilterType activeData, {bool absencesN
|
||||
|
||||
// Changed Lessons
|
||||
case FilterType.lessons:
|
||||
items = lesson_filter.getWidgets(timetableProvider.getWeek(Week.current()) ?? []);
|
||||
items = lesson_filter
|
||||
.getWidgets(timetableProvider.getWeek(Week.current()) ?? []);
|
||||
break;
|
||||
|
||||
// Updates
|
||||
case FilterType.updates:
|
||||
if (updateProvider.available) items = [update_filter.getWidget(updateProvider.releases.first)];
|
||||
if (updateProvider.available)
|
||||
items = [update_filter.getWidget(updateProvider.releases.first)];
|
||||
break;
|
||||
|
||||
// Missed Exams
|
||||
case FilterType.missedExams:
|
||||
items = missed_exam_filter.getWidgets(timetableProvider.getWeek(Week.current()) ?? []);
|
||||
items = missed_exam_filter
|
||||
.getWidgets(timetableProvider.getWeek(Week.current()) ?? []);
|
||||
break;
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
Widget filterItemBuilder(BuildContext context, Animation<double> animation, Widget item, int index) {
|
||||
Widget filterItemBuilder(
|
||||
BuildContext context, Animation<double> animation, Widget item, int index) {
|
||||
if (item.key == const Key("\$premium")) {
|
||||
return Provider.of<PremiumProvider>(context, listen: false).hasPremium || DateTime.now().weekday <= 5
|
||||
return Provider.of<PremiumProvider>(context, listen: false).hasPremium ||
|
||||
DateTime.now().weekday <= 5
|
||||
? const SizedBox()
|
||||
: const Padding(
|
||||
padding: EdgeInsets.only(bottom: 24.0),
|
||||
@@ -171,7 +203,9 @@ Widget filterItemBuilder(BuildContext context, Animation<double> animation, Widg
|
||||
color: Theme.of(context).shadowColor.withOpacity(
|
||||
Theme.of(context).shadowColor.opacity *
|
||||
CurvedAnimation(
|
||||
parent: CurvedAnimation(parent: animation, curve: Curves.easeInOutCubic),
|
||||
parent: CurvedAnimation(
|
||||
parent: animation,
|
||||
curve: Curves.easeInOutCubic),
|
||||
curve: const Interval(2 / 3, 1.0),
|
||||
).value,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user