check_loation_permission_dialog.dart 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import 'dart:ui';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_screenutil/flutter_screenutil.dart';
  4. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  5. import 'package:location/utils/common_expand.dart';
  6. import '../resource/assets.gen.dart';
  7. import '../resource/string.gen.dart';
  8. import '../utils/common_style.dart';
  9. class CheckLocationPermissionDialog {
  10. static final String _tag = 'CheckLocationPermissionDialog';
  11. static void show({required VoidCallback onRequestPermissionClick}) {
  12. SmartDialog.show(
  13. tag: _tag,
  14. builder: (_) {
  15. return CheckLocationPermissionView(
  16. onRequestPermissionClick: onRequestPermissionClick);
  17. });
  18. }
  19. static void dismiss() {
  20. SmartDialog.dismiss(tag: _tag);
  21. }
  22. }
  23. class CheckLocationPermissionView extends Dialog {
  24. final VoidCallback onRequestPermissionClick;
  25. const CheckLocationPermissionView(
  26. {super.key, required this.onRequestPermissionClick});
  27. @override
  28. Widget build(BuildContext context) {
  29. //图片当做背景
  30. return Container(
  31. width: 289.w,
  32. height: 223.w,
  33. decoration: BoxDecoration(
  34. image: DecorationImage(
  35. image: Assets.images.bgCheckLocationPermission.provider(),
  36. fit: BoxFit.fill,
  37. ),
  38. ),
  39. child: Column(
  40. children: [
  41. SizedBox(height: 92.w),
  42. Text(StringName.dialogRecordLocation,
  43. style: TextStyle(
  44. fontSize: 18.sp,
  45. color: '#333333'.color,
  46. fontWeight: FontWeight.bold)),
  47. SizedBox(height: 8.w),
  48. Text(StringName.dialogRecordLocationHasPermission,
  49. style: TextStyle(fontSize: 15.sp, color: '#404040'.color)),
  50. SizedBox(height: 20.6.w),
  51. Row(
  52. mainAxisAlignment: MainAxisAlignment.center,
  53. children: [
  54. GestureDetector(
  55. onTap: () {
  56. CheckLocationPermissionDialog.dismiss();
  57. },
  58. child: Container(
  59. decoration: BoxDecoration(
  60. border: Border.all(color: '#AAAAAA'.color, width: 1.w),
  61. borderRadius: BorderRadius.circular(54.w),
  62. ),
  63. width: 109.w,
  64. height: 40.w,
  65. child: Center(
  66. child: Text(
  67. StringName.dialogRecordLocationNotRequest,
  68. style: TextStyle(fontSize: 14.sp, color: '#AAAAAA'.color),
  69. ),
  70. ),
  71. ),
  72. ),
  73. SizedBox(width: 16.w),
  74. GestureDetector(
  75. onTap: () {
  76. onRequestPermissionClick.call();
  77. CheckLocationPermissionDialog.dismiss();
  78. },
  79. child: Container(
  80. decoration: getPrimaryBtnDecoration(54.w),
  81. width: 109.w,
  82. height: 40.w,
  83. child: Center(
  84. child: Text(StringName.dialogRecordLocationRequest,
  85. style: TextStyle(fontSize: 14.sp, color: Colors.white)),
  86. ),
  87. ),
  88. )
  89. ],
  90. )
  91. ],
  92. ),
  93. );
  94. }
  95. }