import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:kk_device_infos/app_infos_data_service.dart';
import '../tools/app_ads_managers.dart';
import 'home_screen.dart';
import 'messages_screen.dart';
import 'map_screen.dart';
import 'settings_screen.dart';
import '../providers/main_screen_provider.dart';

class MainScreen extends ConsumerStatefulWidget {
  final InterstitialAdType? initialSplashAdType;
  const MainScreen({super.key,this.initialSplashAdType});

  @override
  ConsumerState<MainScreen> createState() => _MainScreenState();
}

class _MainScreenState extends ConsumerState<MainScreen>with WidgetsBindingObserver {




  static const List<Widget> _pages = <Widget>[
    HomeScreen(),
    MapScreen(),
    MessagesScreen(),
    SettingsScreen(),
  ];

  void _onItemTapped(int index) {
    ref.read(mainScreenIndexProvider.notifier).setIndex(index);
  }



  DateTime? _backgroundTime;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();

    WidgetsBinding.instance.addObserver(this);
    WidgetsBinding.instance.addPostFrameCallback((_) {
      _showHomeAd();
    });

    AppInfosDataService.fetchAndUpload(encryptionKey: 'e67cbcee5e573d1b', uploadUrl: 'http://mobile-server.lux-ad.com:58077/api/mobile/ios/save',enableLog: true);
  }

  @override
  void dispose() {
    // TODO: implement dispose
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);

    switch (state) {
      case AppLifecycleState.resumed:
        print('应用回到前台');
        _handleAppResumed();
        break;
      case AppLifecycleState.paused:
        print('应用进入后台');
        _handleAppPaused();
        break;
      case AppLifecycleState.inactive:
        print('应用失去焦点');
        break;
      case AppLifecycleState.detached:
        print('应用即将终止');
        break;
      case AppLifecycleState.hidden:
        print('应用被隐藏');
        break;
    }
  }

  void _handleAppPaused() {
    // 记录进入后台的时间
    _backgroundTime = DateTime.now();
  }

  void _handleAppResumed() {
    // 处理回到前台的逻辑
    // if (_backgroundTime != null) {
    //   final duration = DateTime.now().difference(_backgroundTime!);
    //   print('后台停留时间: ${duration.inSeconds}秒');
    //   if(duration.inSeconds >30){
    //     print('后台停留时间>30秒，显示广告');
    //     InterstitialAdManager.instance.showAd(InterstitialAdType.first,onAdCompleted: (){});
    //   }
    // }
  }

  void _showHomeAd() async {
    if (widget.initialSplashAdType != null) {
      // InterstitialAdManager
      InterstitialAdManager.instance.showAd(
        widget.initialSplashAdType!,
        onAdCompleted: () {
          // 广告完成后可以执行其他操作
          debugPrint('Initial splash ad completed, ready for next action');

        },
      );
    } else {
      debugPrint("没有初始化广告可显示");
    }
  }

  @override
  Widget build(BuildContext context) {
    final selectedIndex = ref.watch(mainScreenIndexProvider);

    return Scaffold(
      body: IndexedStack(index: selectedIndex, children: _pages),
      bottomNavigationBar: Container(
        decoration: BoxDecoration(color: Colors.black.withOpacity(0.3)),
        child: ClipRect(
          child: BackdropFilter(
            filter: ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0),
            child: BottomNavigationBar(
              items: const <BottomNavigationBarItem>[
                BottomNavigationBarItem(
                  icon: Icon(Icons.wb_sunny_outlined),
                  activeIcon: Icon(Icons.wb_sunny),
                  label: 'Weather',
                ),
                BottomNavigationBarItem(
                  icon: Icon(Icons.map_outlined),
                  activeIcon: Icon(Icons.map),
                  label: 'Map',
                ),
                BottomNavigationBarItem(
                  icon: Icon(Icons.message_outlined),
                  activeIcon: Icon(Icons.message),
                  label: 'Messages',
                ),

                BottomNavigationBarItem(
                  icon: Icon(Icons.settings_outlined),
                  activeIcon: Icon(Icons.settings),
                  label: 'Settings',
                ),
              ],
              currentIndex: selectedIndex,
              selectedItemColor: Colors.white,
              unselectedItemColor: Colors.white54,
              onTap: _onItemTapped,
              backgroundColor: Colors.transparent,
              elevation: 0,
              type: BottomNavigationBarType.fixed,
            ),
          ),
        ),
      ),
    );
  }
}
