/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . android . build . gradle . internal . dsl Ċ Ċ import Ġcom . android . build . api . dsl . Application Build Features Ċ import Ġcom . android . build . api . dsl . Application Extension Ċ import Ġcom . android . build . api . dsl . Dependencies Info Ċ import Ġcom . android . build . api . variant . Application Variant Ċ import Ġcom . android . build . api . variant . Application Variant Properties Ċ import Ġcom . android . build . gradle . App Extension Ċ import Ġcom . android . build . gradle . api . Base Variant Output Ċ import Ġcom . android . build . gradle . api . View Binding Options Ċ import Ġcom . android . build . gradle . internal . Compile Options Ċ import Ġcom . android . build . gradle . internal . Extra Model Info Ċ import Ġcom . android . build . gradle . internal . api . dsl . Dsl Scope Ċ import Ġcom . android . build . gradle . internal . coverage . J aco co Options Ċ import Ġcom . android . build . gradle . internal . dependency . Source Set Manager Ċ import Ġcom . android . build . gradle . internal . scope . Global Scope Ċ import Ġcom . android . build . gradle . options . Project Options Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Named Domain Object Container Ċ import Ġorg . gradle . api . Project Ċ Ċ /** ĠThe Ġ` android ` Ġextension Ġfor Ġbase Ġfeature Ġmodule Ġ( application Ġplugin ). Ġ Ġ*/ Ċ open Ġclass ĠBase App Module Extension ( ĊĠĠĠ Ġd sl Scope : ĠD sl Scope , ĊĠĠĠ Ġproject Options : ĠProject Options , ĊĠĠĠ Ġglobal Scope : ĠGlobal Scope , ĊĠĠĠ Ġbuild Outputs : ĠNamed Domain Object Container < Base Variant Output >, ĊĠĠĠ Ġsource Set Manager : ĠSource Set Manager , ĊĠĠĠ Ġextra Model Info : ĠExtra Model Info , ĊĠĠĠ Ġprivate Ġval Ġpublic Extension Impl : ĠApplication Extension Impl Ċ ) Ġ: ĠApp Extension ( ĊĠĠĠ Ġd sl Scope , ĊĠĠĠ Ġproject Options , ĊĠĠĠ Ġglobal Scope , ĊĠĠĠ Ġbuild Outputs , ĊĠĠĠ Ġsource Set Manager , ĊĠĠĠ Ġextra Model Info , ĊĠĠĠ Ġtrue Ċ ), ĠApplication Extension < ĊĠĠĠĠĠĠĠ ĠBuild Type , ĊĠĠĠĠĠĠĠ ĠC make Options , ĊĠĠĠĠĠĠĠ ĠCompile Options , ĊĠĠĠĠĠĠĠ ĠDefault Config , ĊĠĠĠĠĠĠĠ ĠExternal Native Build , ĊĠĠĠĠĠĠĠ ĠJ aco co Options , ĊĠĠĠĠĠĠĠ ĠN dk Build Options , ĊĠĠĠĠĠĠĠ ĠProduct Flavor , ĊĠĠĠĠĠĠĠ ĠSign ing Config , ĊĠĠĠĠĠĠĠ ĠTest Options , ĊĠĠĠĠĠĠĠ ĠTest Options . UnitTest Options > Ġby Ġpublic Extension Impl , ĊĠĠĠ ĠAction able Variant Object Operations Executor < Application Variant , ĠApplication Variant Properties > Ġby Ġpublic Extension Impl Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdata Binding : ĠData Binding Options Ġ= ĊĠĠĠĠĠĠĠ Ġd sl Scope . object Factory . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Options :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Extension Impl . build Features , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Scope ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġval Ġview Binding : ĠView Binding Options Ġ= ĊĠĠĠĠĠĠĠ Ġd sl Scope . object Factory . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Binding Options Impl :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Extension Impl . build Features , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Scope ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ// Ġthis Ġis Ġneeded Ġbecause Ġthe Ġimpl Ġclass Ġneeds Ġthis Ġbut Ġthe Ġinterface Ġdoes Ġnot , ĊĠĠĠ Ġ// Ġso ĠCommon Extension Ġdoes Ġnot Ġdefine Ġit , Ġwhich Ġmeans , Ġthat Ġeven Ġthough Ġit 's Ġpart Ġof ĊĠĠĠ Ġ// ĠApplication Extension Impl , Ġthe Ġimplementation Ġby Ġdelegate Ġdoes Ġnot Ġbring Ġit . ĊĠĠĠ Ġfun Ġbuild Features ( action : ĠAction < Application Build Features >) Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Extension Impl . build Features ( action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdependencies Info ( action : ĠAction < Dependencies Info >) Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Extension Impl . dependencies Info ( action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdynamic Features : ĠMutable Set < String > Ġ= Ġmutable Set Of () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġof Ġasset Ġpack Ġsub projects Ġto Ġbe Ġincluded Ġin Ġthe Ġapp 's Ġbundle . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġasset Pack s : ĠMutable Set < String > Ġ= Ġmutable Set Of () ĊĊĠĠĠ Ġval Ġbundle : ĠBundle Options Ġ= ĊĠĠĠĠĠĠĠ Ġd sl Scope . object Factory . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBundle Options :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Scope . object Factory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Scope . deprecation Reporter ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbundle ( action : ĠAction < Bundle Options >) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction . execute ( bundle ) ĊĠĠĠ Ġ} Ċ } Ċ