import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:get/get.dart';
import 'package:getx_scaffold/common/components/index.dart';
import 'package:getx_scaffold/common/widgets/rich_text_x.dart';
import 'package:ln_jq_app/pages/home/view.dart';
import 'package:ln_jq_app/pages/login/view.dart';
import 'package:ln_jq_app/storage_service.dart';

import '../common/webview/view.dart';

class WelcomeController extends GetxController {
  @override
  void onReady() {
    super.onReady();
    // 移除原生闪屏页（如果有的话）
    FlutterNativeSplash.remove();

    if (Platform.isAndroid) {
      if (StorageService.to.isPrivacyAgreed) {
        _startTimer();
      } else {
        showPrivacyDialog();
      }
    } else if (Platform.isIOS) {
      _startTimer();
    }
  }

  void showPrivacyDialog() {
    DialogX.to.showConfirmDialog(
      title: "个人信息保护提示",
      content: _buildDialogContent(),
      confirmText: '同意',
      cancelText: '不同意',
      onConfirm: () async {
        await StorageService.to.savePrivacyAgreed(true);
        Get.offAll(() => const HomePage());
      },
      onCancel: () {
        DialogX.to.showConfirmDialog(
          title: "温馨提示",
          content: RichTextX(
            children: [
              TextSpanItem('如果您不同意'),
              TextSpanItem(
                '《隐私协议》',
                onTap: () => openPage("隐私政策", "https://lnh2e.com/privacy_agreement.html"),
              ),
              TextSpanItem('和'),
              TextSpanItem(
                '《用户政策》',
                onTap: () => openPage("用户协议", "https://lnh2e.com/user_agreement.html"),
              ),
              TextSpanItem(
                '，很遗憾我们将无法为您提供服务。您需要同意以上协议后，才能使用本应用。\n\n我们将严格按照相关法律法规要求，坚决保护您的个人隐私和信息安全。',
              ),
              TextSpanItem('\n点击“同意”按钮，表示您已知情并同意以上协议。'),
            ],
          ),
          confirmText: '同意并继续',
          cancelText: '不同意',
          onConfirm: () async {
            await StorageService.to.savePrivacyAgreed(true);
            Get.offAll(() => const HomePage());
          },
          onCancel: () {
            SystemNavigator.pop();
          },
        );
      },
    );
  }

  Widget _buildDialogContent() {
    return RichTextX(
      children: [
        TextSpanItem('欢迎使用小羚羚！\n我们将通过'),
        TextSpanItem(
          '《隐私协议》',
          onTap: () => openPage("隐私政策", "https://lnh2e.com/privacy_agreement.html"),
        ),
        TextSpanItem('和'),
        TextSpanItem(
          '《用户政策》',
          onTap: () => openPage("用户协议", "https://lnh2e.com/user_agreement.html"),
        ),
        TextSpanItem(
          '，帮助您了解我们为您提供的服务、我们如何处理个人信息以及您享有的权利。我们会严格按照相关法律法规要求，采取各种安全措施来保护您的个人信息。',
        ),
        TextSpanItem('\n点击“同意”按钮，表示您已知情并同意以上协议。'),
      ],
    );
  }

  void openPage(String title, String url) {
    Get.to(() => const WebViewPage(), arguments: {'title': title, 'url': url});
  }

  void _startTimer() {
    // 1.5秒后执行跳转逻辑
    Future.delayed(const Duration(milliseconds: 1500), () {
      Get.offAll(() => const HomePage());
    });
  }

  void _jumpToNextPage() {
    if (StorageService.to.isLoggedIn) {
      // 已登录，跳转到首页
      Get.offAll(() => const HomePage());
    } else {
      // 未登录，跳转到登录页
      Get.offAll(() => const LoginPage());
    }
  }
}
