splash_controller.dart 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. final List<StoreItem> storeItems = <StoreItem>[];
  65. storeRepository.storeIndex().then((indexData) async {
  66. storeItems.addAll(indexData.items);
  67. var freeAppleId = "";
  68. for (var item in storeItems) {
  69. if (item.freeTrialName != null) {
  70. freeAppleId = item.appleGoodsId;
  71. }
  72. }
  73. var isFree = await ApplePay().check(freeAppleId);
  74. setGoodsFree(isFree);
  75. // LoadingDialog.hide();
  76. });
  77. }
  78. @override
  79. void onClose() {
  80. print('SplashController onClose');
  81. super.onClose();
  82. }
  83. }