splash_controller.dart 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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.handleAllPhotos();
  53. Future.delayed(const Duration(seconds: 2), () {
  54. if (isFirstIntro()) {
  55. IntroPage.start();
  56. } else {
  57. MainTabPage.start();
  58. }
  59. });
  60. }
  61. void initStoreIndexData() {
  62. // LoadingDialog.showLoading();
  63. final List<StoreItem> storeItems = <StoreItem>[];
  64. storeRepository.storeIndex().then((indexData) async {
  65. storeItems.addAll(indexData.items);
  66. var freeAppleId = "";
  67. for (var item in storeItems) {
  68. if (item.freeTrialName != null) {
  69. freeAppleId = item.appleGoodsId;
  70. }
  71. }
  72. var isFree = await ApplePay().check(freeAppleId);
  73. setGoodsFree(isFree);
  74. // LoadingDialog.hide();
  75. });
  76. }
  77. @override
  78. void onClose() {
  79. print('SplashController onClose');
  80. super.onClose();
  81. }
  82. }