// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:async';

import 'package:quiver/time.dart';

import 'android/android_sdk.dart';
import 'android/android_studio.dart';
import 'android/android_workflow.dart';
import 'artifacts.dart';
import 'asset.dart';
import 'base/build.dart';
import 'base/config.dart';
import 'base/context.dart';
import 'base/flags.dart';
import 'base/io.dart';
import 'base/logger.dart';
import 'base/os.dart';
import 'base/platform.dart';
import 'base/port_scanner.dart';
import 'base/utils.dart';
import 'cache.dart';
import 'compile.dart';
import 'devfs.dart';
import 'device.dart';
import 'doctor.dart';
import 'ios/cocoapods.dart';
import 'ios/ios_workflow.dart';
import 'ios/mac.dart';
import 'ios/simulators.dart';
import 'ios/xcodeproj.dart';
import 'run_hot.dart';
import 'usage.dart';
import 'version.dart';

Future<T> runInContext<T>(
  FutureOr<T> runner(), {
  Map<Type, dynamic> overrides,
}) async {
  return await context.run<T>(
    name: 'global fallbacks',
    body: runner,
    overrides: overrides,
    fallbacks: <Type, Generator>{
      AndroidSdk: AndroidSdk.locateAndroidSdk,
      AndroidStudio: AndroidStudio.latestValid,
      AndroidWorkflow: () => new AndroidWorkflow(),
      Artifacts: () => new CachedArtifacts(),
      AssetBundleFactory: () => AssetBundleFactory.defaultInstance,
      BotDetector: () => const BotDetector(),
      Cache: () => new Cache(),
      Clock: () => const Clock(),
      CocoaPods: () => const CocoaPods(),
      Config: () => new Config(),
      DevFSConfig: () => new DevFSConfig(),
      DeviceManager: () => new DeviceManager(),
      Doctor: () => new Doctor(),
      Flags: () => const EmptyFlags(),
      FlutterVersion: () => new FlutterVersion(const Clock()),
      GenSnapshot: () => const GenSnapshot(),
      HotRunnerConfig: () => new HotRunnerConfig(),
      IMobileDevice: () => const IMobileDevice(),
      IOSSimulatorUtils: () => new IOSSimulatorUtils(),
      IOSWorkflow: () => const IOSWorkflow(),
      KernelCompiler: () => const KernelCompiler(),
      Logger: () => platform.isWindows ? new WindowsStdoutLogger() : new StdoutLogger(),
      OperatingSystemUtils: () => new OperatingSystemUtils(),
      PortScanner: () => const HostPortScanner(),
      SimControl: () => new SimControl(),
      Stdio: () => const Stdio(),
      Usage: () => new Usage(),
      Xcode: () => new Xcode(),
      XcodeProjectInterpreter: () => new XcodeProjectInterpreter(),
    },
  );
}
