|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
|
|
|
import 'package:mohem_flutter_app/config/app_provider.dart';
|
|
|
|
import 'package:mohem_flutter_app/generated/codegen_loader.g.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/post_params_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/theme/app_theme.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:sizer/sizer.dart';
|
|
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
|
|
import 'config/routes.dart';
|
|
|
|
import 'package:logger/logger.dart';
|
|
|
|
|
|
|
|
|
|
|
|
var logger = Logger(
|
|
|
|
// filter: null, // Use the default LogFilter (-> only log in debug mode)
|
|
|
|
printer: PrettyPrinter(lineLength: 0), // Use the PrettyPrinter to format and print log
|
|
|
|
// output: null, // U
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> main() async {
|
|
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
await EasyLocalization.ensureInitialized();
|
|
|
|
await Firebase.initializeApp();
|
|
|
|
runApp(
|
|
|
|
EasyLocalization(
|
|
|
|
supportedLocales: const [
|
|
|
|
Locale('en', 'US'),
|
|
|
|
Locale('ar', 'SA'),
|
|
|
|
],
|
|
|
|
path: 'assets/langs',
|
|
|
|
assetLoader: CodegenLoader(),
|
|
|
|
child: MultiProvider(
|
|
|
|
providers: [
|
|
|
|
ChangeNotifierProvider(create: (_) => DashboardProviderModel()),
|
|
|
|
],
|
|
|
|
child: MyApp(),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
// todo terminal command to genertate translation files
|
|
|
|
// flutter pub run easy_localization:generate --source-dir ./assets/langs
|
|
|
|
// todo terminal command to genertate translation keys
|
|
|
|
// flutter pub run easy_localization:generate --source-dir ./assets/langs -f keys -o locale_keys.g.dart
|
|
|
|
// command to generate languages data from json
|
|
|
|
|
|
|
|
class MyApp extends StatelessWidget {
|
|
|
|
MyApp() {
|
|
|
|
// AppDependencies.addDependencies();
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return AppProvider(
|
|
|
|
child: Sizer(
|
|
|
|
builder: (context, orientation, deviceType) {
|
|
|
|
AppState().setPostParamsModel(
|
|
|
|
PostParamsModel(languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2, channel: 31, versionID: 3.2, mobileType: Platform.isAndroid ? "android" : "ios"),
|
|
|
|
);
|
|
|
|
return MaterialApp(
|
|
|
|
theme: AppTheme.getTheme(EasyLocalization.of(context)?.locale.languageCode == "ar"),
|
|
|
|
debugShowCheckedModeBanner: false,
|
|
|
|
localizationsDelegates: context.localizationDelegates,
|
|
|
|
supportedLocales: context.supportedLocales,
|
|
|
|
locale: context.locale,
|
|
|
|
initialRoute: AppRoutes.initialRoute,
|
|
|
|
routes: AppRoutes.routes,
|
|
|
|
);
|
|
|
|
},
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|