import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:keyboard/resource/string.gen.dart'; import '../data/consts/web_url.dart'; import '../resource/assets.gen.dart'; import '../resource/colors.gen.dart'; import '../utils/styles.dart'; import '../widget/click_text_span.dart'; class PrivacyAgreementDialog { static const String tag = 'PrivacyAgreementDialog'; static void show({Function? btnCancel, Function? btnConfirm}) { SmartDialog.show( tag: tag, backType: SmartBackType.block, clickMaskDismiss: true, maskColor: ColorName.black70, builder: (_) { return Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( margin: EdgeInsets.symmetric(horizontal: 33.w), decoration: ShapeDecoration( color: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20.r), ), ), child: Stack( children: [ Container( padding: EdgeInsets.symmetric( horizontal: 16.w, vertical: 24.w, ), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Text( StringName.tip, style: Styles.getTextStyleBlack204W500(16.sp), ), SizedBox(height: 20.h), SizedBox( child: Text.rich( textAlign: TextAlign.center, TextSpan( children: [ TextSpan( text: StringName.textSpanIHaveReadAndAgree, style: TextStyle( color: Colors.black.withAlpha(153), fontSize: 14.sp, fontWeight: FontWeight.w400, ), ), TextSpan( text: "\n", style: TextStyle( color: Colors.black.withAlpha(153), fontSize: 14.sp, fontWeight: FontWeight.w400, ), ), ClickTextSpan( fontSize: 14.sp, text: StringName.textSpanPrivacyPolicy, url: WebUrl.privacyPolicy, color: Color(0xff374BFF), ), TextSpan( text: StringName.textSpanAnd, style: TextStyle( color: Colors.black.withAlpha(153), fontSize: 14.sp, fontWeight: FontWeight.w400, ), ), ClickTextSpan( fontSize: 14.sp, text: StringName.textSpanServiceTerms, url: WebUrl.serviceAgreement, color: Color(0xff374BFF), ), ], ), ), ), SizedBox(height: 20.h), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ GestureDetector( onTap: () { if (btnCancel != null) { btnCancel(); } SmartDialog.dismiss(); }, child: Container( height: 40.h, width: 128.w, alignment: Alignment.center, decoration: ShapeDecoration( color: const Color(0xFFF5F4F9), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(50.r), ), ), child: Text( StringName.privacyDialogCancel, style: Styles.getTextStyleBlack102W500(16.sp), ), ), ), GestureDetector( onTap: () { if (btnConfirm != null) { btnConfirm(); } SmartDialog.dismiss(tag: tag); }, child: Container( height: 40.h, width: 128.r, alignment: Alignment.center, decoration: Styles.getActivateButtonDecoration( 50.r, ), child: Text( StringName.privacyDialogConfirm, style: Styles.getTextStyleWhiteW500(16.sp), ), ), ), ], ), ], ), ), ], ), ), ], ); }, ); } }