splash_controller.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import 'dart:io';
  2. import 'package:clean/base/base_controller.dart';
  3. import 'package:clean/data/consts/constants.dart';
  4. import 'package:clean/dialog/privacy_dialog.dart';
  5. import 'package:clean/main.dart';
  6. import 'package:clean/module/main/main_view.dart';
  7. import 'package:clean/module/splash/intro/intro_view.dart';
  8. import 'package:flutter/Material.dart';
  9. import 'package:get/get.dart';
  10. import 'package:apple_pay/apple_pay.dart';
  11. import '../../data/bean/payment_way.dart';
  12. import '../../data/bean/store_item.dart';
  13. import '../../data/consts/event_report_id.dart';
  14. import '../../data/repositories/store_repository.dart';
  15. import '../../dialog/loading_dialog.dart';
  16. import '../../handler/event_handler.dart';
  17. import '../../handler/photo_scan_handler.dart';
  18. class SplashController extends BaseController {
  19. Animation<double>? animation;
  20. @override
  21. void onInit() {
  22. super.onInit();
  23. }
  24. @override
  25. void onReady() {
  26. print('SplashController onReady');
  27. super.onReady();
  28. final isAgreePrivacy = isAgreePrivacyPolicy();
  29. if (isAgreePrivacy) {
  30. onAgreePrivacy();
  31. EventHandler.report(EventId.event_01000);
  32. } else {
  33. Future.delayed(const Duration(seconds: 2), () {
  34. privacyDialog(
  35. onAgree: () {
  36. setPrivacyPolicy(true);
  37. onAgreePrivacy();
  38. EventHandler.report(EventId.event_01002);
  39. },
  40. onDisagree: () {
  41. setPrivacyPolicy(false);
  42. exit(0);
  43. },
  44. );
  45. });
  46. }
  47. }
  48. // 已经同意隐私
  49. void onAgreePrivacy() async {
  50. await initAfterGrant();
  51. initStoreIndexData();
  52. PhotoScanHandler().getStorageInfo();
  53. PhotoScanHandler().handleAllPhotos();
  54. Future.delayed(const Duration(seconds: 2), () {
  55. if (isFirstIntro()) {
  56. IntroPage.start();
  57. } else {
  58. MainTabPage.start();
  59. }
  60. });
  61. }
  62. void initStoreIndexData() {
  63. // LoadingDialog.showLoading();
  64. storeRepository.storeIndex().then((indexData) async {
  65. final StoreItem? storeItem = indexData.items.firstWhereOrNull((element) => element.freeTrialName != null);
  66. if (storeItem != null) {
  67. var userCanStartFreeTrial = await ApplePay().check(storeItem.appleGoodsId);
  68. setUserCanStartFreeTrial(userCanStartFreeTrial);
  69. }
  70. // LoadingDialog.hide();
  71. });
  72. }
  73. @override
  74. void onClose() {
  75. print('SplashController onClose');
  76. super.onClose();
  77. }
  78. }