aman-kassa-flutter/lib/core/router.dart

123 lines
4.1 KiB
Dart

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<dynamic> 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<double> animation,
Animation<double> secondaryAnimation) {
return widget;
},
transitionsBuilder: (BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child) {
return new SlideTransition(
position: new Tween<Offset>(
begin: const Offset(1.0, 0.0),
end: Offset.zero,
).animate(animation),
child: child,
);
},
);
}