import 'dart:async'; import 'package:fikoyt_finans/core/fikoyt.service.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; // import 'package:flutter_animator/flutter_animator.dart'; import 'package:get/get.dart'; import 'package:vrouter/vrouter.dart'; import 'package:flutter_animate/flutter_animate.dart'; import '../routes.dart'; import '../theme.dart'; import 'fiko_scroll_behaviour.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; class FikoApp extends StatelessWidget with WidgetsBindingObserver { // const FikoApp({super.key}); FikoApp({super.key}) { // WidgetsBinding.instance.addObserver(this); } // @override // void didChangeAppLifecycleState(AppLifecycleState state) { // super.didChangeAppLifecycleState(state); // if (state == AppLifecycleState.detached || state == AppLifecycleState.inactive) { // saveWindowSizeAndPosition(); // } // } // Future saveWindowSizeAndPosition() async { // if (!(Platform.isWindows || Platform.isLinux || Platform.isMacOS)) return; // final prefs = await SharedPreferences.getInstance(); // final window = appWindow; // prefs.setDouble('windowX', window.position.dx); // prefs.setDouble('windowY', window.position.dy); // prefs.setDouble('windowWidth', window.size.width); // prefs.setDouble('windowHeight', window.size.height); // } // This widget is the root of your application. @override Widget build(BuildContext context) { return VRouterScope( child: GetMaterialApp.router( title: 'FikoYT Mesaici', routerDelegate: VRouterDelegate( onSystemPop: (vRedirector) async { // vRedirector.stopRedirection(); if (kDebugMode) { print("${vRedirector.fromUrl}, ${vRedirector.toUrl}"); } // if (vRedirector.fromUrl == "/mesaici" || vRedirector.fromUrl == "/mesaici/ilk-ekran") { // return vRedirector.historyCanBack() ? vRedirector.historyBack() : vRedirector.pop(); // } return vRedirector.historyCanBack() ? vRedirector.historyBack() : vRedirector.systemPop(); }, onPop: (vRedirector) async { // vRedirector.stopRedirection(); if (kDebugMode) { print("${vRedirector.fromUrl}, ${vRedirector.toUrl}"); } // if (vRedirector.fromUrl == "/mesaici" || vRedirector.fromUrl == "/mesaici/ilk-ekran") { // return vRedirector.pop(); // } return vRedirector.historyCanBack() ? vRedirector.historyBack() : vRedirector.systemPop(); }, transitionDuration: const Duration(seconds: 1), reverseTransitionDuration: const Duration(seconds: 1), buildTransition: (animation, secondaryAnimation, child) { // return FadeTransition( // opacity: animation, // child: child.animate(effects: [ // // FadeEffect(duration: 500.ms), // SaturateEffect(delay: 1000.ms, duration: 500.ms, curve: Curves.easeIn), // BlurEffect( // duration: 600.ms, // begin: const Offset(3, 3), // end: const Offset(0, 0), // ), // ShimmerEffect(delay: 1000.ms, duration: 1000.ms, curve: Curves.easeIn), // ]), // ); return child.animate(effects: [ FadeEffect(duration: 500.ms), SaturateEffect(delay: 1000.ms, duration: 500.ms, curve: Curves.easeIn), BlurEffect( duration: 600.ms, begin: const Offset(3, 3), end: const Offset(0, 0), ), ShimmerEffect(delay: 1000.ms, duration: 1000.ms, curve: Curves.easeIn), ]); }, afterEnter: (context, from, to) { print(to); if (to != "/mesaici/ayarlar/satin-al") { Timer zaman = Timer.periodic( const Duration(seconds: 5), (timer) async { await FikoYTService.servisMesaici.servisSatinAl.lisansKontrol(); timer.cancel(); }, ); } }, navigatorKey: FikoYTService.navigatorKey, routes: routes, initialUrl: "/", ), routeInformationParser: VRouteInformationParser(), backButtonDispatcher: VBackButtonDispatcher(), // translations: Translate(), localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en'), Locale('tr'), ], locale: const Locale('tr', 'TR'), // supportedLocales: const [ Locale('tr', 'TR')], fallbackLocale: const Locale('tr', 'TR'), scrollBehavior: FikoScrollBehavior(), theme: FikoTheme.lightTheme, debugShowCheckedModeBanner: false, debugShowMaterialGrid: false, showSemanticsDebugger: false, // localizationsDelegates: const [ // GlobalMaterialLocalizations.delegate, // GlobalCupertinoLocalizations.delegate, // GlobalWidgetsLocalizations.delegate, // ], // supportedLocales: const [Locale('tr', 'TR')], ), ); } }