// 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. package com.flutter.gradle import com.android.build.api.dsl.ApplicationExtension import org.gradle.api.Project // TODO(gmackall): maybe migrate this to a package-level function when FGP conversion is done. object BaseApplicationNameHandler { internal const val DEFAULT_BASE_APPLICATION_NAME: String = "android.app.Application" internal const val GRADLE_BASE_APPLICATION_NAME_PROPERTY: String = "base-application-name" @JvmStatic fun setBaseName(project: Project) { // Only set the base application name for apps, skip otherwise (LibraryExtension, DynamicFeatureExtension). val androidComponentsExtension: ApplicationExtension = project.extensions.findByType(ApplicationExtension::class.java) ?: return // Setting to android.app.Application is the same as omitting the attribute. var baseApplicationName: String = DEFAULT_BASE_APPLICATION_NAME // Respect this property if it set by the Flutter tool. if (project.hasProperty(GRADLE_BASE_APPLICATION_NAME_PROPERTY)) { baseApplicationName = project.property(GRADLE_BASE_APPLICATION_NAME_PROPERTY).toString() } androidComponentsExtension.defaultConfig.manifestPlaceholders["applicationName"] = baseApplicationName } }