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