diff --git a/assets/images/ic_attachment.svg b/assets/images/ic_attachment.svg
new file mode 100644
index 000000000..c8b73212d
--- /dev/null
+++ b/assets/images/ic_attachment.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/ic_chevron.svg b/assets/images/ic_chevron.svg
new file mode 100644
index 000000000..160b012ef
--- /dev/null
+++ b/assets/images/ic_chevron.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/ic_star.svg b/assets/images/ic_star.svg
new file mode 100644
index 000000000..f4be89974
--- /dev/null
+++ b/assets/images/ic_star.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/ic_unstar.svg b/assets/images/ic_unstar.svg
new file mode 100644
index 000000000..1701a0df2
--- /dev/null
+++ b/assets/images/ic_unstar.svg
@@ -0,0 +1,3 @@
+
diff --git a/core/lib/domain/extensions/datetime_extension.dart b/core/lib/domain/extensions/datetime_extension.dart
index 9b7d39026..b95223db1 100644
--- a/core/lib/domain/extensions/datetime_extension.dart
+++ b/core/lib/domain/extensions/datetime_extension.dart
@@ -28,7 +28,7 @@ extension DateTimeNullableExtension on DateTime? {
String toPattern() {
if (this != null) {
if (this!.isToday()) {
- return 'h:mm a';
+ return 'H:mm';
} else if (this!.isYesterday()) {
return 'EEE';
} else if (this!.isThisYear()) {
diff --git a/core/lib/presentation/extensions/color_extension.dart b/core/lib/presentation/extensions/color_extension.dart
index ed5810f62..477159bb1 100644
--- a/core/lib/presentation/extensions/color_extension.dart
+++ b/core/lib/presentation/extensions/color_extension.dart
@@ -67,7 +67,7 @@ extension AppColor on Color {
static const mapGradientColor = [
[Color(0xFF21D4FD), Color(0xFFB721FF)],
- [Color(0xFF43E97B), Color(0xFF38F9D7)],
+ [Color(0xFF38F9D7), Color(0xFF43E97B)],
[Color(0xFF11E6F0), Color(0xFF4FACFE)],
[Color(0xFFE88395), Color(0xFFEF9C8F)],
[Color(0xFF8DDAD5), Color(0xFF00CDAC)],
diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart
index ca91ff1c7..c65180df2 100644
--- a/core/lib/presentation/resources/image_paths.dart
+++ b/core/lib/presentation/resources/image_paths.dart
@@ -43,6 +43,10 @@ class ImagePaths {
String get icPhotoLibrary => _getImagePath('ic_photo_library.svg');
String get icEmptyImageDefault => _getImagePath('empty_image_default.svg');
String get icUnread => _getImagePath('ic_unread.svg');
+ String get icStar => _getImagePath('ic_star.svg');
+ String get icUnStar => _getImagePath('ic_unstar.svg');
+ String get icAttachment => _getImagePath('ic_attachment.svg');
+ String get icChevron => _getImagePath('ic_chevron.svg');
String _getImagePath(String imageName) {
return AssetsPaths.images + imageName;
diff --git a/core/lib/presentation/views/image/avatar_builder.dart b/core/lib/presentation/views/image/avatar_builder.dart
index 35cb7fd6e..82fd273bc 100644
--- a/core/lib/presentation/views/image/avatar_builder.dart
+++ b/core/lib/presentation/views/image/avatar_builder.dart
@@ -71,6 +71,7 @@ class AvatarBuilder {
? LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
+ tileMode: TileMode.decal,
colors: _avatarColors ?? [])
: null,
color: _bgColor ?? AppColor.avatarColor),
diff --git a/lib/features/thread/presentation/widgets/email_tile_builder.dart b/lib/features/thread/presentation/widgets/email_tile_builder.dart
index 28044b7d3..4a5d0420b 100644
--- a/lib/features/thread/presentation/widgets/email_tile_builder.dart
+++ b/lib/features/thread/presentation/widgets/email_tile_builder.dart
@@ -88,12 +88,10 @@ class EmailTileBuilder {
title: Transform(
transform: Matrix4.translationValues(-8.0, 0.0, 0.0),
child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.start,
children: [
if (_presentationEmail.isUnReadEmail())
Padding(
- padding: EdgeInsets.only(top: 6, right: 5),
+ padding: EdgeInsets.only(right: 5),
child: SvgPicture.asset(_imagePaths.icUnread, width: 9, height: 9, fit: BoxFit.fill)),
Expanded(
child: _searchStatus == SearchStatus.ACTIVE && _searchQuery != null && _searchQuery!.value.isNotEmpty
@@ -108,13 +106,24 @@ class EmailTileBuilder {
overflow:TextOverflow.ellipsis,
style: TextStyle(fontSize: 15, color: AppColor.colorNameEmail, fontWeight: FontWeight.w600))
),
+ if (_presentationEmail.hasAttachment == true)
+ Padding(
+ padding: EdgeInsets.only(left: 8),
+ child: (ButtonBuilder(_imagePaths.icAttachment)
+ ..padding(0)
+ ..size(16))
+ .build()),
Padding(
- padding: EdgeInsets.only(right: 4),
+ padding: EdgeInsets.only(right: 4, left: 8),
child: Text(
'${_presentationEmail.getReceivedAt(Localizations.localeOf(_context).toLanguageTag())}',
maxLines: 1,
overflow:TextOverflow.ellipsis,
- style: TextStyle(fontSize: 13, color: AppColor.colorContentEmail)))
+ style: TextStyle(fontSize: 13, color: AppColor.colorContentEmail))),
+ (ButtonBuilder(_imagePaths.icChevron)
+ ..padding(0)
+ ..size(16))
+ .build(),
],
)
),
@@ -123,28 +132,24 @@ class EmailTileBuilder {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: EdgeInsets.zero,
child: Row(
+ mainAxisSize: MainAxisSize.min,
children: [
- Expanded(
- child: _searchStatus == SearchStatus.ACTIVE && _searchQuery != null && _searchQuery!.value.isNotEmpty
- ? RichTextBuilder(
- '${_presentationEmail.getEmailTitle()}',
- '${_searchQuery!.value}',
- TextStyle(
- fontSize: 13,
- color: _presentationEmail.isUnReadEmail() ? AppColor.subjectEmailTextColorUnRead : AppColor.colorNameEmail),
- TextStyle(
- fontSize: 13,
- backgroundColor: AppColor.bgWordSearch,
- color: _presentationEmail.isUnReadEmail() ? AppColor.subjectEmailTextColorUnRead : AppColor.colorNameEmail)).build()
- : Text(
- '${_presentationEmail.getEmailTitle()}',
- maxLines: 1,
- overflow:TextOverflow.ellipsis,
- style: TextStyle(fontSize: 13, color: AppColor.colorNameEmail))
+ Expanded(child: _searchStatus == SearchStatus.ACTIVE && _searchQuery != null && _searchQuery!.value.isNotEmpty
+ ? RichTextBuilder(
+ '${_presentationEmail.getEmailTitle()}',
+ '${_searchQuery!.value}',
+ TextStyle(fontSize: 13, color: AppColor.colorNameEmail),
+ TextStyle(fontSize: 13, backgroundColor: AppColor.bgWordSearch, color: AppColor.colorNameEmail)).build()
+ : Text(
+ '${_presentationEmail.getEmailTitle()}',
+ maxLines: 1,
+ overflow: TextOverflow.ellipsis,
+ style: TextStyle(fontSize: 13, color: AppColor.colorNameEmail))
),
if (_searchStatus == SearchStatus.ACTIVE && _presentationEmail.mailboxName.isNotEmpty)
Container(
@@ -160,48 +165,36 @@ class EmailTileBuilder {
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 10, color: AppColor.mailboxTextColor, fontWeight: FontWeight.bold),
)
- )
+ ),
+ if (_presentationEmail.isFlaggedEmail() )
+ (ButtonBuilder(_imagePaths.icStar)
+ ..padding(0)
+ ..size(15))
+ .build(),
],
)),
- Row(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Expanded(
- child: _searchStatus == SearchStatus.ACTIVE && _searchQuery != null && _searchQuery!.value.isNotEmpty
- ? RichTextBuilder(
- '${_presentationEmail.getPartialContent()}',
- '${_searchQuery!.value}',
- TextStyle(fontSize: 13, color: AppColor.colorContentEmail),
- TextStyle(fontSize: 13, color: AppColor.colorContentEmail, backgroundColor: AppColor.bgWordSearch)).build()
- : Text(
- '${_presentationEmail.getPartialContent()}',
- maxLines: 1,
- overflow:TextOverflow.ellipsis,
- style: TextStyle(fontSize: 13, color: AppColor.colorContentEmail))
+ Padding(
+ padding: EdgeInsets.only(top: 8),
+ child: Row(children: [
+ Expanded(child: _searchStatus == SearchStatus.ACTIVE && _searchQuery != null && _searchQuery!.value.isNotEmpty
+ ? RichTextBuilder(
+ '${_presentationEmail.getPartialContent()}',
+ '${_searchQuery!.value}',
+ TextStyle(fontSize: 13, color: AppColor.colorContentEmail),
+ TextStyle(fontSize: 13, color: AppColor.colorContentEmail, backgroundColor: AppColor.bgWordSearch)).build()
+ : Text(
+ '${_presentationEmail.getPartialContent()}',
+ maxLines: 1,
+ overflow:TextOverflow.ellipsis,
+ style: TextStyle(fontSize: 13, color: AppColor.colorContentEmail))
),
- if (_presentationEmail.hasAttachment == true)
- (ButtonBuilder(_imagePaths.icShare)
- ..padding(5)
- ..size(20))
- .build(),
- (ButtonBuilder(_presentationEmail.isFlaggedEmail() ? _imagePaths.icFlagged : _imagePaths.icFlag)
- ..padding(5)
- ..size(20)
- ..onPressActionClick(() {
- if (_onMarkAsStarEmailActionClick != null) {
- _onMarkAsStarEmailActionClick!(_presentationEmail);
- }
- }))
- .build(),
- ],
- )
+ ]))
],
)
),
),
Padding(
- padding: EdgeInsets.only(top: 8, right: 12),
+ padding: EdgeInsets.only(top: 12, right: 12),
child: Divider(color: AppColor.lineItemListColor, height: 1, thickness: 0.2)),
]),
)