import 'dart:async'; import 'dart:io'; import 'package:flutter/services.dart'; import 'package:get/get_utils/src/platform/platform.dart'; import 'package:injectable/injectable.dart'; import 'package:keyboard/module/new_user/new_user_page.dart'; import '../../base/base_controller.dart'; import '../../data/consts/constants.dart'; import '../../dialog/agreement_again_dialog.dart'; import '../../dialog/agreement_dialog.dart'; import '../../utils/privacy_compliance.dart'; import '../main/main_page.dart'; @injectable class SplashController extends BaseController { final splashDelayedTime = 2; @override void onReady() { final isAgreePrivacy = PrivacyCompliance.isAgreePrivacyPolicy(); if (isAgreePrivacy) { isAgreePrivacyNextStep(); } else { AgreementDialog.show(cancelClick: () { AgreementAgainDialog.show( cancelClick: () { exitApp(); }, sureClick: () { _agreePrivacy(); isAgreePrivacyNextStep(); }); }, sureClick: () { _agreePrivacy(); isAgreePrivacyNextStep(); }); } } void isAgreePrivacyNextStep() { _goMain(Duration(seconds: splashDelayedTime)); } void _goMain(Duration delayTime, {Map? arguments}) { Timer(delayTime, () { if (isFirstIntro()) { NewUserPage.start(); }else{ MainPage.start(arguments: arguments); } }); } void exitApp() { if (GetPlatform.isAndroid) { SystemNavigator.pop(); } else { exit(0); } } void _agreePrivacy() async { PrivacyCompliance.setPrivacyPolicy(true); } }