splash_controller.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import 'dart:async';
  2. import 'dart:io';
  3. import 'package:flutter/services.dart';
  4. import 'package:get/get_utils/src/platform/platform.dart';
  5. import 'package:injectable/injectable.dart';
  6. import 'package:location/base/base_controller.dart';
  7. import 'package:location/dialog/agreement_dialog.dart';
  8. import 'package:location/module/main/main_page.dart';
  9. import 'package:location/sdk/asa/asa_helper.dart';
  10. import 'package:location/sdk/umeng/umeng_helper.dart';
  11. import '../../utils/privacy_compliance.dart';
  12. @injectable
  13. class SplashController extends BaseController {
  14. final splashDelayedTime = 2;
  15. @override
  16. void onReady() {
  17. final isAgreePrivacy = PrivacyCompliance.isAgreePrivacyPolicy();
  18. if (isAgreePrivacy) {
  19. isAgreePrivacyNextStep(splashDelayedTime);
  20. } else {
  21. AgreementDialog.show(cancelClick: () {
  22. exitApp();
  23. }, sureClick: () async {
  24. await _agreePrivacy();
  25. isAgreePrivacyNextStep(0);
  26. });
  27. }
  28. }
  29. void isAgreePrivacyNextStep(int splashDelayedTime) {
  30. _goMain(Duration(seconds: splashDelayedTime));
  31. }
  32. void _goMain(Duration delayTime, {Map<String, dynamic>? arguments}) {
  33. Timer(delayTime, () {
  34. MainPage.start(arguments: arguments);
  35. });
  36. }
  37. void exitApp() {
  38. if (GetPlatform.isAndroid) {
  39. SystemNavigator.pop();
  40. } else {
  41. exit(0);
  42. }
  43. }
  44. _agreePrivacy() async {
  45. await UmengHelper.setPolicyGrantResult(true);
  46. await PrivacyCompliance.setPrivacyPolicy(true);
  47. AsaHelper.reportEvent(AsaEvent.active);
  48. AsaHelper.reportEvent(AsaEvent.register);
  49. }
  50. }