package Ġcom . av ito . android . test . report . transport Ċ Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġjava . io . File Ċ Ċ internal Ġclass ĠOutput File Provider Ġ{ ĊĊĠĠĠ Ġsealed Ġclass ĠResult Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠSuccess ( val Ġfile : ĠFile ) Ġ: ĠResult () ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠError ( val Ġe : ĠThrowable ) Ġ: ĠResult () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġtodo Ġshould Ġbe Ġpassed Ġwith Ġinstrument ation Ġparams , Ġsee Ġ[ Artifacts Test Listener ] ĊĠĠĠ Ġprivate Ġval Ġrunner Output Folder Ġ= Ġ" runner " ĊĊĠĠĠ Ġ// Ġtodo Ġshould Ġbe Ġpassed Ġwith Ġinstrument ation Ġparams , Ġsee Ġ[ Report Viewer Test Reporter ] ĊĠĠĠ Ġprivate Ġval Ġreport FileName Ġ= Ġ" report . json " ĊĊĠĠĠ Ġfun Ġprovide Report File ( className : ĠString , ĠmethodName : ĠString ): ĠResult Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Folder Name Ġ= Ġ"$ className #$ methodName " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexternal Storage Ġ= ĠInstrument ation Registry . get Instrumentation (). target Context . get External Files Dir ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠRuntimeException (" External Ġstorage Ġis Ġnot Ġavailable ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrunner Directory Ġ= ĠFile ( external Storage , Ġrunner Output Folder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Metadata Directory Ġ= ĠFile ( runner Directory , Ġtest Folder Name ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( File ( test Metadata Directory , Ġreport FileName )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ