package Ġcom . s usion . rabbit . tracer . transform Ċ Ċ import Ġcom . android . build . api . transform . Qualified Content Ċ import Ġcom . android . build . api . transform . Transform Ċ import Ġcom . android . build . api . transform . Transform Invocation Ċ import Ġcom . android . build . gradle . internal . pipeline . Transform Manager Ċ import Ġcom . android . builder . model . Android Project Ċ import Ġcom . s usion . rabbit . tracer . transform . core . context . Rabbit Transform Invocation Ċ import Ġcom . s usion . rabbit . tracer . transform . core . rx ent ension . file Ċ import Ġcom . s usion . rabbit . tracer . transform . utils . Rabbit Transform Printer Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* Ġs usion wang Ġat Ġ 2 0 1 9 - 1 1 - 1 2 Ċ Ġ*/ Ċ class ĠRabbit Transform Ġ: ĠTransform () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetName () Ġ= Ġ" rabbit - speed - tracer " ĊĊĠĠĠ Ġoverride Ġfun Ġget Input Types (): ĠMutable Set < Qualified Content . ContentType > Ġ= ĊĠĠĠĠĠĠĠ ĠTransform Manager . CONTENT _ CLASS ĊĊĠĠĠ Ġoverride Ġfun Ġis Incremental () Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġget Scopes (): ĠMutable Set < Qualified Content . Scope Type > Ġ= ĠTransform Manager . SCOPE _ FULL _ PROJECT ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( transform Invocation : ĠTransform Invocation ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( transform Invocation Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ ĠRabbit Transform Printer . p (" rabbit ĠRabbit First Transform Ġrun Ġ") ĊĊĠĠĠĠĠĠĠ ĠRabbit Transform Invocation ( transform Invocation ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Incremental ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Pre Transform ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Incremental Transform () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪłéĻ¤ èĢģ çļĦ æŀĦå»º åĨħå®¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Dir . file ( Android Project . FD _ INTER MEDI ATES , Ġ" transforms ", Ġ" dex Builder ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġdex Builder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dex Builder . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdex Builder . delete Re cursively () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Provider . delete All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Pre Transform ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Full Transform () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Post Transform ( this ) ĊĊĠĠĠĠĠĠĠ Ġ}. executor . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshutdown () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġawait Termination ( 1 , ĠTimeUnit . MIN UTES ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }