/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 Ġ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 . lib ab ig ail . symbol files Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . Gradle Exception Ċ import Ġorg . gradle . api . tasks . Input File Ċ import Ġorg . gradle . api . tasks . Internal Ċ import Ġorg . gradle . api . tasks . OutputFile Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġorg . gradle . api . provider . Property Ċ Ċ /** Ċ Ġ* ĠTask Ġto Ġgenerate Ġa Ġsymbol Ġfile Ġfrom Ġa Ġsingle Ġ. map . txt Ġfile Ġin Ġthe Ġproject . ĠRequires Ġexactly Ġone Ċ Ġ* Ġ. map . txt Ġfile Ġto Ġexist . Ċ Ġ*/ Ċ abstract Ġclass ĠGenerate Symbol File Task Ġ: ĠDefault Task () Ġ{ ĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġabstract Ġval Ġbuild Dir : ĠProperty < File > ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġabstract Ġval Ġproject Dir : ĠProperty < File > ĊĊĠĠĠ Ġ@ Input File ĊĠĠĠ Ġfun Ġget Input File (): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Dir . get (). walk (). single Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . isFile Ġ&& Ġit . name . endsWith (". map . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. get OrNull () Ġ?: Ġthrow ĠGradle Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" A Ġsingle Ġversion Ġscript Ġwith Ġextension Ġ. map . txt Ġis Ġrequired Ġin Ġ$ project Dir ." ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OutputFile ĊĠĠĠ Ġfun Ġget OutputFile (): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild Dir . get (). resolve (" symbol _ files / abi _ symbol _ list . txt ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġexec () Ġ{ ĊĠĠĠĠĠĠĠ ĠSymbol List Generator ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= ĠFileInputStream ( getInput File ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠFileOutputStream ( getOutput File ()) ĊĠĠĠĠĠĠĠ Ġ). generate () ĊĠĠĠ Ġ} Ċ }