package Ġcom . ed ward stock . multip icker . internal Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Environment Ċ import Ġandroid . os . Parcelable Ċ import Ġandroidx . core . content . File Provider Ċ import Ġandroidx . core . net . to Uri Ċ import Ġcom . ed ward stock . multip icker . picker . Picker Const Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ @ Parcel ize Ċ class ĠP icker Save Path ( ĊĠĠĠĠĠĠĠ Ġvar Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġvar Ġis FullPath : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠParcel able Ġ{ ĊĠĠĠ Ġfun Ġto Uri File ( context : ĠContext ): ĠUri Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is FullPath ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFile ( path ). to Uri () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . get External Files Dir ( path ) !!. to Uri () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Uri Provider ( context : ĠContext ): ĠUri Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFile Provider . get Uri For File ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context . packageName Ġ+ ĠP icker Const . FILE _ PROVIDER _ AUTH ORITY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto File ( context ) !! ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto File ( context : ĠContext ): ĠFile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is FullPath ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFile ( path ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . get External Files Dir ( path ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT Ġ= ĠP icker Save Path (" Camera ", Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠTH UMB NA IL S Ġ= ĠP icker Save Path (". thumb nails ", Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Timestamp Tmp File ( context : ĠContext , Ġextension : ĠString , Ġprefix : ĠString Ġ= Ġ" camera _ "): ĠP icker Save Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġts Ġ= ĠDate (). time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstorage Dir Ġ= Ġcontext . get External Files Dir ( Environment . DIRECTORY _ PI CTURE S ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! storage Dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! storage Dir . mkdir s ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Unable Ġto Ġcreate Ġdirectory Ġ${ storage Dir . absolute Path }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠP icker Save Path ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile . create TempFile ("${ prefix }${ ts }", Ġ". ${ extension }", Ġstorage Dir ). absolute Path , Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }