package Ġcom . t ange m . operations . files Ċ Ċ import Ġcom . t ange m . common . Completion Result Ċ import Ġcom . t ange m . common . Success Response Ċ 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 Ċ Ċ /** Ċ Ġ* ĠThis Ġtask Ġallows Ġto Ġdelete Ġmultiple Ġor Ġall Ġfiles Ġwritten Ġto Ġthe Ġcard Ġwith Ġ[ WriteFile Command ]. Ċ Ġ* ĠPass code Ġ( PIN 2 ) Ġis Ġrequired Ġto Ġdelete Ġthe Ġfiles . Ċ Ġ* Ċ Ġ* Ġ@ property Ġfiles ToDelete Ġindices Ġof Ġfiles Ġto Ġbe Ġdeleted . ĠIf Ġ[ files ToDelete ] Ġare Ġnot Ġprovided , Ċ Ġ* Ġthen Ġall Ġfiles Ġwill Ġbe Ġdeleted . Ċ Ġ*/ Ċ class ĠDelete Files Task ( ĊĠĠĠ Ġprivate Ġval Ġfiles ToDelete : ĠList < Int >? Ġ= Ġnull Ċ ) Ġ: ĠCard Session Runnable < Success Response > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( session : ĠCard Session , Ġcallback : ĠCompletion Callback < Success Response >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( files ToDelete Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete All Files ( session , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Files ( files ToDelete . sorted (), Ġsession , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete All Files ( session : ĠCard Session , Ġcallback : ĠCompletion Callback < Success Response >) Ġ{ ĊĠĠĠĠĠĠĠ ĠDelete File Command ( 0 ). run ( session ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Success Ġ-> Ġdelete All Files ( session , Ġcallback ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Failure Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . error Ġis ĠT ange m Sdk Error . Error Processing Command ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Success ( Success Response ( session . environment . card ?. card Id Ġ?: Ġ" "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Failure ( result . error )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete Files ( files Index : ĠList < Int >, Ġsession : ĠCard Session , Ġcallback : ĠCompletion Callback < Success Response >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġfiles Index . last () ĊĠĠĠĠĠĠĠ ĠDelete File Command ( index ). run ( session ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremaining Index Ġ= Ġfiles Index . drop Last ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( remaining Index . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Files ( remaining Index , Ġsession , Ġcallback ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Failure Ġ-> Ġcallback ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }