| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- import 'package:flutter/gestures.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
- import 'package:get/get.dart';
- import 'package:keyboard/utils/common_expand.dart';
- import '../data/consts/web_url.dart';
- import '../module/browser/browser_page.dart';
- import '../resource/assets.gen.dart';
- import '../resource/colors.gen.dart';
- import '../resource/string.gen.dart';
- import '../utils/styles.dart';
- import '../widget/click_text_span.dart';
- class AgreementAgainDialog {
- static final _tag = "AgreementAgainDialog";
- static void show({
- required VoidCallback cancelClick,
- required VoidCallback sureClick,
- }) {
- SmartDialog.show(
- tag: _tag,
- backType: SmartBackType.block,
- builder: (_) {
- return _AgreementAgainDialog(cancelClick, sureClick);
- },
- alignment: Alignment.center,
- clickMaskDismiss: false,
- );
- }
- static void dismiss() {
- SmartDialog.dismiss(tag: _tag);
- }
- }
- class _AgreementAgainDialog extends Dialog {
- final VoidCallback cancelClick;
- final VoidCallback sureClick;
- const _AgreementAgainDialog(this.cancelClick, this.sureClick);
- @override
- Widget build(BuildContext context) {
- return Container(
- width: 300.w,
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.circular(20.w),
- ),
- child: Container(
- width: 300.w,
- decoration: BoxDecoration(
- image: DecorationImage(
- image: Assets.images.bgAgreementAgainDialog.provider(),
- fit: BoxFit.contain,
- alignment: Alignment.topCenter,
- ),
- ),
- child: Column(
- mainAxisSize: MainAxisSize.min,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- SizedBox(height: 29.55.w),
- Text(
- StringName.privacyTitle,
- textAlign: TextAlign.center,
- style: TextStyle(
- color: const Color(0xFF202020),
- fontSize: 16.sp,
- fontWeight: FontWeight.w700,
- ),
- ),
- SizedBox(height: 30.05.w),
- SizedBox(
- width: 240.w,
- child: Opacity(
- opacity: 0.80,
- child: Text.rich(
- TextSpan(
- children: [
- TextSpan(
- text: '需要同意',
- style: TextStyle(
- color: Colors.black.withAlpha(204),
- fontSize: 14.sp,
- fontWeight: FontWeight.w400,
- height: 1.43,
- ),
- ),
- TextSpan(
- text: '《隐私政策》',
- style: TextStyle(
- color: const Color(0xFF374BFF),
- fontSize: 14.sp,
- fontWeight: FontWeight.w500,
- height: 1.43,
- ),
- recognizer:
- TapGestureRecognizer()
- ..onTap = () {
- BrowserPage.start(WebUrl.privacyPolicy);
- },
- ),
- TextSpan(
- text: '和',
- style: TextStyle(
- color: Colors.black.withAlpha(204),
- fontSize: 14.sp,
- fontWeight: FontWeight.w400,
- height: 1.43,
- ),
- ),
- TextSpan(
- text: '《用户协议》',
- recognizer:
- TapGestureRecognizer()
- ..onTap = () {
- BrowserPage.start(WebUrl.serviceAgreement);
- },
- style: TextStyle(
- color: const Color(0xFF374BFF),
- fontSize: 14.sp,
- fontWeight: FontWeight.w500,
- height: 1.43,
- ),
- ),
- TextSpan(
- text: '才能继续为您提供服务,如您选择不同意很遗憾我们难以继续为您继续服务。',
- style: TextStyle(
- color: Colors.black.withAlpha(204),
- fontSize: 14.sp,
- fontWeight: FontWeight.w400,
- height: 1.43,
- ),
- ),
- ],
- ),
- ),
- ),
- ),
- SizedBox(height: 30.w),
- Container(
- margin: EdgeInsets.only(left: 25.w, right: 25.w),
- child: Row(
- children: [
- Expanded(
- child: sureText(StringName.privacyAgree, () {
- sureClick();
- }),
- ),
- ],
- ),
- ),
- SizedBox(height: 18.w),
- cancelText(StringName.privacyDisagreeAndExit, () => cancel()),
- SizedBox(height: 30.w),
- ],
- ),
- ),
- );
- }
- void cancel() {
- cancelClick();
- }
- Widget cancelText(String txt, VoidCallback onTap) {
- return GestureDetector(
- onTap: onTap,
- child: Center(
- child: Text(
- txt,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.black.withAlpha(102),
- fontWeight: FontWeight.w500,
- ),
- ),
- ),
- );
- }
- Widget sureText(String txt, VoidCallback onTap) {
- return GestureDetector(
- onTap: onTap,
- child: Container(
- decoration: Styles.getActivateButtonDecoration(50.r),
- height: 40.w,
- child: Center(
- child: Text(
- txt,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- ),
- ),
- ),
- ),
- );
- }
- }
|