/* Ċ Ġ* Ġ@ copyright Ġ: ĠTo X SL ĠTechnologies ĠP vt . ĠLtd . Ġ< Ġwww . to xsl . com Ġ> Ċ Ġ* Ġ@ author ĠĠĠĠ Ġ: ĠSh iv ĠChar an ĠPan jeta Ġ< Ġsh iv @ to xsl . com Ġ> Ċ Ġ* ĠAll ĠRights ĠReserved . Ċ Ġ* ĠPro pri etary Ġand Ġconf idential Ġ: Ġ ĠAll Ġinformation Ġcontained Ġherein Ġis , Ġand Ġremains Ċ Ġ* Ġthe Ġproperty Ġof ĠTo X SL ĠTechnologies ĠP vt . ĠLtd . Ġand Ġits Ġpart ners . Ċ Ġ* ĠUnauthorized Ġcopying Ġof Ġthis Ġfile , Ġvia Ġany Ġmedium Ġis Ġstrictly Ġpro hibited . Ċ Ġ*/ Ċ Ċ package Ġcom . to xsl . rest ful Client . api Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . provider . Media Store Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġokhttp 3 . RequestBody Ċ import Ġokhttp 3 . MediaType Ċ import Ġjava . io . File ĊĊ Ċ class ĠCreate Multipart List Map ( val Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġfun Ġprepare File Part ( file HashMap : ĠHashMap < String , ĠUri >): ĠMutable List < Multipart Body . Part >? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlist : ĠMutable List < Multipart Body . Part >? Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( mutable Entry Ġin Ġfile HashMap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Entry . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġuse Ġthe ĠFileUtils Ġto Ġget Ġthe Ġactual Ġfile Ġby Ġuri ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( getPath From Uri ( mutable Entry . value )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcreate ĠRequest Body Ġinstance Ġfrom Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest File Ġ= ĠRequest Body . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . parse ( context . content Resolver . getType ( mutable Entry . value ) !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMultip art Body . Part Ġis Ġused Ġto Ġsend Ġalso Ġthe Ġactual Ġfile Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist ?. add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMultip art Body . Part . create FormData ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Entry . key , Ġfile . getName (), Ġrequest File ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress Lint (" Re cycle ") ĊĠĠĠ Ġfun ĠgetPath From Uri ( uri : ĠUri ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfilePath Column Ġ= ĠarrayOf ( Media Store . Images . Media . DATA ) ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġcontext . content Resolver . query ( uri , ĠfilePath Column , Ġnull , Ġnull , Ġnull ) !! ĊĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠ Ġval ĠcolumnIndex Ġ= Ġcursor . getColumnIndex ( filePath Column [ 0 ]) ĊĠĠĠĠĠĠĠ Ġreturn Ġcursor . getString ( column Index ) ĊĠĠĠ Ġ} ĊĊ Ċ }