TF-1379 Add privacy policy in login screen
This commit is contained in:
committed by
Dat H. Pham
parent
170bfff3b4
commit
d443a28b98
@@ -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/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/base_login_view.dart';
|
||||||
import 'package:tmail_ui_user/features/login/presentation/login_form_type.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/state/login_state.dart';
|
||||||
import 'package:tmail_ui_user/features/login/presentation/widgets/login_input_decoration_builder.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';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
@@ -106,7 +107,11 @@ class LoginView extends BaseLoginView {
|
|||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
})
|
}),
|
||||||
|
const Padding(
|
||||||
|
padding: EdgeInsets.only(top: 16),
|
||||||
|
child: PrivacyLinkWidget(),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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: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/base_login_view.dart';
|
||||||
import 'package:tmail_ui_user/features/login/presentation/login_form_type.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/state/login_state.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
@@ -78,7 +79,11 @@ class LoginView extends BaseLoginView {
|
|||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
})
|
}),
|
||||||
|
const Padding(
|
||||||
|
padding: EdgeInsets.only(top: 16),
|
||||||
|
child: PrivacyLinkWidget(),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -225,7 +230,11 @@ class LoginView extends BaseLoginView {
|
|||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
})
|
}),
|
||||||
|
const Padding(
|
||||||
|
padding: EdgeInsets.only(top: 16),
|
||||||
|
child: PrivacyLinkWidget()
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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": "Initializing data...",
|
||||||
"@initializing_data": {
|
"@initializing_data": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -2552,6 +2552,7 @@
|
|||||||
"placeholders_order": [],
|
"placeholders_order": [],
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
},
|
},
|
||||||
|
<<<<<<< HEAD
|
||||||
"youHaveNewMessages": "You have new messages",
|
"youHaveNewMessages": "You have new messages",
|
||||||
"@youHaveNewMessages": {
|
"@youHaveNewMessages": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -2573,5 +2574,11 @@
|
|||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"privacyPolicy": "Privacy policy",
|
||||||
|
"@privacyPolicy": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders_order": [],
|
||||||
|
"placeholders": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2640,4 +2640,11 @@ class AppLocalizations {
|
|||||||
name: 'totalNewMessagePushNotification',
|
name: 'totalNewMessagePushNotification',
|
||||||
args: [count]);
|
args: [count]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get privacyPolicy {
|
||||||
|
return Intl.message(
|
||||||
|
'Privacy policy',
|
||||||
|
name: 'privacyPolicy'
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user