diff --git a/firka/assets/images/bubble.svg b/firka/assets/images/bubble.svg new file mode 100644 index 00000000..7f42e53e --- /dev/null +++ b/firka/assets/images/bubble.svg @@ -0,0 +1,3 @@ + + + diff --git a/firka/lib/ui/phone/pages/home/home_timetable.dart b/firka/lib/ui/phone/pages/home/home_timetable.dart index 2f416f20..eaf1afbc 100644 --- a/firka/lib/ui/phone/pages/home/home_timetable.dart +++ b/firka/lib/ui/phone/pages/home/home_timetable.dart @@ -6,6 +6,7 @@ import 'package:firka/helpers/extensions.dart'; import 'package:firka/helpers/settings/setting.dart'; import 'package:firka/ui/model/style.dart'; import 'package:firka/ui/phone/screens/settings/settings_screen.dart'; +import 'package:firka/ui/phone/widgets/bubble_test.dart'; import 'package:firka/ui/widget/delayed_spinner.dart'; import 'package:flutter/material.dart'; import 'package:majesticons_flutter/majesticons_flutter.dart'; @@ -179,13 +180,6 @@ class _HomeTimetableScreen extends FirkaState { for (var i = 0; i < dates!.length; i++) { final date = dates![i]; - ttWidgets.add(BottomTimeTableNavIconWidget(widget.data.l10n, () { - setState(() { - _controller.jumpToPage(i); - active = i; - }); - }, active == i, date)); - final lessonsOnDate = lessons! .where((lesson) => lesson.start.isAfter(date) && @@ -202,6 +196,31 @@ class _HomeTimetableScreen extends FirkaState { test.date.isBefore(date.add(Duration(hours: 23, minutes: 59)))) .toList(); + if (testsOnDate.isNotEmpty) { + debugPrint(testsOnDate.toString()); + ttWidgets.add(Stack( + children: [ + BottomTimeTableNavIconWidget(widget.data.l10n, () { + setState(() { + _controller.jumpToPage(i); + active = i; + }); + }, active == i, date), + Transform.translate( + offset: Offset(38, -10), + child: BubbleTest(), + ), + ], + )); + } else { + ttWidgets.add(BottomTimeTableNavIconWidget(widget.data.l10n, () { + setState(() { + _controller.jumpToPage(i); + active = i; + }); + }, active == i, date)); + } + ttDays.add(TimeTableDayWidget(widget.data, date, lessons!, lessonsOnDate, eventsOnDate, testsOnDate)); } diff --git a/firka/lib/ui/phone/widgets/bubble_test.dart b/firka/lib/ui/phone/widgets/bubble_test.dart new file mode 100644 index 00000000..92f96d1c --- /dev/null +++ b/firka/lib/ui/phone/widgets/bubble_test.dart @@ -0,0 +1,33 @@ +import 'package:firka/ui/widget/firka_icon.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:majesticons_flutter/majesticons_flutter.dart'; + +import '../../model/style.dart'; + +class BubbleTest extends StatelessWidget { + const BubbleTest({super.key}); + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + SvgPicture.asset( + "assets/images/bubble.svg", + color: appStyle.colors.buttonSecondaryFill, + width: 24, + height: 24, + ), + Transform.translate( + offset: Offset(3, 6), + child: FirkaIconWidget( + FirkaIconType.majesticons, + Majesticon.editPen4Line, + color: appStyle.colors.accent, + size: 14, + ), + ), + ], + ); + } +} diff --git a/firka/pubspec.yaml b/firka/pubspec.yaml index 767d6150..8521dbaf 100644 --- a/firka/pubspec.yaml +++ b/firka/pubspec.yaml @@ -96,6 +96,7 @@ flutter: - assets/images/icons/ - assets/images/background.webp - assets/images/wear_pair.svg + - assets/images/bubble.svg - assets/icons/ - assets/majesticons/ - assets/firka.i