diff --git a/filcnaplo/lib/ui/filter/sort.dart b/filcnaplo/lib/ui/filter/sort.dart index 5e8dc62..1961c27 100644 --- a/filcnaplo/lib/ui/filter/sort.dart +++ b/filcnaplo/lib/ui/filter/sort.dart @@ -6,6 +6,7 @@ import 'package:filcnaplo_kreta_api/models/message.dart'; import 'package:filcnaplo_mobile_ui/common/panel/panel.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/absence/absence_viewable.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/absence_group/absence_group_tile.dart'; +import 'package:filcnaplo_mobile_ui/common/widgets/cretification/certification_card.dart'; import 'package:flutter/material.dart'; import 'package:animated_list_plus/animated_list_plus.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/lesson/changed_lesson_tile.dart'; @@ -148,6 +149,10 @@ List sortDateWidgets( item.widget, index, len: elements.length, + isAfterSeparated: index > 0 && + (elements[index - 1].widget is CertificationCard), + isBeforeSeparated: (index < elements.length - 1) && + (elements[index + 1].widget is CertificationCard), ), items: elements, ), diff --git a/filcnaplo/lib/ui/filter/widgets.dart b/filcnaplo/lib/ui/filter/widgets.dart index 063ece8..281c2d1 100644 --- a/filcnaplo/lib/ui/filter/widgets.dart +++ b/filcnaplo/lib/ui/filter/widgets.dart @@ -25,6 +25,7 @@ import 'package:filcnaplo_kreta_api/providers/homework_provider.dart'; import 'package:filcnaplo_kreta_api/providers/message_provider.dart'; import 'package:filcnaplo_kreta_api/providers/note_provider.dart'; import 'package:filcnaplo_kreta_api/providers/timetable_provider.dart'; +import 'package:filcnaplo_mobile_ui/common/widgets/cretification/certification_card.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/note/note_viewable.dart'; import 'package:refilc_plus/providers/premium_provider.dart'; import 'package:refilc_plus/ui/mobile/premium/premium_inline.dart'; @@ -189,6 +190,8 @@ Widget filterItemBuilder( Widget item, int index, { int len = 0, + bool isAfterSeparated = false, + bool isBeforeSeparated = false, }) { if (item.key == const Key("\$premium")) { return Provider.of(context, listen: false).hasPremium || @@ -210,6 +213,8 @@ Widget filterItemBuilder( child: item, ); + bool separated = item is CertificationCard; + return item is Panel // Re-add & animate shadow ? AnimatedBuilder( @@ -244,7 +249,10 @@ Widget filterItemBuilder( }) : (len > 0 ? Padding( - padding: EdgeInsets.only(top: index == 0 ? 0.0 : 6.0), + padding: EdgeInsets.only( + top: index == 0 + ? 0.0 + : (separated || isAfterSeparated ? 9.0 : 6.0)), child: Container( padding: item is NoteViewable ? const EdgeInsets.symmetric(vertical: 8.0) @@ -252,12 +260,16 @@ Widget filterItemBuilder( decoration: BoxDecoration( color: Theme.of(context).colorScheme.background, borderRadius: BorderRadius.vertical( - top: index == 0 + top: separated || isAfterSeparated ? const Radius.circular(16.0) - : const Radius.circular(8.0), - bottom: index + 1 == len + : (index == 0 + ? const Radius.circular(16.0) + : const Radius.circular(8.0)), + bottom: separated || isBeforeSeparated ? const Radius.circular(16.0) - : const Radius.circular(8.0), + : (index + 1 == len + ? const Radius.circular(16.0) + : const Radius.circular(8.0)), ), ), child: wrappedItem,