package Ġcom . av ito . android . build _ ver dict Ċ Ċ import Ġcom . av ito . android . build _ ver dict . internal . Build Ver dict Plugin Services Ċ import Ġcom . av ito . kotlin . dsl . is Root Ċ import Ġcom . av ito . logger . Gradle LoggerFactory Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . internal . Gradle Internal Ċ import Ġorg . gradle . api . internal . project . Project Internal Ċ import Ġorg . gradle . internal . logging . Logging Manager Internal Ċ import Ġorg . gradle . internal . logging . events . Output EventListener Ċ import Ġorg . gradle . kotlin . dsl . create Ċ import Ġorg . gradle . kotlin . dsl . support . service Of Ċ Ċ public Ġclass ĠBuild Ver dict Plugin Ġ: ĠPlugin < Project Internal > Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠProject . plugin IsEnabled : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġproviders ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gradle Property ( enabled Prop ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. for Use At Configuration Time () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getOrElse ( true ) ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject Internal ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( project . is Root ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" build - ver dict Ġplugin Ġmust Ġbe Ġapplied Ġto Ġthe Ġroot Ġproject " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( project . plugin IsEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġproject . extensions . create < Build Ver dict Plugin Extension >(" build Ver dict ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠGradle LoggerFactory . getLogger ( this , Ġproject ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservices Ġ= ĠBuild Ver dict Plugin Services ( extension , Ġlogger ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . addListener ( services . gradle Task Execution Listener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . add Log EventListener ( services . gradle Log EventListener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfiguration Listener Ġ= Ġservices . gradle Configuration Listener () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . add Build Listener ( configuration Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . task Graph . when Ready Ġ{ Ġgraph Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . remove Listener ( configuration Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . add Build Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservices . gradle Build Finished Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠGradle Internal . add Log EventListener ( ĊĠĠĠĠĠĠĠ Ġgradle Log EventListener : ĠOutput EventListener ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Manager Ġ= Ġservice Of < Logging Manager Internal >() ĊĠĠĠĠĠĠĠ Ġlogging Manager . add Output EventListener ( gradle Log EventListener ) ĊĠĠĠĠĠĠĠ Ġbuild Finished Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging Manager . remove Output EventListener ( gradle Log EventListener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġenabled Prop Ġ= Ġ" av ito . build - ver dict . enabled " ĊĠĠĠ Ġ} Ċ } Ċ