package Ġcom . mo ha ey o . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġokhttp 3 . RequestBody Ċ import Ġjava . io .* Ċ import Ġokhttp 3 . RequestBody . Companion . as RequestBody Ċ Ċ fun ĠFile . to Image RequestBody (): ĠRequest Body ĊĠĠĠĠĠĠĠ Ġ= Ġthis . as RequestBody ( Multipart Body . FORM ) Ċ Ċ fun ĠString . to File (): ĠFile Ġ= ĠFile ( this ) Ċ Ċ fun Ġcopy Stream ToFile ( context : ĠContext , Ġuri : ĠUri ): ĠFile Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= ĠFile ( ĊĠĠĠĠĠĠĠ Ġ"${ context . files Dir . path }/${ uri . path . hashCode ()}. png ") ĊĠĠĠ Ġcontext . content Resolver . open InputStream ( uri ). use Ġ{ Ġinput Ġ-> ĊĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= ĠFileOutputStream ( file ) ĊĠĠĠĠĠĠĠ ĠoutputStream . use Ġ{ Ġoutput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteArray ( 4 Ġ* Ġ 1 0 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbyte Count Ġ= Ġinput !!. read ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( byte Count Ġ< Ġ 0 ) Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . write ( buffer , Ġ 0 , Ġbyte Count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfile Ċ }