// Copyright 2014 The Flutter 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 'base/context.dart'; import 'base/file_system.dart'; import 'build_info.dart'; abstract class ApplicationPackageFactory { static ApplicationPackageFactory? get instance => context.get<ApplicationPackageFactory>(); /// Create an [ApplicationPackage] for the given platform. Future<ApplicationPackage> getPackageForPlatform( TargetPlatform platform, { BuildInfo buildInfo, File applicationBinary, }); } abstract class ApplicationPackage { ApplicationPackage({ required this.id }) : assert(id != null); /// Package ID from the Android Manifest or equivalent. final String id; String? get name; String? get displayName => name; File? get packagesFile => null; @override String toString() => displayName ?? id; }