2020-10-07 02:33:06 +06:30
|
|
|
import 'package:fcs/localization/app_translations_delegate.dart';
|
|
|
|
|
import 'package:fcs/localization/transalation.dart';
|
2020-10-18 02:38:46 +06:30
|
|
|
import 'package:fcs/pages/carton/model/carton_model.dart';
|
2020-12-03 08:26:58 +06:30
|
|
|
import 'package:fcs/pages/carton_size/model/carton_size_model.dart';
|
2020-10-07 02:33:06 +06:30
|
|
|
import 'package:fcs/pages/chat/model/message_model.dart';
|
|
|
|
|
import 'package:fcs/pages/contact/model/contact_model.dart';
|
|
|
|
|
import 'package:fcs/pages/customer/model/customer_model.dart';
|
2020-10-08 15:54:43 +06:30
|
|
|
import 'package:fcs/pages/delivery_address/model/delivery_address_model.dart';
|
2020-10-07 02:33:06 +06:30
|
|
|
import 'package:fcs/pages/discount/model/discount_model.dart';
|
|
|
|
|
import 'package:fcs/pages/faq/model/faq_model.dart';
|
|
|
|
|
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
|
|
|
|
|
import 'package:fcs/pages/main/home_page.dart';
|
|
|
|
|
import 'package:fcs/pages/main/initial_language_selection.dart';
|
|
|
|
|
import 'package:fcs/pages/invoice/model/invoice_model.dart';
|
|
|
|
|
import 'package:fcs/pages/market/model/market_model.dart';
|
|
|
|
|
import 'package:fcs/pages/main/model/language_model.dart';
|
|
|
|
|
import 'package:fcs/pages/main/model/main_model.dart';
|
|
|
|
|
import 'package:fcs/pages/package/model/package_model.dart';
|
|
|
|
|
import 'package:fcs/pages/payment_methods/model/payment_method_model.dart';
|
2021-10-09 17:08:28 +06:30
|
|
|
import 'package:fcs/pages/pickup/model/pickup_model.dart';
|
2020-12-03 08:26:58 +06:30
|
|
|
import 'package:fcs/pages/processing/model/processing_model.dart';
|
2020-10-07 02:33:06 +06:30
|
|
|
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
|
2020-10-07 14:42:07 +06:30
|
|
|
import 'package:fcs/pages/shipment/model/shipment_model.dart';
|
2020-10-07 02:33:06 +06:30
|
|
|
import 'package:fcs/pages/main/splash_page.dart';
|
|
|
|
|
import 'package:fcs/pages/staff/model/staff_model.dart';
|
|
|
|
|
import 'package:fcs/pages/term/model/term_model.dart';
|
|
|
|
|
import 'package:fcs/pages/main/welcome_page.dart';
|
2024-01-25 17:40:35 +06:30
|
|
|
import 'package:flutter/material.dart';
|
2020-08-30 21:26:37 +06:30
|
|
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
2020-05-29 07:45:27 +06:30
|
|
|
|
2025-01-14 17:10:10 +06:30
|
|
|
import 'helpers/theme.dart';
|
2024-02-02 18:00:51 +06:30
|
|
|
import 'pages/carton/model/carton_selection_model.dart';
|
2024-02-07 17:26:29 +06:30
|
|
|
import 'pages/carton/model/consignee_selection_model.dart';
|
2024-02-05 17:49:12 +06:30
|
|
|
import 'pages/carton/model/package_selection_model.dart';
|
2024-02-07 17:26:29 +06:30
|
|
|
import 'pages/carton/model/sender_selection_model.dart';
|
2024-03-02 18:15:05 +06:30
|
|
|
import 'pages/carton/model/shipment_selection_model.dart';
|
2020-10-16 17:57:58 +06:30
|
|
|
import 'pages/delivery/model/delivery_model.dart';
|
2024-10-04 13:55:59 +06:30
|
|
|
import 'pages/signin/pinlogin_page.dart';
|
2020-10-16 17:57:58 +06:30
|
|
|
|
2020-05-29 07:45:27 +06:30
|
|
|
class App extends StatefulWidget {
|
2024-01-23 15:15:07 +06:30
|
|
|
final String title;
|
|
|
|
|
|
|
|
|
|
const App({super.key, required this.title});
|
2024-01-24 16:54:08 +06:30
|
|
|
@override
|
2020-05-29 07:45:27 +06:30
|
|
|
_AppState createState() => _AppState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _AppState extends State<App> {
|
2020-10-07 02:33:06 +06:30
|
|
|
final MainModel mainModel = new MainModel();
|
2020-09-12 03:34:52 +06:30
|
|
|
final ContactModel contactModel = new ContactModel();
|
|
|
|
|
final TermModel termModel = new TermModel();
|
2020-09-11 16:14:36 +06:30
|
|
|
final FAQModel faqModel = new FAQModel();
|
2020-09-18 04:04:21 +06:30
|
|
|
final PaymentMethodModel paymentMethodModel = new PaymentMethodModel();
|
2020-10-07 02:33:06 +06:30
|
|
|
final FcsShipmentModel fcsShipmentModel = new FcsShipmentModel();
|
2020-05-29 07:45:27 +06:30
|
|
|
final LanguageModel lanuguageModel = new LanguageModel();
|
2020-10-07 14:42:07 +06:30
|
|
|
final ShipmentModel shipmentModel = new ShipmentModel();
|
2020-05-29 15:54:26 +06:30
|
|
|
final ShipmentRateModel shipmentRateModel = new ShipmentRateModel();
|
2020-10-18 02:38:46 +06:30
|
|
|
final CartonModel boxModel = new CartonModel();
|
2020-06-24 16:06:40 +06:30
|
|
|
final MessageModel messageModel = new MessageModel();
|
2020-06-02 14:56:51 +06:30
|
|
|
final InvoiceModel invoiceModel = new InvoiceModel();
|
2020-06-02 14:52:31 +06:30
|
|
|
final CustomerModel customerModel = new CustomerModel();
|
2020-06-26 16:04:40 +06:30
|
|
|
final DiscountModel discountModel = new DiscountModel();
|
2020-09-13 21:49:39 +06:30
|
|
|
final StaffModel staffModel = new StaffModel();
|
2020-10-08 15:54:43 +06:30
|
|
|
final DeliveryAddressModel deliveryAddressModel = new DeliveryAddressModel();
|
2020-09-15 07:13:41 +06:30
|
|
|
final PackageModel packageModel = new PackageModel();
|
2020-09-16 02:29:50 +06:30
|
|
|
final MarketModel marketModel = new MarketModel();
|
2020-10-16 17:57:58 +06:30
|
|
|
final DeliveryModel deliveryModel = new DeliveryModel();
|
2020-12-03 08:26:58 +06:30
|
|
|
final CartonSizeModel cartonSizeModel = new CartonSizeModel();
|
|
|
|
|
final ProcessingModel processingModel = new ProcessingModel();
|
2021-10-09 17:08:28 +06:30
|
|
|
final PickupModel pickupModel = new PickupModel();
|
2024-02-02 18:00:51 +06:30
|
|
|
final CartonSelectionModel cartonSelectionModel = new CartonSelectionModel();
|
2024-02-07 17:26:29 +06:30
|
|
|
final PackageSelectionModel packageSelectionModel =
|
|
|
|
|
new PackageSelectionModel();
|
|
|
|
|
final ConsigneeSelectionModel consigneeSelectionModel =
|
|
|
|
|
new ConsigneeSelectionModel();
|
|
|
|
|
final SenderSelectionModel senderSelectionModel = new SenderSelectionModel();
|
2024-03-02 18:15:05 +06:30
|
|
|
final ShipmentSelectionModel shipmentSelectionModel =
|
|
|
|
|
new ShipmentSelectionModel();
|
2020-05-29 07:45:27 +06:30
|
|
|
|
2021-08-25 19:00:04 +06:30
|
|
|
late AppTranslationsDelegate _newLocaleDelegate;
|
2020-05-29 07:45:27 +06:30
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
2020-10-07 02:33:06 +06:30
|
|
|
mainModel
|
2020-09-15 07:13:41 +06:30
|
|
|
..addModel(customerModel)
|
|
|
|
|
..addModel(staffModel)
|
2020-10-08 15:54:43 +06:30
|
|
|
..addModel(deliveryAddressModel)
|
2020-09-16 02:29:50 +06:30
|
|
|
..addModel(packageModel)
|
2020-09-20 05:34:49 +06:30
|
|
|
..addModel(messageModel)
|
2020-10-07 02:33:06 +06:30
|
|
|
..addModel(fcsShipmentModel)
|
|
|
|
|
..addModel(discountModel)
|
|
|
|
|
..addModel(shipmentRateModel)
|
|
|
|
|
..addModel(boxModel)
|
2020-10-07 14:42:07 +06:30
|
|
|
..addModel(shipmentModel)
|
2020-10-07 02:33:06 +06:30
|
|
|
..addModel(invoiceModel)
|
2020-10-16 17:57:58 +06:30
|
|
|
..addModel(marketModel)
|
2020-12-03 08:26:58 +06:30
|
|
|
..addModel(deliveryModel)
|
|
|
|
|
..addModel(cartonSizeModel)
|
2021-10-09 17:08:28 +06:30
|
|
|
..addModel(processingModel)
|
2024-02-02 18:00:51 +06:30
|
|
|
..addModel(pickupModel)
|
2024-02-05 17:49:12 +06:30
|
|
|
..addModel(cartonSelectionModel)
|
2024-02-07 17:26:29 +06:30
|
|
|
..addModel(packageSelectionModel)
|
|
|
|
|
..addModel(consigneeSelectionModel)
|
2024-03-02 18:15:05 +06:30
|
|
|
..addModel(senderSelectionModel)
|
|
|
|
|
..addModel(shipmentSelectionModel);
|
2020-09-13 21:49:39 +06:30
|
|
|
|
2021-08-25 19:00:04 +06:30
|
|
|
_newLocaleDelegate = AppTranslationsDelegate(
|
|
|
|
|
newLocale: Translation().supportedLocales().first);
|
2020-05-29 07:45:27 +06:30
|
|
|
Translation().onLocaleChanged = onLocaleChange;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void onLocaleChange(Locale locale) {
|
|
|
|
|
setState(() {
|
|
|
|
|
_newLocaleDelegate = AppTranslationsDelegate(newLocale: locale);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, WidgetBuilder> route(BuildContext context) {
|
|
|
|
|
final routes = <String, WidgetBuilder>{
|
|
|
|
|
'/': (_) => SplashScreen(),
|
2020-08-30 21:26:37 +06:30
|
|
|
'/welcome': (_) => WelcomePage(),
|
|
|
|
|
'/home': (_) => HomePage(),
|
2020-09-12 03:34:52 +06:30
|
|
|
'/language_selection': (context) => InitialLanguageSelectionPage(),
|
2024-10-04 13:55:59 +06:30
|
|
|
'/pin_login': (_) => PinLoginPage()
|
2020-05-29 07:45:27 +06:30
|
|
|
};
|
|
|
|
|
return routes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return MultiProvider(
|
2020-09-06 02:36:57 +06:30
|
|
|
providers: [
|
|
|
|
|
ChangeNotifierProvider.value(value: mainModel),
|
2020-09-13 21:49:39 +06:30
|
|
|
ChangeNotifierProvider.value(value: staffModel),
|
2020-09-06 02:36:57 +06:30
|
|
|
ChangeNotifierProvider.value(value: lanuguageModel),
|
2020-10-07 14:42:07 +06:30
|
|
|
ChangeNotifierProvider.value(value: shipmentModel),
|
2020-09-06 02:36:57 +06:30
|
|
|
ChangeNotifierProvider.value(value: shipmentRateModel),
|
2020-10-08 15:54:43 +06:30
|
|
|
ChangeNotifierProvider.value(value: deliveryAddressModel),
|
2020-09-06 02:36:57 +06:30
|
|
|
ChangeNotifierProvider.value(value: packageModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: boxModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: messageModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: invoiceModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: customerModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: discountModel),
|
2020-09-07 16:05:28 +06:30
|
|
|
ChangeNotifierProvider.value(value: contactModel),
|
2020-09-12 03:34:52 +06:30
|
|
|
ChangeNotifierProvider.value(value: termModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: faqModel),
|
2020-09-18 04:04:21 +06:30
|
|
|
ChangeNotifierProvider.value(value: paymentMethodModel),
|
2020-09-16 02:29:50 +06:30
|
|
|
ChangeNotifierProvider.value(value: marketModel),
|
2020-10-07 02:33:06 +06:30
|
|
|
ChangeNotifierProvider.value(value: fcsShipmentModel),
|
2020-10-16 17:57:58 +06:30
|
|
|
ChangeNotifierProvider.value(value: deliveryModel),
|
2020-12-03 08:26:58 +06:30
|
|
|
ChangeNotifierProvider.value(value: cartonSizeModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: processingModel),
|
2021-10-09 17:08:28 +06:30
|
|
|
ChangeNotifierProvider.value(value: pickupModel),
|
2024-02-02 18:00:51 +06:30
|
|
|
ChangeNotifierProvider.value(value: cartonSelectionModel),
|
2024-02-05 17:49:12 +06:30
|
|
|
ChangeNotifierProvider.value(value: packageSelectionModel),
|
2024-02-07 17:26:29 +06:30
|
|
|
ChangeNotifierProvider.value(value: consigneeSelectionModel),
|
|
|
|
|
ChangeNotifierProvider.value(value: senderSelectionModel),
|
2024-03-02 18:15:05 +06:30
|
|
|
ChangeNotifierProvider.value(value: shipmentSelectionModel),
|
2020-09-06 02:36:57 +06:30
|
|
|
],
|
2020-09-07 00:47:02 +06:30
|
|
|
child: Consumer<LanguageModel>(
|
|
|
|
|
builder: (context, value, child) {
|
2024-01-25 17:40:35 +06:30
|
|
|
return MaterialApp(
|
2020-09-07 00:47:02 +06:30
|
|
|
debugShowCheckedModeBanner: false,
|
2024-01-25 17:40:35 +06:30
|
|
|
theme: ThemeData(
|
|
|
|
|
// useMaterial3: false,
|
2025-01-14 17:10:10 +06:30
|
|
|
textSelectionTheme:
|
|
|
|
|
const TextSelectionThemeData(cursorColor: primaryColor),
|
2024-01-25 17:40:35 +06:30
|
|
|
dividerTheme: DividerThemeData(color: Colors.grey.shade200),
|
|
|
|
|
colorScheme: ColorScheme.light(primary: Colors.white),
|
|
|
|
|
dialogTheme: DialogTheme(
|
|
|
|
|
backgroundColor: Colors.white,
|
|
|
|
|
shape: RoundedRectangleBorder(
|
|
|
|
|
borderRadius: BorderRadius.circular(10))),
|
|
|
|
|
),
|
2024-01-23 15:15:07 +06:30
|
|
|
title: widget.title,
|
2020-09-07 00:47:02 +06:30
|
|
|
routes: route(context),
|
|
|
|
|
localizationsDelegates: [
|
|
|
|
|
_newLocaleDelegate,
|
|
|
|
|
GlobalMaterialLocalizations.delegate,
|
|
|
|
|
GlobalWidgetsLocalizations.delegate,
|
|
|
|
|
],
|
|
|
|
|
supportedLocales: Translation().supportedLocales());
|
|
|
|
|
},
|
|
|
|
|
));
|
2020-05-29 07:45:27 +06:30
|
|
|
}
|
|
|
|
|
}
|