diff --git a/lib/features/login/presentation/login_view.dart b/lib/features/login/presentation/login_view.dart index 81f06be9f..3107738d5 100644 --- a/lib/features/login/presentation/login_view.dart +++ b/lib/features/login/presentation/login_view.dart @@ -7,6 +7,7 @@ import 'package:tmail_ui_user/features/base/widget/recent_item_tile_widget.dart' import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart'; import 'package:tmail_ui_user/features/login/presentation/base_login_view.dart'; import 'package:tmail_ui_user/features/login/presentation/login_form_type.dart'; +import 'package:tmail_ui_user/features/login/presentation/privacy_link_widget.dart'; import 'package:tmail_ui_user/features/login/presentation/state/login_state.dart'; import 'package:tmail_ui_user/features/login/presentation/widgets/login_input_decoration_builder.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; @@ -106,7 +107,11 @@ class LoginView extends BaseLoginView { default: return const SizedBox.shrink(); } - }) + }), + const Padding( + padding: EdgeInsets.only(top: 16), + child: PrivacyLinkWidget(), + ), ] ), ) diff --git a/lib/features/login/presentation/login_view_web.dart b/lib/features/login/presentation/login_view_web.dart index 7a55de9c0..603bb11af 100644 --- a/lib/features/login/presentation/login_view_web.dart +++ b/lib/features/login/presentation/login_view_web.dart @@ -4,6 +4,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart'; import 'package:tmail_ui_user/features/login/presentation/base_login_view.dart'; import 'package:tmail_ui_user/features/login/presentation/login_form_type.dart'; +import 'package:tmail_ui_user/features/login/presentation/privacy_link_widget.dart'; import 'package:tmail_ui_user/features/login/presentation/state/login_state.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; @@ -78,7 +79,11 @@ class LoginView extends BaseLoginView { default: return const SizedBox.shrink(); } - }) + }), + const Padding( + padding: EdgeInsets.only(top: 16), + child: PrivacyLinkWidget(), + ), ], ) ), @@ -225,7 +230,11 @@ class LoginView extends BaseLoginView { default: return const SizedBox.shrink(); } - }) + }), + const Padding( + padding: EdgeInsets.only(top: 16), + child: PrivacyLinkWidget() + ), ], ) ) diff --git a/lib/features/login/presentation/privacy_link_widget.dart b/lib/features/login/presentation/privacy_link_widget.dart new file mode 100644 index 000000000..c6c05ac5d --- /dev/null +++ b/lib/features/login/presentation/privacy_link_widget.dart @@ -0,0 +1,30 @@ +import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/widgets.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +class PrivacyLinkWidget extends StatelessWidget { + static const linagoraPrivacy = 'https://www.linagora.com/en/legal/privacy'; + + final String privacyUrlString; + + const PrivacyLinkWidget({Key? key, this.privacyUrlString = linagoraPrivacy}) : super(key: key); + + @override + Widget build(BuildContext context) { + return RichText( + text: TextSpan( + text: AppLocalizations.of(context).privacyPolicy, + style: const TextStyle( + color: AppColor.loginTextFieldFocusedBorder, + fontSize: 14), + recognizer: TapGestureRecognizer()..onTap = () async { + if (await canLaunchUrlString(privacyUrlString)) { + launchUrlString(privacyUrlString); + } + } + ) + ); + } +} diff --git a/lib/l10n/intl_messages.arb b/lib/l10n/intl_messages.arb index 0b940a8ce..25103c7aa 100644 --- a/lib/l10n/intl_messages.arb +++ b/lib/l10n/intl_messages.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2023-01-09T16:48:24.908944", + "@@last_modified": "2023-01-12T18:44:51.610329", "initializing_data": "Initializing data...", "@initializing_data": { "type": "text", @@ -2552,6 +2552,7 @@ "placeholders_order": [], "placeholders": {} }, +<<<<<<< HEAD "youHaveNewMessages": "You have new messages", "@youHaveNewMessages": { "type": "text", @@ -2573,5 +2574,11 @@ "placeholders": { "count": {} } + }, + "privacyPolicy": "Privacy policy", + "@privacyPolicy": { + "type": "text", + "placeholders_order": [], + "placeholders": {} } } \ No newline at end of file diff --git a/lib/main/localizations/app_localizations.dart b/lib/main/localizations/app_localizations.dart index 823d6f52f..4fbc5142f 100644 --- a/lib/main/localizations/app_localizations.dart +++ b/lib/main/localizations/app_localizations.dart @@ -2640,4 +2640,11 @@ class AppLocalizations { name: 'totalNewMessagePushNotification', args: [count]); } + + String get privacyPolicy { + return Intl.message( + 'Privacy policy', + name: 'privacyPolicy' + ); + } } \ No newline at end of file