// 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.

// This file is included from `<app>/android/settings.gradle`,
// so it can be versioned with the Flutter SDK.

import groovy.json.JsonSlurper

def flutterProjectRoot = rootProject.projectDir.parentFile

// Note: if this logic is changed, also change the logic in module_plugin_loader.gradle.
def pluginsFile = new File(flutterProjectRoot, '.flutter-plugins-dependencies')
if (!pluginsFile.exists()) {
  return
}

def object = new JsonSlurper().parseText(pluginsFile.text)
assert object instanceof Map
assert object.plugins instanceof Map
assert object.plugins.android instanceof List
// Includes the Flutter plugins that support the Android platform.
object.plugins.android.each { androidPlugin ->
  assert androidPlugin.name instanceof String
  assert androidPlugin.path instanceof String
  // Skip plugins that have no native build (such as a Dart-only implementation
  // of a federated plugin).
  def needsBuild = androidPlugin.containsKey('native_build') ? androidPlugin['native_build'] : true
  if (!needsBuild) {
    return
  }
  def pluginDirectory = new File(androidPlugin.path, 'android')
  assert pluginDirectory.exists()
  include ":${androidPlugin.name}"
  project(":${androidPlugin.name}").projectDir = pluginDirectory
}