From 0a74befdc62c615355400354abf369b8da7e9197 Mon Sep 17 00:00:00 2001 From: "khaled.njim" Date: Wed, 21 Aug 2024 11:49:35 +0100 Subject: [PATCH 1/4] TW-1996-removed-activated-status-in-accounts-tab --- .../widget/contact_status_widget.dart | 20 ++++++------------- .../widget/expansion_contact_list_tile.dart | 2 +- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/lib/pages/new_private_chat/widget/contact_status_widget.dart b/lib/pages/new_private_chat/widget/contact_status_widget.dart index e2acf0cfa4..7daf7116b4 100644 --- a/lib/pages/new_private_chat/widget/contact_status_widget.dart +++ b/lib/pages/new_private_chat/widget/contact_status_widget.dart @@ -13,7 +13,6 @@ class ContactStatusWidget extends StatelessWidget { required this.status, }); - final Color? activeColor = LinagoraRefColors.material().secondary[40]; final Color? inactiveColor = LinagoraRefColors.material().neutral[60]; @override @@ -26,21 +25,14 @@ class ContactStatusWidget extends StatelessWidget { SvgPicture.asset( ImagePaths.icStatus, // ignore: deprecated_member_use - color: status == ContactStatus.active ? activeColor : inactiveColor, + color: inactiveColor, ), - status == ContactStatus.active - ? Text( - " ${L10n.of(context)!.online}", - style: Theme.of(context).textTheme.bodySmall?.copyWith( - color: activeColor, - ), - ) - : Text( - " ${L10n.of(context)!.inactive}", - style: Theme.of(context).textTheme.bodySmall?.copyWith( - color: inactiveColor, - ), + Text( + " ${L10n.of(context)!.inactive}", + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: inactiveColor, ), + ), ], ), ); diff --git a/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart b/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart index 54efe2d7d0..c99e76e50e 100644 --- a/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart +++ b/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart @@ -85,7 +85,7 @@ class ExpansionContactListTile extends StatelessWidget { ), ], const SizedBox(width: 8.0), - if (contact.status != null) + if (contact.status == ContactStatus.inactive) ContactStatusWidget( status: contact.status!, ), From fe7c2f9d964006d08a82ff8ce631e995a7907103 Mon Sep 17 00:00:00 2001 From: "khaled.njim" Date: Fri, 30 Aug 2024 01:03:40 +0100 Subject: [PATCH 2/4] fixup! TW-1996-removed-activated-status-in-accounts-tab --- lib/pages/new_private_chat/widget/contact_status_widget.dart | 3 +-- .../new_private_chat/widget/expansion_contact_list_tile.dart | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pages/new_private_chat/widget/contact_status_widget.dart b/lib/pages/new_private_chat/widget/contact_status_widget.dart index 7daf7116b4..b2ca355e6a 100644 --- a/lib/pages/new_private_chat/widget/contact_status_widget.dart +++ b/lib/pages/new_private_chat/widget/contact_status_widget.dart @@ -24,8 +24,7 @@ class ContactStatusWidget extends StatelessWidget { children: [ SvgPicture.asset( ImagePaths.icStatus, - // ignore: deprecated_member_use - color: inactiveColor, + colorFilter: ColorFilter.mode(inactiveColor!, BlendMode.srcIn), ), Text( " ${L10n.of(context)!.inactive}", diff --git a/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart b/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart index c99e76e50e..e855238afb 100644 --- a/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart +++ b/lib/pages/new_private_chat/widget/expansion_contact_list_tile.dart @@ -85,7 +85,8 @@ class ExpansionContactListTile extends StatelessWidget { ), ], const SizedBox(width: 8.0), - if (contact.status == ContactStatus.inactive) + if (contact.status != null && + contact.status == ContactStatus.inactive) ContactStatusWidget( status: contact.status!, ), From c8288d37e7d3573f1e91f0b52a18906412196139 Mon Sep 17 00:00:00 2001 From: "khaled.njim" Date: Tue, 10 Sep 2024 02:15:03 +0100 Subject: [PATCH 3/4] TW-1996 added test for contact_status_widget --- .../widget/contact_status_widget_test.dart | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/pages/new_private_chat/widget/contact_status_widget_test.dart diff --git a/test/pages/new_private_chat/widget/contact_status_widget_test.dart b/test/pages/new_private_chat/widget/contact_status_widget_test.dart new file mode 100644 index 0000000000..df5ef4b85b --- /dev/null +++ b/test/pages/new_private_chat/widget/contact_status_widget_test.dart @@ -0,0 +1,47 @@ +import 'package:fluffychat/pages/new_private_chat/widget/contact_status_widget.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:fluffychat/domain/model/contact/contact_status.dart'; +import 'package:linagora_design_flutter/colors/linagora_ref_colors.dart'; + +void main() { + group('ContactStatusWidget', () { + testWidgets('renders correctly for inactive status', + (WidgetTester tester) async { + await tester.pumpWidget( + MaterialApp( + localizationsDelegates: L10n.localizationsDelegates, + supportedLocales: L10n.supportedLocales, + home: Scaffold( + body: ContactStatusWidget(status: ContactStatus.inactive), + ), + ), + ); + + expect(find.byType(SvgPicture), findsOneWidget); + + expect(find.byType(Text), findsOneWidget); + + final svgPicture = tester.widget(find.byType(SvgPicture)); + expect( + svgPicture.colorFilter, + ColorFilter.mode( + LinagoraRefColors.material().neutral[60]!, + BlendMode.srcIn, + ), + ); + + final text = tester.widget(find.byType(Text)); + expect(text.style?.color, LinagoraRefColors.material().neutral[60]); + expect( + text.style?.fontSize, + Theme.of(tester.element(find.byType(ContactStatusWidget))) + .textTheme + .bodySmall + ?.fontSize, + ); + }); + }); +} From fb603fc705dfceedad120f50ac498c9eb406ef40 Mon Sep 17 00:00:00 2001 From: "khaled.njim" Date: Tue, 10 Sep 2024 09:49:50 +0100 Subject: [PATCH 4/4] fixup! TW-1996 added test for contact_status_widget --- .../widget/contact_status_widget.dart | 37 ++++++++++--------- .../widget/contact_status_widget_test.dart | 17 +++++++++ 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/lib/pages/new_private_chat/widget/contact_status_widget.dart b/lib/pages/new_private_chat/widget/contact_status_widget.dart index b2ca355e6a..8b959143c1 100644 --- a/lib/pages/new_private_chat/widget/contact_status_widget.dart +++ b/lib/pages/new_private_chat/widget/contact_status_widget.dart @@ -17,23 +17,26 @@ class ContactStatusWidget extends StatelessWidget { @override Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - SvgPicture.asset( - ImagePaths.icStatus, - colorFilter: ColorFilter.mode(inactiveColor!, BlendMode.srcIn), - ), - Text( - " ${L10n.of(context)!.inactive}", - style: Theme.of(context).textTheme.bodySmall?.copyWith( - color: inactiveColor, + return status == ContactStatus.inactive + ? Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SvgPicture.asset( + ImagePaths.icStatus, + colorFilter: + ColorFilter.mode(inactiveColor!, BlendMode.srcIn), ), - ), - ], - ), - ); + Text( + " ${L10n.of(context)!.inactive}", + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: inactiveColor, + ), + ), + ], + ), + ) + : const SizedBox.shrink(); } } diff --git a/test/pages/new_private_chat/widget/contact_status_widget_test.dart b/test/pages/new_private_chat/widget/contact_status_widget_test.dart index df5ef4b85b..f7ea163077 100644 --- a/test/pages/new_private_chat/widget/contact_status_widget_test.dart +++ b/test/pages/new_private_chat/widget/contact_status_widget_test.dart @@ -43,5 +43,22 @@ void main() { ?.fontSize, ); }); + + testWidgets('renders correctly for active status', + (WidgetTester tester) async { + await tester.pumpWidget( + MaterialApp( + localizationsDelegates: L10n.localizationsDelegates, + supportedLocales: L10n.supportedLocales, + home: Scaffold( + body: ContactStatusWidget(status: ContactStatus.active), + ), + ), + ); + + expect(find.byType(SvgPicture), findsNothing); + expect(find.byType(Text), findsNothing); + expect(find.byType(SizedBox), findsOneWidget); + }); }); }