| // 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. |
| |
| // TODO(54566): Remove this file when issue is resolved. |
| |
| import 'deferred_components_config.dart'; |
| import 'plugin_project.dart'; |
| |
| /// Project to test the deprecated `settings.gradle` (PluginEach) that apps were |
| /// created with until Flutter v1.22.0. |
| /// It uses the `.flutter-plugins` file to load EACH plugin. |
| class PluginEachSettingsGradleProject extends PluginProject { |
| @override |
| DeferredComponentsConfig get deferredComponents => |
| PluginEachSettingsGradleDeferredComponentsConfig(); |
| } |
| |
| class PluginEachSettingsGradleDeferredComponentsConfig |
| extends PluginDeferredComponentsConfig { |
| @override |
| String get androidSettings => r''' |
| include ':app' |
| def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() |
| def plugins = new Properties() |
| def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') |
| if (pluginsFile.exists()) { |
| pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } |
| } |
| plugins.each { name, path -> |
| def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() |
| include ":$name" |
| project(":$name").projectDir = pluginDirectory |
| } |
| '''; |
| } |
| |
| /// Project to test the deprecated `settings.gradle` (PluginEach) that apps were |
| /// created with until Flutter v1.22.0. |
| /// It uses the `.flutter-plugins` file to get EACH plugin. |
| /// It is compromised by removing the 'include' statement of the plugins. |
| class PluginCompromisedEachSettingsGradleProject extends PluginProject { |
| @override |
| DeferredComponentsConfig get deferredComponents => |
| PluginCompromisedEachSettingsGradleDeferredComponentsConfig(); |
| } |
| |
| class PluginCompromisedEachSettingsGradleDeferredComponentsConfig |
| extends PluginDeferredComponentsConfig { |
| @override |
| String get androidSettings => r''' |
| include ':app' |
| def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() |
| def plugins = new Properties() |
| def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') |
| if (pluginsFile.exists()) { |
| pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } |
| } |
| '''; |
| } |