/* Ċ Ġ* ĠCopyright Ġ 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 Ġandroidx . build Ċ Ċ import Ġandroidx . build . dependencies . AG P _ LATE ST Ċ import Ġandroidx . build . dependencies . K OT LIN _ STD LIB Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . file . Regular File Property Ċ import Ġorg . gradle . api . plugins . Java Plugin Convention Ċ import Ġorg . gradle . api . tasks . Input Ċ import Ġorg . gradle . api . tasks . Input File Ċ import Ġorg . gradle . api . tasks . OutputFile Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġorg . gradle . kotlin . dsl . get Plugin Ċ import Ġjava . io . File Ċ import Ġjava . io . PrintWriter Ċ Ċ abstract Ġclass ĠS dk Resource Generator Ġ: ĠDefault Task () Ġ{ ĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġlateinit Ġvar Ġpre bu il ts Root : ĠString ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġlateinit Ġvar Ġlocal Support Repo : ĠString ĊĊĠĠĠ Ġ@ get : Input File ĊĠĠĠ Ġabstract Ġval Ġdebug Ke yst ore : ĠRegular File Property ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġcompile Sdk Version : ĠInt Ġ= ĠSupport Config . TARGET _ SDK _ VERSION ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġbuild Tools Version : ĠString Ġ= ĠSupport Config . BUILD _ TOOLS _ VERSION ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġmin Sdk Version : ĠInt Ġ= ĠSupport Config . DEFAULT _ MIN _ SDK _ VERSION ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġag p Dependency : ĠString Ġ= ĠA GP _ LATE ST ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġnavigation Runtime : ĠString Ġ= Ġ" android x . navigation : navigation - runtime : 2 . 2 . 0 " ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġkotlin Std lib : ĠString Ġ= ĠK OT LIN _ STD LIB ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġroot Project Path : ĠString Ġ= Ġproject . root Project . rootDir . absolute Path ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġlateinit Ġvar Ġgradle Version : ĠString ĊĊĠĠĠ Ġ@ get : OutputFile ĊĠĠĠ Ġabstract Ġval ĠoutputFile : ĠRegular File Property ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġgenerate File () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠPrintWriter ( outputFile . get (). as File ) ĊĠĠĠĠĠĠĠ Ġwriter . write (" pre bu il ts Root =$ pre bu il ts Root \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" local Support Repo =$ local Support Repo \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" compile Sdk Version =$ compile Sdk Version \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" build Tools Version =$ build Tools Version \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" min Sdk Version =$ min Sdk Version \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" debug Ke yst ore =${ debug Ke yst ore . get (). as File . canonical Path }\ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" ag p Dependency =$ ag p Dependency \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" navigation Runtime =$ navigation Runtime \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" kotlin Std lib =$ kotlin Std lib \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" gradle Version =$ gradle Version \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . write (" root Project Path =$ root Project Path \ n ") ĊĠĠĠĠĠĠĠ Ġwriter . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġgenerate For Host Test ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenerated Directory Ġ= ĠFile ( project . build Dir , Ġ" generated / resources ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġproject . tasks . register ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" generate Sdk Resource ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS dk Resource Generator :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . pre bu il ts Root Ġ= Ġproject . get Pre bu il ts Root (). canonical Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . debug Ke yst ore . set ( project . get Ke yst ore ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . local Support Repo Ġ= Ġproject . getRepository Directory (). canonical Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . gradle Version Ġ= Ġproject . gradle . gradle Version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . outputFile . set ( File ( generated Directory , Ġ" sdk . prop ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . tasks . named (" compile Test Java "). configure Ġ{ Ġit . depends On ( provider ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconvention Ġ= Ġproject . convention . get Plugin < Java Plugin Convention >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġconvention . source Sets . get ByName (" test "). resources ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . src Dirs ( set Of ( resources . src Dirs , Ġgenerated Directory )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ