Untitled

 avatar
unknown
plain_text
a year ago
2.3 kB
4
Indexable
import 'dart:io';

import 'package:clean/core/constants/app_config.dart';
import 'package:clean/core/enums/api_key_enum.dart';
import 'package:clean/core/helpers/flavor_config.dart';
import 'package:clean/my_app.dart';
import 'package:clean/service_locator.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:easy_logger/src/enums.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:provider/provider.dart';
import 'package:clean/user_app/core/constants/providers.dart';
import 'package:rx_shared_preferences/rx_shared_preferences.dart';
import 'package:wakelock_plus/wakelock_plus.dart';

Future<void> main() async {
  initMain();
}

/*
flutter run -t lib/main_dev.dart  --flavor=dev
# Debug signing configuration + dev flavor
flutter run -t lib/main_dev.dart  --release --flavor=dev
flutter build appbundle -t lib/main_dev.dart  --flavor=dev
flutter build apk -t lib/main_dev.dart  --flavor=dev
*/
// setup possible environments for app

void initMain() async {
  WidgetsFlutterBinding.ensureInitialized();
  if (Platform.isAndroid) {
    await WakelockPlus.enable();
  }
  await EasyLocalization.ensureInitialized();
  debugInvertOversizedImages = false;
  await SystemChrome.setPreferredOrientations(
    <DeviceOrientation>[
      DeviceOrientation.portraitUp,
      DeviceOrientation.portraitDown,
      DeviceOrientation.landscapeLeft,
      DeviceOrientation.landscapeRight,
    ],
  );
  await dotenv.load(fileName: 'assets/.env');

  FlavorConfig devFlavorConfig =
      FlavorConfig(appName: 'Winners Enterprise Dev', flavor: 'dev');

  AppConfig.baseUrl = getApiKey(EnvEnum.dev);
  AppConfig.env = 'dev';
  setupServiceLocator();
  RxSharedPreferencesConfigs.logger = null;
  EasyLocalization.logger.enableBuildModes = <BuildMode>[];

  runApp(
    MultiProvider(
      providers: Providers.providersList,
      builder: (BuildContext context, Widget? child) => EasyLocalization(
        supportedLocales: <Locale>[const Locale('en')],
        path: 'assets/lang',
        fallbackLocale: const Locale('en'),
        child: MyApp(
          flavorConfig: devFlavorConfig,
        ),
      ),
    ),
  );
}
Editor is loading...
Leave a Comment