package Ġcom . ly te fast . flex input . utils Ċ Ċ import Ġandroid . content . Content Resolver Ċ import Ġandroid . net . Uri Ċ import Ġandroid . provider . Open able Columns Ċ Ċ import Ġcom . ly te fast . flex input . model . Attachment Ċ Ċ import Ġjava . io . File ĊĊ Ċ /** Ċ Ġ* Ġ@ author ĠSam ĠSh ih Ċ Ġ*/ Ċ object ĠFileUtils Ġ{ ĊĊĠ Ġ@ Jvm Static ĊĠ Ġfun ĠFile . to Attachment (): ĠAttachment < File > Ġ= ĊĠĠĠĠĠ ĠAttachment ( this . hashCode (). to Long (), ĠUri . from File ( this ), Ġthis . name , Ġthis ) ĊĊĠ Ġ@ Jvm Static ĊĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠ Ġfun ĠUri . get FileName ( content Resolver : ĠContent Resolver ): ĠString ? Ġ{ ĊĠĠĠ Ġwhen Ġ( this . scheme ) Ġ{ ĊĠĠĠĠĠ ĠContent Resolver . SCHEME _ FILE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( this . path Ġ?: Ġreturn Ġnull ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfile . name ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠContent Resolver . SCHEME _ CONTENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Resolver . query ( this , Ġnull , Ġnull , Ġnull , Ġnull )?. use Ġ{ Ġcursor Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcolumnIndex Ġ= Ġcursor . getColumnIndex ( Open able Columns . DISPLAY _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( column Index Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcursor . getString ( column Index ) Ġ?: Ġthis . last Path Segment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . last Path Segment ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġthis . last Path Segment ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Jvm Static ĊĠ Ġfun ĠFile . getFile Size (): ĠString Ġ{ ĊĠĠĠ Ġval Ġsize In Kb Ġ= Ġthis . length () Ġ/ Ġ 1 0 2 4 ĊĠĠĠ Ġif Ġ( size In Kb Ġ< Ġ 1 0 2 4 ) Ġ{ ĊĠĠĠĠĠ Ġreturn Ġ"$ size In Kb ĠKB " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsize In Mb Ġ= Ġsize In Kb Ġ/ Ġ 1 0 2 4 ĊĠĠĠ Ġif Ġ( size In Mb Ġ< Ġ 1 0 2 4 ) Ġ{ ĊĠĠĠĠĠ Ġreturn Ġ"$ size In Mb ĠMB " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsize In Gb Ġ= Ġsize In Mb Ġ/ Ġ 1 0 2 4 ĊĠĠĠ Ġreturn Ġ"$ size In Gb ĠGB " ĊĠ Ġ} Ċ } Ċ