import 'package:flutter/material.dart'; import 'package:aman_kassa_flutter/views/check/image_show_container.dart'; import 'package:aman_kassa_flutter/views/home/home_view.dart'; import 'package:aman_kassa_flutter/views/history/history_view.dart'; import 'package:aman_kassa_flutter/views/info_kkm/info_kkm_view.dart'; import 'package:aman_kassa_flutter/views/payment/payment_view.dart'; import 'package:aman_kassa_flutter/views/qr_view/qr_view.dart'; import 'package:aman_kassa_flutter/views/settings/printer/views/PrinterSelect.dart'; import 'package:aman_kassa_flutter/views/settings/settings_view.dart'; import 'package:aman_kassa_flutter/views/settings/printer/views/PrinterEncoding.dart'; import 'package:aman_kassa_flutter/views/settings/printer/views/PrinterPaperSize.dart'; import 'package:aman_kassa_flutter/views/settings/setting_printer_view.dart'; import 'package:aman_kassa_flutter/views/login/login_view.dart'; import './route_names.dart'; Route generateRoute(RouteSettings settings) { switch (settings.name) { case LoginViewRoute: LoginModel model = settings.arguments as LoginModel; return _getPageRoute( routeName: settings.name, viewToShow: LoginView(loginModel: model,), ); case HomeViewRoute: return _getPageRoute( routeName: settings.name, viewToShow: HomeView(), ); case PaymentViewRoute: PaymentModel model = settings.arguments as PaymentModel; return _getPageRoute( routeName: settings.name, viewToShow: PaymentView(model: model), ); case HistoryViewRoute: return _getPageRoute( routeName: settings.name, viewToShow: HistoryView(), ); case InfoKkmViewRoute: return _getPageRoute( routeName: settings.name, viewToShow: InfoKkmView(), ); case SettingsViewRoute: return _getPageRoute( routeName: settings.name, viewToShow: SettingView(), ); case QrViewRoute: ImageShowModel data = settings.arguments as ImageShowModel; return _getPageRoute( routeName: settings.name, viewToShow: QrView(data), ); case ImageShowRoute: ImageShowModel data = settings.arguments as ImageShowModel; //return SlideRightRoute(widget: ImageShowContainer(data)); return _getPageRoute( routeName: settings.name, viewToShow: ImageShowContainer(data), ); case SettingsPrinterRoute: return _getPageRoute( routeName: settings.name, viewToShow: SettingPrinterView(), ); case SettingsPrinterBTRoute: return _getPageRoute( routeName: settings.name, viewToShow: PrinterSelectView(), ); case SettingsPrinterEncodingRoute: return _getPageRoute( routeName: settings.name, viewToShow: PrinterEncodingView(), ); case SettingsPrinterPaperRoute: return _getPageRoute( routeName: settings.name, viewToShow: PrinterPaperView(), ); default: return MaterialPageRoute( builder: (_) => Scaffold( body: Center( child: Text('No route defined for ${settings.name}')), )); } } PageRoute _getPageRoute({String routeName, Widget viewToShow}) { return MaterialPageRoute( settings: RouteSettings( name: routeName, ), builder: (_) => viewToShow); } class SlideRightRoute extends PageRouteBuilder { final Widget widget; SlideRightRoute({this.widget}) : super( pageBuilder: (BuildContext context, Animation animation, Animation secondaryAnimation) { return widget; }, transitionsBuilder: (BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { return new SlideTransition( position: new Tween( begin: const Offset(1.0, 0.0), end: Offset.zero, ).animate(animation), child: child, ); }, ); }