package Ġcom . project . starter . modules . internal Ċ Ċ import Ġcom . android . build . gradle . Base Extension Ċ import Ġcom . android . build . gradle . Tested Extension Ċ import Ġcom . android . build . gradle . api . Base Variant Ċ import Ġcom . project . starter . config . extensions . Root Config Extension Ċ import Ġcom . project . starter . config . getBy Type Ċ import Ġcom . project . starter . config . plugins . root Config Ċ import Ġcom . project . starter . modules . extensions . Android Extension Ċ import Ġcom . project . starter . modules . tasks . For bid Java Files Task . Companion . register For bid Java Files Task Ċ import Ġcom . project . starter . modules . tasks . Project Coverage Task . Companion . register Project Coverage Task Ċ import Ġcom . project . starter . modules . tasks . Project Lint Task . Companion . register Project Lint Task Ċ import Ġcom . project . starter . modules . tasks . Project Test Task . Companion . register Project Test Task Ċ import Ġcom . project . starter . quality . internal . configure Android Coverage Ċ import Ġorg . gradle . api . Domain Object Set Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ internal Ġfun ĠBase Extension . configure Android Plugin ( root Config : ĠRoot Config Extension ) Ġ{ ĊĠĠĠ Ġdefault Config . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġcompile Sdk Version ( root Config . android . compile Sdk Version ) ĊĠĠĠĠĠĠĠ Ġmin Sdk Ġ= Ġroot Config . android . min Sdk Version ĊĠĠĠĠĠĠĠ Ġtarget Sdk Ġ= Ġroot Config . android . target Sdk Version Ġ?: Ġroot Config . android . compile Sdk Version ĊĠĠĠĠĠĠĠ Ġset Test Instrumentation Runner (" android x . test . runner . Android JUnit Runner ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompile Options . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= Ġroot Config . java Version ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= Ġroot Config . java Version ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun ĠProject . configure Android Project ( variants : ĠDomain Object Set < out ĠBase Variant >, Ġproject Config : ĠAndroid Extension ) Ġ{ ĊĠĠĠ Ġconfigure Android Coverage ( variants , Ġproject Config . coverage Ex clusions ) ĊĠĠĠ Ġval Ġfind Build Variants Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġproject Config . default Variants . if Empty Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Ġ= Ġvariants . first OrNull Ġ{ Ġit . build Type . name Ġ== Ġ" debug " Ġ} Ġ?: Ġvariants . first () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( default . name . capitalize ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġregister Project Lint Task Ġ{ Ġproject Lint Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġchild Tasks Ġ= Ġfind Build Variants (). map Ġ{ Ġ"$ path : lint ${ it . capitalize () }" Ġ} ĊĠĠĠĠĠĠĠ Ġchild Tasks . forEach Ġ{ Ġproject Lint . depends On ( it ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġregister Project Test Task Ġ{ Ġproject Test Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġchild Tasks Ġ= Ġfind Build Variants (). map Ġ{ Ġ"$ path : test ${ it . capitalize ()} UnitTest " Ġ} ĊĠĠĠĠĠĠĠ Ġchild Tasks . forEach Ġ{ Ġproject Test . depends On ( it ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġregister Project Coverage Task Ġ{ Ġproject Coverage Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġchild Tasks Ġ= Ġfind Build Variants (). map Ġ{ Ġ"$ path : jac oco ${ it . capitalize ()} Test Report " Ġ} ĊĠĠĠĠĠĠĠ Ġchild Tasks . forEach Ġ{ Ġproject Coverage . depends On ( it ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġtasks . with Type ( Kotlin Compile :: class . java ). configure Each Ġ{ ĊĠĠĠĠĠĠĠ Ġit . kotlin Options . jvm Target Ġ= Ġroot Config . java Version . toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġjava Files Allowed Ġ= Ġproject Config . java Files Allowed Ġ?: Ġroot Config . java Files Allowed ĊĠĠĠ Ġif Ġ(! java Files Allowed ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfor bid Java Files Ġ= Ġregister For bid Java Files Task Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġproject . extensions . getBy Type < Tested Extension >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension . source Sets . configure Each Ġ{ Ġsource Set Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . source Ġ+= Ġsource Set . java . getSource Files () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtasks . named (" pre Build ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . depends On ( for bid Java Files ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ