package Ġcom . t ange m . operations . files Ċ Ċ import Ġcom . squareup . mos hi . Json Class Ċ import Ġcom . t ange m . common . Completion Result Ċ import Ġcom . t ange m . common . core . Card Session Ċ import Ġcom . t ange m . common . core . Card Session Runnable Ċ import Ġcom . t ange m . common . core . Completion Callback Ċ import Ġcom . t ange m . common . core . T ange m Sdk Error Ċ import Ġcom . t ange m . common . extensions . guard Ċ import Ġcom . t ange m . operations . Command Response Ċ Ċ /** Ċ Ġ* ĠResponse Ġfor Ġ[ Write Files Task ]. Ċ Ġ* Ġ@ property Ġcard Id : ĠC ID , ĠUnique ĠT ange m Ġcard ĠID Ġnumber Ċ Ġ* Ġ@ property Ġfiles Indices : ĠInd ices Ġof Ġcreated Ġfiles Ċ Ġ*/ Ċ @ Json Class ( generate Adapter Ġ= Ġtrue ) Ċ class ĠWrite Files Response ( ĊĠĠĠ Ġval Ġcard Id : ĠString , ĊĠĠĠ Ġval Ġfiles Indices : ĠList < Int > Ċ ) Ġ: ĠCommand Response Ċ Ċ /** Ċ Ġ* ĠThis Ġtask Ġallows Ġto Ġwrite Ġmultiple Ġfiles Ġto Ġa Ġcard . Ċ Ġ* ĠThere Ġare Ġtwo Ġsecure Ġways Ġto Ġwrite Ġfiles . Ċ Ġ* Ġ 1 ) ĠData Ġcan Ġbe Ġsigned Ġby Ġowner Ġ( the Ġone Ġspecified Ġon Ġcard Ġduring Ġpersonal ization ). Ċ Ġ* Ġ 2 ) ĠData Ġcan Ġbe Ġprotected Ġby Ġuser Ġcode . ĠIn Ġthis Ġcase , Ġuser Ġcode Ġis Ġrequired Ġfor Ġthe Ġcommand . Ċ Ġ* Ġ@ property Ġfiles : ĠArray Ġof Ġfiles Ġto Ġwrite Ċ Ġ*/ Ċ class ĠWrite Files Task ( ĊĠĠĠ Ġprivate Ġval Ġfiles : ĠList < File To Write >, Ċ ) Ġ: ĠCard Session Runnable < Write Files Response > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsaved Files Indices Ġ= Ġmutable ListOf < Int >() ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( session : ĠCard Session , Ġcallback : ĠCompletion Callback < Write Files Response >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( files . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Failure ( T ange m Sdk Error . Files IsEmpty ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwrite Files ( 0 , Ġsession , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwrite Files ( index : ĠInt , Ġsession : ĠCard Session , Ġcallback : ĠCompletion Callback < Write Files Response >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcard Ġ= Ġsession . environment . card . guard Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Failure ( T ange m Sdk Error . Card Error ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġfiles . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Success ( Write Files Response ( card . card Id , Ġsaved Files Indices ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfile To Write Ġ= Ġfiles [ index ] ĊĠĠĠĠĠĠĠ ĠWrite File Command ( file To Write ). run ( session ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data . file Index ?. let Ġ{ Ġsaved Files Indices . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Files ( index Ġ+ Ġ 1 , Ġsession , Ġcallback ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Failure Ġ-> Ġcallback ( Completion Result . Failure ( result . error )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }