ask_premissions_view.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import 'package:flutter/material.dart';
  2. import 'package:trackoffical_app/generated/assets.dart';
  3. import 'package:trackoffical_app/route.dart';
  4. import 'package:trackoffical_app/screen.dart';
  5. import 'package:get/get.dart';
  6. import 'package:common_pub/prelude.dart';
  7. import '../service/app.dart';
  8. class AskPermissionsView extends StatelessWidget {
  9. const AskPermissionsView({super.key});
  10. @override
  11. Widget build(BuildContext context) {
  12. return WillPopScope(child: Scaffold(
  13. backgroundColor: Colors.white,
  14. body: Padding(
  15. padding: EdgeInsets.all(4.53.wp),
  16. child: Column(
  17. children: [
  18. Expanded(
  19. child: Center(
  20. child: Image.asset(
  21. Assets.imagesImLogo,
  22. height: 11.2.wp,
  23. ))),
  24. _elem(Icons.storage_outlined, '存储空间',
  25. '使用存储空间进行设备固件升级,app在线升级,保存摄像头照片等'),
  26. _elem(Icons.location_on_outlined, '地理位置信息', '辅助蓝牙进行位置搜索,定位扫描时位置'),
  27. _elem(Icons.camera_alt_outlined, '摄像头',
  28. '在用户进行摄像头标记时,如果选择了照片添加,此时会调取手机摄像头进行照片的拍摄。'),
  29. Padding(
  30. padding: EdgeInsets.fromLTRB(3.74.wp, 6.5.wp, 3.74.wp, 0),
  31. child: Text(
  32. '您可以在系统设置中关闭授权,但是会影响部分功能的使用, 请在使用前务必请阅读并同意 安全协议 和 隐私政策 全部条款,如您同意并接全部条款,请点击同意开始使用我们的产品及服务。',
  33. style: TextStyle(fontSize: 2.65.wp),),
  34. ),
  35. Expanded(child: Center(child: Column(
  36. mainAxisSize: MainAxisSize.min,
  37. children: [
  38. SizedBox(
  39. width: 59.7.wp,
  40. height: 10.1.wp,
  41. child: FilledButton(onPressed: agree, child: const Text('同意'))
  42. ),
  43. TextButton(onPressed: cancel, child: const Text('我再想想'))
  44. ],
  45. )))
  46. ],
  47. ),
  48. ),
  49. ), onWillPop: ()async{
  50. cancel();
  51. return false;
  52. }) ;
  53. }
  54. void agree()async{
  55. toNext();
  56. }
  57. void toNext(){
  58. var name = RouteName.home;
  59. if (App.to.userProfile.age.val > 300) {
  60. name = RouteName.homeSaveUserInfo;
  61. }
  62. Get.offAllNamed(name);
  63. }
  64. void cancel(){
  65. toNext();
  66. }
  67. Widget _elem(IconData icon, String title, String msg) {
  68. return Container(
  69. decoration: const BoxDecoration(
  70. color: Color(0xffe3f5ff),
  71. ),
  72. padding: EdgeInsets.all(4.16.wp),
  73. margin: EdgeInsets.only(bottom: 2.67.wp),
  74. child: Row(
  75. children: [
  76. Icon(
  77. icon,
  78. size: 7.wp,
  79. color: Colors.blue,
  80. ),
  81. SizedBox(width: 2.3.wp),
  82. Expanded(
  83. child: Column(
  84. mainAxisSize: MainAxisSize.min,
  85. crossAxisAlignment: CrossAxisAlignment.start,
  86. children: [
  87. Text(title,
  88. style: TextStyle(
  89. color: const Color(0xff404040), fontSize: 3.73.wp)),
  90. SizedBox(height: 1.3.wp),
  91. Text(msg,
  92. style: TextStyle(
  93. color: const Color(0xff404040), fontSize: 3.2.wp))
  94. ],
  95. ))
  96. ],
  97. ),
  98. );
  99. }
  100. }
  101. void main() {
  102. runPreview(const AskPermissionsView());
  103. }