diff --git a/assets/images/ic_calendar_event.svg b/assets/images/ic_calendar_event.svg new file mode 100644 index 0000000000..be965e4fdb --- /dev/null +++ b/assets/images/ic_calendar_event.svg @@ -0,0 +1,5 @@ + + + diff --git a/core/lib/presentation/extensions/color_extension.dart b/core/lib/presentation/extensions/color_extension.dart index 7bb309437f..b2282e779c 100644 --- a/core/lib/presentation/extensions/color_extension.dart +++ b/core/lib/presentation/extensions/color_extension.dart @@ -184,6 +184,8 @@ extension AppColor on Color { static const colorBackgroundDeliveringState = Color(0xFFF2F3F5); static const colorNetworkConnectionBannerBackground = Color(0x99EBEDF0); static const colorNetworkConnectionLabel = Color(0xFF818C99); + static const colorCalendarEventRead = Color(0xFF818C99); + static const colorCalendarEventUnread = Color(0xFF1C1B1F); static const mapGradientColor = [ [Color(0xFF21D4FD), Color(0xFFB721FF)], diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart index 39bc83c9e6..4508fc577e 100644 --- a/core/lib/presentation/resources/image_paths.dart +++ b/core/lib/presentation/resources/image_paths.dart @@ -194,6 +194,7 @@ class ImagePaths { String get icArrowLeft => _getImagePath('ic_arrow_left.svg'); String get icArrowRight => _getImagePath('ic_arrow_right.svg'); String get icAddPicture => _getImagePath('ic_add_picture.svg'); + String get icCalendarEvent => _getImagePath('ic_calendar_event.svg'); String _getImagePath(String imageName) { return AssetsPaths.images + imageName; diff --git a/lib/features/thread/presentation/mixin/base_email_item_tile.dart b/lib/features/thread/presentation/mixin/base_email_item_tile.dart index 3e95e18356..fefbe00f4e 100644 --- a/lib/features/thread/presentation/mixin/base_email_item_tile.dart +++ b/lib/features/thread/presentation/mixin/base_email_item_tile.dart @@ -330,4 +330,16 @@ mixin BaseEmailItemTile { return null; } } + + Widget buildCalendarEventIcon({required PresentationEmail presentationEmail}) { + return SvgPicture.asset( + imagePaths.icCalendarEvent, + width: 20, + height: 20, + fit: BoxFit.fill, + colorFilter: presentationEmail.hasRead + ? AppColor.colorCalendarEventRead.asFilter() + : AppColor.colorCalendarEventUnread.asFilter(), + ); + } } \ No newline at end of file diff --git a/lib/features/thread/presentation/widgets/email_tile_builder.dart b/lib/features/thread/presentation/widgets/email_tile_builder.dart index d65145d9d4..0c8b537839 100644 --- a/lib/features/thread/presentation/widgets/email_tile_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_builder.dart @@ -107,6 +107,11 @@ class EmailTileBuilder with BaseEmailItemTile { child: Row( mainAxisSize: MainAxisSize.min, children: [ + if (_presentationEmail.hasCalendarEvent) + Padding( + padding: const EdgeInsetsDirectional.only(end: 8), + child: buildCalendarEventIcon(presentationEmail: _presentationEmail), + ), Expanded(child: buildEmailTitle( _context, _presentationEmail, diff --git a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart index 8269aed940..4f167a3951 100644 --- a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart @@ -172,6 +172,11 @@ class EmailTileBuilder with BaseEmailItemTile { Row( mainAxisSize: MainAxisSize.min, children: [ + if (_presentationEmail.hasCalendarEvent) + Padding( + padding: const EdgeInsetsDirectional.only(end: 8), + child: buildCalendarEventIcon(presentationEmail: _presentationEmail), + ), Expanded(child: buildEmailTitle( _context, _presentationEmail, @@ -255,6 +260,11 @@ class EmailTileBuilder with BaseEmailItemTile { Row( mainAxisSize: MainAxisSize.min, children: [ + if (_presentationEmail.hasCalendarEvent) + Padding( + padding: const EdgeInsetsDirectional.only(end: 8), + child: buildCalendarEventIcon(presentationEmail: _presentationEmail), + ), Expanded(child: buildEmailTitle( _context, _presentationEmail, @@ -509,6 +519,11 @@ class EmailTileBuilder with BaseEmailItemTile { Widget _buildSubjectAndContent() { return LayoutBuilder(builder: (context, constraints) { return Row(children: [ + if (_presentationEmail.hasCalendarEvent) + Padding( + padding: const EdgeInsetsDirectional.only(end: 8), + child: buildCalendarEventIcon(presentationEmail: _presentationEmail), + ), if (_presentationEmail.getEmailTitle().isNotEmpty) Container( constraints: BoxConstraints(maxWidth: constraints.maxWidth / 2),