fixed project problems (warnings)

This commit is contained in:
Kima
2024-03-11 23:29:20 +01:00
parent 9ea0085ddb
commit 917d6d01db
34 changed files with 602 additions and 552 deletions

View File

@@ -3,15 +3,14 @@ import 'package:flutter/material.dart';
class FilterBar extends StatelessWidget implements PreferredSizeWidget {
const FilterBar({
Key? key,
super.key,
required this.items,
required this.controller,
this.onTap,
this.padding = const EdgeInsets.symmetric(horizontal: 24.0),
this.disableFading = false,
this.scrollable = true,
}) : assert(items.length == controller.length),
super(key: key);
}) : assert(items.length == controller.length);
final List<Widget> items;
final TabController controller;

View File

@@ -3,14 +3,14 @@ import 'package:flutter/material.dart';
class PanelButton extends StatelessWidget {
const PanelButton({
Key? key,
super.key,
this.onPressed,
this.padding = const EdgeInsets.symmetric(horizontal: 14.0),
this.leading,
this.title,
this.trailing,
this.trailingDivider = false,
}) : super(key: key);
});
final void Function()? onPressed;
final EdgeInsetsGeometry padding;

View File

@@ -5,12 +5,12 @@ import 'package:refilc/theme/colors/colors.dart';
class ProfileImage extends StatelessWidget {
const ProfileImage({
Key? key,
super.key,
this.name,
this.radius = 20.0,
this.role = Role.student,
this.backgroundColor,
}) : super(key: key);
});
final String? name;
final double radius;

View File

@@ -3,7 +3,7 @@ import 'package:refilc_kreta_api/models/grade.dart';
import 'package:refilc/ui/widgets/grade/grade_tile.dart';
class GradeViewable extends StatelessWidget {
const GradeViewable(this.grade, {Key? key}) : super(key: key);
const GradeViewable(this.grade, {super.key});
final Grade grade;

View File

@@ -3,8 +3,7 @@ import 'package:refilc/ui/widgets/lesson/lesson_tile.dart';
import 'package:flutter/material.dart';
class LessonViewable extends StatelessWidget {
const LessonViewable(this.lesson, {Key? key, this.swapDesc = false})
: super(key: key);
const LessonViewable(this.lesson, {super.key, this.swapDesc = false});
final Lesson lesson;
final bool swapDesc;

View File

@@ -40,13 +40,13 @@ class SubjectAbsence {
}
class AbsencesPage extends StatefulWidget {
const AbsencesPage({Key? key}) : super(key: key);
const AbsencesPage({super.key});
@override
_AbsencesPageState createState() => _AbsencesPageState();
AbsencesPageState createState() => AbsencesPageState();
}
class _AbsencesPageState extends State<AbsencesPage>
class AbsencesPageState extends State<AbsencesPage>
with TickerProviderStateMixin {
late UserProvider user;
late AbsenceProvider absenceProvider;
@@ -87,6 +87,7 @@ class _AbsencesPageState extends State<AbsencesPage>
}
void buildSubjectAbsences() {
// ignore: no_leading_underscores_for_local_identifiers
Map<GradeSubject, SubjectAbsence> _absences = {};
for (final absence in absenceProvider.absences) {
@@ -284,10 +285,10 @@ class _AbsencesPageState extends State<AbsencesPage>
Animation<double> secondaryAnimation,
) {
return FadeThroughTransition(
child: child,
animation: primaryAnimation,
secondaryAnimation: secondaryAnimation,
fillColor: Theme.of(context).colorScheme.background,
child: child,
);
},
child: Column(
@@ -335,7 +336,7 @@ class _AbsencesPageState extends State<AbsencesPage>
.length;
title1 = "stat_1".i18n;
title2 = "stat_2".i18n;
suffix = " " + "hr".i18n;
suffix = " ${"hr".i18n}";
} else if (activeData == AbsenceFilter.delays.index) {
value1 = absenceProvider.absences
.where((e) =>
@@ -349,7 +350,7 @@ class _AbsencesPageState extends State<AbsencesPage>
.fold(0, (a, b) => a + b);
title1 = "stat_3".i18n;
title2 = "stat_4".i18n;
suffix = " " + "min".i18n;
suffix = " ${"min".i18n}";
}
return Padding(

View File

@@ -30,8 +30,7 @@ import 'grades_page.i18n.dart';
//import 'package:refilc_plus/ui/mobile/goal_planner/new_goal.dart';
class GradeSubjectView extends StatefulWidget {
const GradeSubjectView(this.subject, {Key? key, this.groupAverage = 0.0})
: super(key: key);
const GradeSubjectView(this.subject, {super.key, this.groupAverage = 0.0});
final GradeSubject subject;
final double groupAverage;
@@ -90,6 +89,7 @@ class _GradeSubjectViewState extends State<GradeSubjectView> {
tiles.add(Container(height: 24.0));
}
// ignore: no_leading_underscores_for_local_identifiers
List<Widget> _gradeTiles = [];
if (!gradeCalcMode) {
@@ -118,8 +118,8 @@ class _GradeSubjectViewState extends State<GradeSubjectView> {
animation: primaryAnimation,
secondaryAnimation: secondaryAnimation,
transitionType: SharedAxisTransitionType.vertical,
child: child,
fillColor: Colors.transparent,
child: child,
);
},
child: _gradeTiles.isNotEmpty
@@ -273,7 +273,8 @@ class _GradeSubjectViewState extends State<GradeSubjectView> {
_sheetController = _scaffoldKey.currentState?.showBottomSheet(
(context) => RoundedBottomSheet(
child: GradeCalculator(widget.subject), borderRadius: 14.0),
borderRadius: 14.0,
child: GradeCalculator(widget.subject)),
backgroundColor: const Color(0x00000000),
elevation: 12.0,
);

View File

@@ -4,7 +4,7 @@ import 'package:refilc_desktop_ui/pages/grades/grades_count_item.dart';
import 'package:collection/collection.dart';
class GradesCount extends StatelessWidget {
const GradesCount({Key? key, required this.grades}) : super(key: key);
const GradesCount({super.key, required this.grades});
final List<Grade> grades;

View File

@@ -3,8 +3,7 @@ import 'package:refilc_kreta_api/models/grade.dart';
import 'package:flutter/material.dart';
class GradesCountItem extends StatelessWidget {
const GradesCountItem({Key? key, required this.count, required this.value})
: super(key: key);
const GradesCountItem({super.key, required this.count, required this.value});
final int count;
final int value;

View File

@@ -25,13 +25,13 @@ import 'package:refilc_mobile_ui/pages/grades/average_selector.dart';
import 'grades_page.i18n.dart';
class GradesPage extends StatefulWidget {
const GradesPage({Key? key}) : super(key: key);
const GradesPage({super.key});
@override
_GradesPageState createState() => _GradesPageState();
GradesPageState createState() => GradesPageState();
}
class _GradesPageState extends State<GradesPage> {
class GradesPageState extends State<GradesPage> {
late UserProvider user;
late GradeProvider gradeProvider;
late UpdateProvider updateProvider;
@@ -294,8 +294,8 @@ class _GradesPageState extends State<GradesPage> {
return Padding(
padding: panelPadding,
child: PanelBody(
child: subjectTiles[index],
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: subjectTiles[index],
));
} else {
return Padding(

View File

@@ -10,7 +10,7 @@ import 'package:refilc/ui/filter/sort.dart';
import 'home_page.i18n.dart';
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();

View File

@@ -15,13 +15,13 @@ import 'package:provider/provider.dart';
import 'messages_page.i18n.dart';
class MessagesPage extends StatefulWidget {
const MessagesPage({Key? key}) : super(key: key);
const MessagesPage({super.key});
@override
_MessagesPageState createState() => _MessagesPageState();
MessagesPageState createState() => MessagesPageState();
}
class _MessagesPageState extends State<MessagesPage>
class MessagesPageState extends State<MessagesPage>
with TickerProviderStateMixin {
late UserProvider user;
late MessageProvider messageProvider;

View File

@@ -23,8 +23,7 @@ import 'timetable_page.i18n.dart';
// todo: "fix" overflow (priority: -1)
class TimetablePage extends StatefulWidget {
const TimetablePage({Key? key, this.initialDay, this.initialWeek})
: super(key: key);
const TimetablePage({super.key, this.initialDay, this.initialWeek});
final DateTime? initialDay;
final Week? initialWeek;
@@ -48,10 +47,10 @@ class TimetablePage extends StatefulWidget {
}
@override
_TimetablePageState createState() => _TimetablePageState();
TimetablePageState createState() => TimetablePageState();
}
class _TimetablePageState extends State<TimetablePage>
class TimetablePageState extends State<TimetablePage>
with TickerProviderStateMixin {
late UserProvider user;
late TimetableProvider timetableProvider;
@@ -170,10 +169,10 @@ class _TimetablePageState extends State<TimetablePage>
Animation<double> secondaryAnimation,
) {
return FadeThroughTransition(
child: child,
animation: primaryAnimation,
secondaryAnimation: secondaryAnimation,
fillColor: Theme.of(context).scaffoldBackgroundColor,
child: child,
);
},
child: _controller.days != null
@@ -208,9 +207,8 @@ class _TimetablePageState extends State<TimetablePage>
),
),
Text(
"${_controller.days![tab].first.date.day}"
.padLeft(2, '0') +
".",
"${"${_controller.days![tab].first.date.day}"
.padLeft(2, '0')}.",
style: TextStyle(
color: AppColors.of(context)
.text
@@ -338,29 +336,19 @@ class _TimetablePageState extends State<TimetablePage>
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"${_controller.currentWeekId + 1}. " +
"week".i18n +
" (" +
// Week start
DateFormat(
(_controller.currentWeek.start.year !=
"${_controller.currentWeekId + 1}. ${"week".i18n} (${DateFormat(
"${_controller.currentWeek.start.year !=
DateTime.now().year
? "yy. "
: "") +
"MMM d.",
: ""}MMM d.",
I18n.of(context).locale.languageCode)
.format(_controller.currentWeek.start) +
" - " +
// Week end
DateFormat(
(_controller.currentWeek.start.year !=
.format(_controller.currentWeek.start)} - ${DateFormat(
"${_controller.currentWeek.start.year !=
DateTime.now().year
? "yy. "
: "") +
"MMM d.",
: ""}MMM d.",
I18n.of(context).locale.languageCode)
.format(_controller.currentWeek.end) +
")",
.format(_controller.currentWeek.end)})",
style: const TextStyle(
fontWeight: FontWeight.w500,
fontSize: 14.0,

View File

@@ -25,15 +25,15 @@ const LinearGradient _backgroundGradient = LinearGradient(
);
class LoginScreen extends StatefulWidget {
const LoginScreen({Key? key, this.back = false}) : super(key: key);
const LoginScreen({super.key, this.back = false});
final bool back;
@override
_LoginScreenState createState() => _LoginScreenState();
LoginScreenState createState() => LoginScreenState();
}
class _LoginScreenState extends State<LoginScreen> {
class LoginScreenState extends State<LoginScreen> {
final usernameController = TextEditingController();
final passwordController = TextEditingController();
final schoolController = SchoolInputController();
@@ -118,10 +118,10 @@ class _LoginScreenState extends State<LoginScreen> {
Padding(
padding: const EdgeInsets.only(top: 8.0),
child: Opacity(
opacity: 0.3,
child: Image.asset(
"assets/icons/ic_splash.png",
color: Colors.black),
opacity: 0.3),
color: Colors.black)),
),
BackdropFilter(
filter: ImageFilter.blur(
@@ -253,15 +253,6 @@ class _LoginScreenState extends State<LoginScreen> {
child: Padding(
padding: const EdgeInsets.only(top: 42.0),
child: Visibility(
child: LoginButton(
child: Text("login".i18n,
maxLines: 1,
style: const TextStyle(
fontWeight: FontWeight.w600,
fontSize: 15.0,
)),
onPressed: () => _loginAPI(context: context),
),
visible: _loginState != LoginState.inProgress,
replacement: const Padding(
padding: EdgeInsets.symmetric(vertical: 6.0),
@@ -272,6 +263,15 @@ class _LoginScreenState extends State<LoginScreen> {
),
),
),
child: LoginButton(
child: Text("login".i18n,
maxLines: 1,
style: const TextStyle(
fontWeight: FontWeight.w600,
fontSize: 15.0,
)),
onPressed: () => _loginAPI(context: context),
),
),
),
),

View File

@@ -6,17 +6,16 @@ import 'package:flutter/material.dart';
import 'package:refilc_kreta_api/models/school.dart';
class SchoolInput extends StatefulWidget {
const SchoolInput({Key? key, required this.controller, required this.scroll})
: super(key: key);
const SchoolInput({super.key, required this.controller, required this.scroll});
final SchoolInputController controller;
final ScrollController scroll;
@override
_SchoolInputState createState() => _SchoolInputState();
SchoolInputState createState() => SchoolInputState();
}
class _SchoolInputState extends State<SchoolInput> {
class SchoolInputState extends State<SchoolInput> {
final _focusNode = FocusNode();
final _layerLink = LayerLink();
late SchoolInputOverlay overlay;

View File

@@ -2,8 +2,7 @@ import 'package:refilc_kreta_api/models/school.dart';
import 'package:flutter/material.dart';
class SchoolInputTile extends StatelessWidget {
const SchoolInputTile({Key? key, required this.school, this.onTap})
: super(key: key);
const SchoolInputTile({super.key, required this.school, this.onTap});
final School school;
final Function()? onTap;

View File

@@ -15,7 +15,7 @@ import 'package:refilc_kreta_api/client/client.dart';
import 'package:refilc_plus/providers/goal_provider.dart';
class NavigationScreen extends StatefulWidget {
const NavigationScreen({Key? key}) : super(key: key);
const NavigationScreen({super.key});
static NavigationScreenState? of(BuildContext context) =>
context.findAncestorStateOfType<NavigationScreenState>();

View File

@@ -1,3 +1,5 @@
// ignore_for_file: no_leading_underscores_for_local_identifiers
import 'package:animations/animations.dart';
import 'package:refilc/api/providers/database_provider.dart';
import 'package:refilc/api/providers/user_provider.dart';
@@ -27,11 +29,10 @@ import 'package:refilc/theme/colors/colors.dart';
class Sidebar extends StatefulWidget {
const Sidebar(
{Key? key,
{super.key,
required this.navigator,
required this.onRouteChange,
this.selected = "home"})
: super(key: key);
this.selected = "home"});
final NavigatorState navigator;
final String selected;
@@ -183,6 +184,7 @@ class _SidebarState extends State<Sidebar> {
// delete user from app
user.removeUser(userId);
// ignore: use_build_context_synchronously
await Provider.of<DatabaseProvider>(context, listen: false)
.store
.removeUser(userId);
@@ -192,6 +194,7 @@ class _SidebarState extends State<Sidebar> {
user.setUser(user.getUsers().first.id);
restore().then((_) => user.setUser(user.getUsers().first.id));
} else {
// ignore: use_build_context_synchronously
Navigator.of(context)
.pushNamedAndRemoveUntil("login", (_) => false);
}

View File

@@ -3,8 +3,7 @@ import 'package:refilc/theme/colors/colors.dart';
class SidebarAction extends StatelessWidget {
const SidebarAction(
{Key? key, this.title, this.icon, this.onTap, this.selected = false})
: super(key: key);
{super.key, this.title, this.icon, this.onTap, this.selected = false});
final bool selected;
final Widget? icon;

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
class NewsView extends StatelessWidget {
const NewsView({Key? key}) : super(key: key);
const NewsView({super.key});
@override
Widget build(BuildContext context) {

View File

@@ -1,3 +1,5 @@
// ignore_for_file: no_leading_underscores_for_local_identifiers
import 'package:refilc/api/providers/update_provider.dart';
import 'package:refilc_kreta_api/providers/absence_provider.dart';
import 'package:refilc_kreta_api/providers/event_provider.dart';
@@ -41,13 +43,13 @@ import 'package:flutter/services.dart';
import 'package:refilc_mobile_ui/screens/settings/user/nickname.dart';
class SettingsScreen extends StatefulWidget {
const SettingsScreen({Key? key}) : super(key: key);
const SettingsScreen({super.key});
@override
_SettingsScreenState createState() => _SettingsScreenState();
SettingsScreenState createState() => SettingsScreenState();
}
class _SettingsScreenState extends State<SettingsScreen>
class SettingsScreenState extends State<SettingsScreen>
with SingleTickerProviderStateMixin {
int devmodeCountdown = 3;
final bool __ss = false; // secret settings
@@ -506,6 +508,7 @@ class _SettingsScreenState extends State<SettingsScreen>
onPressed: () async {
await _hideContainersController
.forward();
// ignore: use_build_context_synchronously
SettingsHelper.accentColor(context);
setState(() {});
_hideContainersController.reset();
@@ -915,9 +918,8 @@ class _SettingsScreenState extends State<SettingsScreen>
child: Center(
child: GestureDetector(
child: const Panel(
title: Text("v" +
String.fromEnvironment("APPVER",
defaultValue: "?"))),
title: Text("v${const String.fromEnvironment("APPVER",
defaultValue: "?")}")),
onTap: () {
if (devmodeCountdown > 0) {
ScaffoldMessenger.of(context)