package Ġcom . ver iz on media . mobile . public api . public api plugin Ċ Ċ import Ġcom . android . build . gradle . internal . dsl . Annotation Processor Options Ċ import Ġcom . a ol . mobile . sdk . ap icol lect or . Public Api Grab ber . Companion . BUILD _ PATH _ KEY Ċ import Ġcom . a ol . mobile . sdk . ap icol lect or . Public Api Grab ber . Companion . PUBLIC _ API _ FILENAME Ċ import Ġcom . ver iz on media . mobile . public api . public api plugin . tasks . Api Check Task Ċ import Ġcom . ver iz on media . mobile . public api . public api plugin . tasks . Pro guard Gen Task Ċ import Ġcom . ver iz on media . mobile . public api . public api plugin . utils . android Ċ import Ġcom . ver iz on media . mobile . public api . public api plugin . utils . config Ċ import Ġcom . ver iz on media . mobile . public api . public api plugin . utils . public Api Ċ import Ġcom . ver iz on media . mobile . public api . public api plugin . utils . task Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . tasks . bund ling . Abstract Archive Task Ċ import Ġjava . io . File Ċ Ċ class ĠPublic Api Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġartifact Dir : ĠFile ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġartifact Dir Ġ= Ġproject . mkdir ("${ project . build Dir }/ public Api Plugin /") ĊĊĠĠĠĠĠĠĠ Ġproject . extensions . create (" public Api ", ĠPublic Api Extension :: class . java , Ġproject ) ĊĊĠĠĠĠĠĠĠ Ġproject . config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" k apt ", Ġ" com . a ol . one . publish ers . android : api - collector : 1 . 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" compile Only ", Ġ" com . a ol . one . publish ers . android : annotations : 1 . 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgenerate Public Api Artifacts ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Public Api Artifacts ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . library Variants . all Ġ{ Ġvariant Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvariant . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( java Compile Options . annotation Processor Options Ġas ĠAnnotation Processor Options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. argument ( BUILD _ PATH _ KEY , Ġmkdir ("${ public Api . public Api Manifest Dir . get () }/ $ dir Name "). absolute Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanifest Ġ= Ġfile ("${ public Api . public Api Manifest Dir . get () }/ $ dir Name /$ PUBLIC _ API _ FILENAME ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgen Pro guard Task Ġ= Ġtask (" gen Api Pro guard ${ name . capitalize () }", ĠPro guard Gen Task :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( java Compile Provider ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest File Ġ= Ġmanifest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard File Ġ= Ġfile ("${ public Api . generated Pro guard Rules Dir . get () }/ pro guard - classes -${ variant . name . toLowerCase ()}. pro ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprevious Manifest Ġ= Ġfile ("${ public Api . previous Public Api Manifest . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchanges Dir Ġ= Ġ"${ root Project . build Dir }/ api Changes " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck Api Task Ġ= Ġtask (" check Api Changes ${ name . capitalize () }", ĠApi Check Task :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( java Compile Provider ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Manifest File Ġ= Ġif Ġ( previous Manifest . exists ()) Ġprevious Manifest Ġelse ĠFile . create TempFile (" ĠĠĠ Ġ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Manifest Url Ġ= Ġpublic Api . previous Public Api Url . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Manifest File Ġ= Ġmanifest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplicit Namespaces Ġ= Ġpublic Api . api Trim Namespaces ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Report File Ġ= Ġfile ("$ changes Dir / changes . md ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Report File From Url Ġ= Ġfile ("$ changes Dir / changes From Url . md ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( get ByName (" bundle ${ variant . name . capitalize ()} A ar ") Ġas ĠAbstract Archive Task ). from ( manifest ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ByName (" merge ${ variant . name . capitalize ()} Consumer Pro guard Files "). depends On ( gen Pro guard Task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ByName (" assemble "). depends On ( check Api Task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ