/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 Ġ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 Ġcom . android . build . gradle . internal . tasks Ċ Ċ import Ġcom . android . build . gradle . internal . scope . Build Artifacts Holder Ċ import Ġcom . android . build . gradle . internal . scope . Internal Artifact Type Ċ import Ġcom . android . build . gradle . internal . scope . Variant Scope Ċ import Ġcom . android . build . gradle . internal . signing . Signing Config Data Ċ import Ġcom . android . build . gradle . internal . tasks . factory . Variant Task Creation Action Ċ import Ġorg . gradle . api . file . Directory Property Ċ import Ġorg . gradle . api . tasks . Cache able Task Ċ import Ġorg . gradle . api . tasks . Input Ċ import Ġorg . gradle . api . tasks . Input Files Ċ import Ġorg . gradle . api . tasks . Nested Ċ import Ġorg . gradle . api . tasks . Optional Ċ import Ġorg . gradle . api . tasks . Output Directory Ċ import Ġorg . gradle . api . tasks . Path Sensitive Ċ import Ġorg . gradle . api . tasks . Path Sensitivity Ċ import Ġorg . gradle . api . tasks . Task Provider Ċ Ċ /** Ċ Ġ* ĠTask Ġthat Ġwrites Ġthe ĠSign ing Config Ġinformation Ġto Ġa Ġfile . Ċ Ġ*/ Ċ @ Cache able Task Ċ abstract Ġclass ĠSign ing Config Writer Task Ġ: ĠNon Incremental Task () Ġ{ ĊĊĠĠĠ Ġ@ get : Output Directory ĊĠĠĠ Ġabstract Ġval Ġoutput Directory : ĠDirectory Property ĊĊĠĠĠ Ġ@ get : Input Files ĊĠĠĠ Ġ@ get : Path Sensitive ( Path Sensitivity . NONE ) ĊĠĠĠ Ġ@ get : Optional ĊĠĠĠ Ġabstract Ġval Ġvalidated Signing Output : ĠDirectory Property ĊĊĠĠĠ Ġ@ get : Nested ĊĠĠĠ Ġ@ get : Optional ĊĠĠĠ Ġvar Ġsigning Config Data : ĠSign ing Config Data ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinternal Ġset ĊĊĠĠĠ Ġ// ĠAdd Ġthe Ġstore Ġfile Ġpath Ġas Ġan Ġinput Ġas ĠSign ing Config Data Ġignores Ġit Ġ( see Ġits Ġjavadoc ). ĠThis ĊĠĠĠ Ġ// Ġwill Ġbreak Ġcache Ġre loc atab ility , Ġbut Ġwe Ġhave Ġto Ġaccept Ġit Ġfor Ġcorrect ness Ġ( see Ġbug ĊĠĠĠ Ġ// Ġ 1 3 5 5 0 9 6 2 3 # comment 6 ). ĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġ@ get : Optional ĊĠĠĠ Ġvar Ġstore FilePath : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinternal Ġset ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġdo Task Action () Ġ{ ĊĠĠĠĠĠĠĠ ĠSign ing Config Utils . save ( output Directory . get (). as File , Ġsigning Config Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠCreation Action ( variant Scope : ĠVariant Scope ) Ġ: ĊĠĠĠĠĠĠĠ ĠVariant Task Creation Action < Signing Config Writer Task >( variant Scope ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġvariant Scope . get Task Name (" signing Config Writer ") ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtype : ĠClass < Signing Config Writer Task > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠSign ing Config Writer Task :: class . java ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Provider ( task Provider : ĠTask Provider < out ĠSign ing Config Writer Task >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . handle Provider ( task Provider ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant Scope . artifacts . pro duces Dir ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInternal Artifact Type . SIGN ING _ CONFIG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Artifacts Holder . Operation Type . INITIAL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSign ing Config Writer Task :: output Directory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconfigure ( task : ĠSign ing Config Writer Task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . configure ( task ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant Scope . artifacts . set Task Input To Final Product ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInternal Artifact Type . VALIDATE _ SIGN ING _ CONFIG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . validated Signing Output ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . signing Config Data Ġ= Ġvariant Scope . variant Configuration . signing Config ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . store FilePath Ġ= Ġit . store File ?. path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSign ing Config Data . from Signing Config ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }