controller.dart 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import 'dart:async';
  2. import 'dart:io';
  3. import 'package:electronic_assistant/base/base_controller.dart';
  4. import 'package:electronic_assistant/data/consts/constants.dart';
  5. import 'package:electronic_assistant/module/browser/view.dart';
  6. import 'package:electronic_assistant/router/app_pages.dart';
  7. import 'package:electronic_assistant/utils/expand.dart';
  8. import 'package:electronic_assistant/widget/alert_dialog.dart';
  9. import 'package:flutter/cupertino.dart';
  10. import 'package:flutter/gestures.dart';
  11. import 'package:get/get.dart';
  12. import '../../main.dart';
  13. class SplashController extends BaseController {
  14. final splashDelayedTime = 2;
  15. @override
  16. void onReady() {
  17. // TODO: implement onInit
  18. super.onReady();
  19. final isAgreePrivacy = isAgreePrivacyPolicy();
  20. if (isAgreePrivacy) {
  21. Timer(Duration(seconds: splashDelayedTime), () {
  22. Get.offNamed(RoutePath.mainTab);
  23. });
  24. } else {
  25. EAAlertDialog.show(
  26. title: "隐私政策及权限说明",
  27. contentWidget: RichText(
  28. textAlign: TextAlign.left,
  29. text: TextSpan(
  30. style: TextStyle(
  31. color: "#5F5F61".toColor(),
  32. fontSize: 14,
  33. decoration: TextDecoration.none,
  34. ),
  35. children: [
  36. const TextSpan(
  37. text:
  38. "为了更好地为您服务,我们可能向系统申请一些必要权限,用于基本服务和功能。我们非常重视您的隐私和个人信息,请使用之前请仔细阅读",
  39. ),
  40. TextSpan(
  41. text: "《隐私政策》",
  42. style: TextStyle(
  43. color: "#5E8BFF".toColor(),
  44. decoration: TextDecoration.none,
  45. ),
  46. recognizer: TapGestureRecognizer()
  47. ..onTap = () {
  48. if (Platform.isAndroid) {
  49. BrowserPage.start(Constants.privacyPolicy);
  50. } else {
  51. BrowserPage.start(Constants.privacyPolicyIos);
  52. }
  53. },
  54. ),
  55. const TextSpan(
  56. text: "和",
  57. ),
  58. TextSpan(
  59. text: "《用户使用协议》",
  60. style: TextStyle(
  61. color: "#5E8BFF".toColor(),
  62. decoration: TextDecoration.none,
  63. ),
  64. recognizer: TapGestureRecognizer()
  65. ..onTap = () {
  66. BrowserPage.start(Constants.userAgreement);
  67. },
  68. ),
  69. const TextSpan(
  70. text: "。同意后,我们将继续为您服务。",
  71. ),
  72. ],
  73. ),
  74. ),
  75. cancelText: "不同意",
  76. confirmText: "同意并继续",
  77. cancelOnTap: () {
  78. EAAlertDialog.dismiss();
  79. exit(0);
  80. },
  81. confirmOnTap: () async {
  82. EAAlertDialog.dismiss();
  83. setPrivacyPolicy(true);
  84. await initAfterGrant();
  85. await Future.delayed(const Duration(seconds: 1));
  86. Get.offNamed(RoutePath.mainTab);
  87. },
  88. );
  89. }
  90. }
  91. }