/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 Ġ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 . api . variant . impl Ċ Ċ import Ġcom . android . build . api . artifact . Multiple Artifact Ċ import Ġcom . android . build . api . artifact . impl . Artifacts Impl Ċ import Ġcom . android . build . api . variant . Android Test Ċ import Ġcom . android . build . api . component . Component Ċ import Ġcom . android . build . api . component . Test Fixtures Ċ import Ġcom . android . build . api . component . analytics . Analytics Enabled Application Variant Ċ import Ġcom . android . build . api . component . impl . A pk Creation Config Impl Ċ import Ġcom . android . build . api . dsl . Application Extension Ċ import Ġcom . android . build . api . dsl . Common Extension Ċ import Ġcom . android . build . api . extension . impl . Variant Api Operations Registrar Ċ import Ġcom . android . build . api . variant .* Ċ import Ġcom . android . build . gradle . internal . component . Application Creation Config Ċ import Ġcom . android . build . gradle . internal . core . Variant Dsl Info Ċ import Ġcom . android . build . gradle . internal . core . Variant Sources Ċ import Ġcom . android . build . gradle . internal . dependency . Variant Dependencies Ċ import Ġcom . android . build . gradle . internal . dsl . Base App Module Extension Ċ import Ġcom . android . build . gradle . internal . dsl . N dk Options Ċ import Ġcom . android . build . gradle . internal . dsl . N dk Options . Debug Symbol Level Ċ import Ġcom . android . build . gradle . internal . pipeline . Transform Manager Ċ import Ġcom . android . build . gradle . internal . scope . Build Feature Values Ċ import Ġcom . android . build . gradle . internal . scope . Global Scope Ċ import Ġcom . android . build . gradle . internal . scope . Variant Scope Ċ import Ġcom . android . build . gradle . internal . services . Project Services Ċ import Ġcom . android . build . gradle . internal . services . Task Creation Services Ċ import Ġcom . android . build . gradle . internal . services . Variant Properties Api Services Ċ import Ġcom . android . build . gradle . internal . variant . Base Variant Data Ċ import Ġcom . android . build . gradle . internal . variant . Variant Path Helper Ċ import Ġcom . android . build . gradle . options . Integer Option Ċ import Ġcom . android . builder . dex ing . Dex ing Type Ċ import Ġcom . google . wire less . android . sdk . stats . Gradle Build Variant Ċ import Ġcom . android . build . gradle . options . String Option Ċ import Ġjavax . inject . Inject Ċ import Ġorg . gradle . api . provider . Property Ċ Ċ open Ġclass ĠApplication Variant Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġvariant Builder : ĠApplication Variant Builder Impl , ĊĠĠĠĠĠĠĠ Ġbuild Feature Values : ĠBuild Feature Values , ĊĠĠĠĠĠĠĠ Ġvariant Dsl Info : ĠVariant Dsl Info < Application Extension >, ĊĠĠĠĠĠĠĠ Ġvariant Dependencies : ĠVariant Dependencies , ĊĠĠĠĠĠĠĠ Ġvariant Sources : ĠVariant Sources , ĊĠĠĠĠĠĠĠ Ġpaths : ĠVariant Path Helper , ĊĠĠĠĠĠĠĠ Ġartifacts : ĠArtifact s Impl , ĊĠĠĠĠĠĠĠ Ġvariant Scope : ĠVariant Scope , ĊĠĠĠĠĠĠĠ Ġvariant Data : ĠBase Variant Data , ĊĠĠĠĠĠĠĠ Ġdependencies Info Builder : ĠDependencies Info Builder , ĊĠĠĠĠĠĠĠ Ġtransform Manager : ĠTransform Manager , ĊĠĠĠĠĠĠĠ Ġinternal Services : ĠVariant Properties Api Services , ĊĠĠĠĠĠĠĠ Ġtask Creation Services : ĠTask Creation Services , ĊĠĠĠĠĠĠĠ Ġglobal Scope : ĠGlobal Scope Ċ ) Ġ: ĠVariant Impl ( ĊĠĠĠ Ġvariant Builder , ĊĠĠĠ Ġbuild Feature Values , ĊĠĠĠ Ġvariant Dsl Info , ĊĠĠĠ Ġvariant Dependencies , ĊĠĠĠ Ġvariant Sources , ĊĠĠĠ Ġpaths , ĊĠĠĠ Ġartifacts , ĊĠĠĠ Ġvariant Scope , ĊĠĠĠ Ġvariant Data , ĊĠĠĠ Ġtransform Manager , ĊĠĠĠ Ġinternal Services , ĊĠĠĠ Ġtask Creation Services , ĊĠĠĠ Ġglobal Scope Ċ ), ĠApplication Variant , ĠApplication Creation Config , ĠHas Android Test , ĠHas Test Fixtures Ġ{ ĊĊĠĠĠ Ġval Ġdelegate Ġby Ġlazy Ġ{ ĠA pk Creation Config Impl ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġinternal Services . project Options , ĊĠĠĠĠĠĠĠ Ġglobal Scope , ĊĠĠĠĠĠĠĠ Ġvariant Dsl Info ) Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġvariant Dsl Info . multi Dex Keep Pro guard ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts . get Artifact Container ( Multiple Artifact . MULT ID EX _ KEEP _ PRO GU ARD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Initial Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Creation Services . regular File ( internal Services . provider Ġ{ Ġit Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠPUBLIC ĠAPI ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġoverride Ġval Ġapplication Id : ĠProperty < String > Ġ= Ġvariant Dsl Info . application Id ĊĊĠĠĠ Ġoverride Ġval Ġembed s Micro App : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvariant Dsl Info . is Embed Micro App ĊĊĠĠĠ Ġoverride Ġval Ġdependencies Info : ĠDependencies Info Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠDependencies Info Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Info Builder . included In A pk , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Info Builder . included In Bundle ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġandroid Resources : ĠAndroid Resources Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize A apt Options From Dsl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Creation Services . project Info . getExtension (). a apt Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Services ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsigning Config : ĠSign ing Config Impl ? Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġvariant Dsl Info . signing Config ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSign ing Config Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Services , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Sdk Version . api Level , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Services . project Options . get ( Integer Option . IDE _ TARGET _ DEVICE _ API ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġpackaging : ĠA pk Pack aging Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠA pk Pack aging Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġglobal Scope . extension . packaging Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Services , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin Sdk Version . api Level ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġmin ified Enabled : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvariant Dsl Info . getPost Processing Options (). code Shrink er Enabled () ĊĊĠĠĠ Ġoverride Ġvar Ġandroid Test : ĠAndroid Test ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġvar Ġtest Fixtures : ĠTest Fixtures ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġval Ġrenders cript : ĠR enders cript ? Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . rend erscript ( internal Services ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠINTERNAL ĠAPI ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġoverride Ġval Ġtest Only A pk : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvariant Scope . is Test Only ( this ) ĊĊĠĠĠ Ġoverride Ġval Ġneed Asset Pack Tasks : ĠBoolean Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġ( global Scope . extension Ġas ĠBase App Module Extension ). asset Pack s . isNotEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġshould Package Des ugar Lib Dex : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . is Core Library Des ug aring Enabled ĊĠĠĠ Ġoverride Ġval Ġdebug gable : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . isDebug gable ĊĊĠĠĠ Ġoverride Ġval Ġshould Package Profiler Dependencies : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġadvanced Profiling Transforms . isNotEmpty () ĊĊĠĠĠ Ġoverride Ġval Ġadvanced Profiling Transforms : ĠList < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġservices . project Options [ String Option . IDE _ ANDROID _ CUSTOM _ CLASS _ TRANS FOR MS ]?. split ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"," ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġnative Debug Symbol Level : ĠDebug Symbol Level ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdebug Symbol Level OrNull Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN dk Options . DEBUG _ SYMBOL _ LEVEL _ CONVER TER . convert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvariant Dsl Info . nd k Config . debug Symbol Level ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdebug Symbol Level OrNull Ġ?: Ġif Ġ( debug gable ) ĠDebug Symbol Level . NONE Ġelse ĠDebug Symbol Level . SYMBOL _ TABLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠDO ĠNOT ĠUSE , Ġonly Ġpresent Ġfor Ġold Ġvariant ĠAPI . ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġoverride Ġval Ġd sl Signing Config : Ġcom . android . build . gradle . internal . dsl . Signing Config ? Ġ= ĊĠĠĠĠĠĠĠ Ġvariant Dsl Info . signing Config ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠDO ĠNOT ĠUSE , ĠDeprecated ĠDSL ĠAPIs . ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġoverride Ġval Ġmulti Dex Keep File Ġ= Ġvariant Dsl Info . multi Dex Keep File ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠPrivate Ġstuff ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Version Name Property (): ĠProperty < String ?> Ġ= ĊĠĠĠĠĠĠĠ Ġinternal Services . new Nullable Property Backing Deprecated Api ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant Dsl Info . version Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ name :: version Name " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Version Code Property () Ġ: ĠProperty < Int ?> Ġ= ĊĠĠĠĠĠĠĠ Ġinternal Services . new Nullable Property Backing Deprecated Api ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant Dsl Info . version Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ name :: version Code " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġval Ġrenders cript Target Api : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvariant Builder . rend erscript Target Api ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġde xing Type : ĠDex ing Type ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . dex ing Type ĊĊĠĠĠ Ġoverride Ġval Ġneeds Main Dex List For Bundle : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ( variant Type . is Base Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġglobal Scope . has Dynamic Features () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġde xing Type . needs Main Dex List ) ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠComponent > Ġcreate User Visible Variant Object ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Services : ĠProject Services , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperations Registrar : ĠVariant Api Operations Registrar < out ĠCommon Extension < *, Ġ*, Ġ*, Ġ* >, Ġout ĠVariant Builder , Ġout ĠVariant >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstats : ĠGradle Build Variant . Builder ? ĊĠĠĠ Ġ): ĠT Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( stats Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Services . object Factory . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnalytics Enabled Application Variant :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġmin Sdk Version With Target Device Api : ĠAndroid Version ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . min Sdk Version With Target Device Api ĊĊĠĠĠ Ġoverride Ġfun Ġget Needs Merged Java Res Stream (): ĠBoolean Ġ= Ġdelegate . get Needs Merged Java Res Stream () ĊĊĠĠĠ Ġoverride Ġfun Ġget Java 8 Lang Support Type (): ĠVariant Scope . Java 8 Lang Support Ġ= Ġdelegate . get Java 8 Lang Support Type () ĊĊĠĠĠ Ġoverride Ġval Ġneeds Shrink Des ugar Library : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . needs Shrink Des ugar Library ĊĊĠĠĠ Ġ// ĠApps Ġinclude Ġthe Ġj aco co Ġagent Ġif Ġtest Ġcoverage Ġis Ġenabled ĊĠĠĠ Ġoverride Ġval Ġpackage J aco co Runtime : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvariant Dsl Info . is Test Coverage Enabled Ċ Ċ } Ċ