package Ġcom . av ito . android . transport Ċ Ċ import Ġcom . av ito . android . test . report . transport . External Storage Transport Ċ import Ġcom . av ito . android . test . report . transport . No Op Transport Ċ import Ġcom . av ito . android . test . report . transport . Transport Ċ import Ġcom . av ito . file storage . Remote Storage Ċ import Ġcom . av ito . http . HttpClient Provider Ċ import Ġcom . av ito . logger . LoggerFactory Ċ import Ġcom . av ito . report . Test Artifacts Provider Ċ import Ġcom . av ito . report . serialize . Report Serializer Ċ import Ġcom . av ito . report viewer . Reports Api Factory Ċ import Ġcom . av ito . report viewer . model . Report Coordinates Ċ import Ġcom . av ito . test . model . Device Name Ċ import Ġcom . av ito . time . Time Provider Ċ Ċ class ĠReport Transport Factory ( ĊĠĠĠ Ġprivate Ġval Ġtime Provider : ĠTime Provider , ĊĠĠĠ Ġprivate Ġval Ġlogger Factory : ĠLoggerFactory , ĊĠĠĠ Ġprivate Ġval Ġremote Storage : ĠRemote Storage , ĊĠĠĠ Ġprivate Ġval ĠhttpClient Provider : ĠHttpClient Provider , ĊĠĠĠ Ġreport Serializer : ĠReport Serializer , ĊĠĠĠ Ġtest Artifacts Provider : ĠTest Artifacts Provider Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġexternal Storage Transport Ġ= ĠExternal Storage Transport ( ĊĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠ Ġlogger Factory Ġ= Ġlogger Factory , ĊĠĠĠĠĠĠĠ Ġtest Artifacts Provider Ġ= Ġtest Artifacts Provider , ĊĠĠĠĠĠĠĠ Ġreport Serializer Ġ= Ġreport Serializer ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠ Ġtest Run Coordinates : ĠReport Coordinates , ĊĠĠĠĠĠĠĠ Ġreport Destination : ĠReport Destination ĊĠĠĠ Ġ): ĠTransport Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġupload From Device Ġ= ĠAv ito Remote Storage Transport ( remote Storage , Ġtime Provider ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( report Destination ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠReport Destination . Backend Ġ-> ĠLocal Run Transport ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Viewer Url Ġ= Ġreport Destination . report Viewer Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Coordinates Ġ= Ġtest Run Coordinates , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Name Ġ= ĠDevice Name ( report Destination . device Name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Factory Ġ= Ġlogger Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreports Api Ġ= ĠReports Api Factory . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġreport Destination . report Api Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Factory Ġ= Ġlogger Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient Provider Ġ= ĠhttpClient Provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Storage Transport Ġ= Ġupload From Device ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠReport Destination . Legacy Ġ-> ĠLegacy Transport ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Storage Transport Ġ= Ġupload From Device , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Storage Transport Ġ= Ġexternal Storage Transport ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReport Destination . File Ġ-> Ġexternal Storage Transport ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReport Destination . No Op Ġ-> ĠNo Op Transport ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ