@ file : Jvm Name (" RP ick Media ") Ċ Ċ package Ġpy x is . uz uki . live . rich util sk t . utils Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context Wrapper Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . app . Fragment Activity Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġpy x is . uz uki . live . rich util sk t . impl . F 2 Ċ import Ġpy x is . uz uki . live . rich util sk t . module . image . Orientation Fixer ĊĊ Ċ class ĠRP ick Media Ġprivate Ġconstructor () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Internal Storage : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġfix Photo Orientation : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval ĠPER MISSION _ ARRAY Ġ= ĠarrayOf ( Manifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE , ĠManifest . permission . CAMERA ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtitle : ĠString ĊĊĠĠĠ Ġprivate Ġfun ĠgetActivity ( context : ĠContext ): ĠFragment Activity ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġc Ġ= Ġcontext ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( c Ġis ĠContext Wrapper ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c Ġis ĠFragment Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ= Ġc . base Context ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠContext . request Permission ( listener : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠR Permission . instance . check Permission ( this , ĠPER MISSION _ ARRAY ) Ġ{ Ġcode , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . invoke ( code Ġ== ĠR Permission . PERMISSION _ GRAN TED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġenable Ġinternal Ġstorage Ġmode ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ is Internal ] Ġcapture ĠImage / Video Ġin Ġinternal Ġstorage ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Internal Storage ( is Internal : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Internal Storage Ġ= Ġis Internal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġenable Ġfixing Ġorientation ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ enable ] Ġfixing Ġorientation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Fix Photo Orientation ( enable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . fix Photo Orientation Ġ= Ġenable ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġset Ġtitle Ġof Ġmedia Ġwhen Ġcapture Ġusing ĠP ICK _ FROM _ CAMERA Ġand ĠP ICK _ FROM _ CAMERA _ VIDEO ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠsetTitle ( title : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠCamera ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Camera ( context : ĠContext , Ġcallback : Ġ( Int , ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ CAMERA , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠCamera ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Camera ( context : ĠContext , Ġcallback : ĠF 2 < Int , ĠString > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ CAMERA ) Ġ{ Ġcode , Ġuri Ġ-> Ġcallback ?. invoke ( code , Ġuri ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠGallery ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Gallery ( context : ĠContext , Ġcallback : Ġ( Int , ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ G ALL ERY , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠGallery ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Gallery ( context : ĠContext , Ġcallback : ĠF 2 < Int , ĠString > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ G ALL ERY ) Ġ{ Ġcode , Ġuri Ġ-> Ġcallback ?. invoke ( code , Ġuri ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠVideo ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Video ( context : ĠContext , Ġcallback : Ġ( Int , ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ VIDEO , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠVideo ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Video ( context : ĠContext , Ġcallback : ĠF 2 < Int , ĠString > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ VIDEO , Ġ{ Ġcode , Ġuri Ġ-> Ġcallback ?. invoke ( code , Ġuri ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠCamera Ġ( Video ĠMode ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Video Camera ( context : ĠContext , Ġcallback : Ġ( Int , ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ CAMERA _ VIDEO , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpick Ġimage Ġfrom ĠCamera Ġ( Video ĠMode ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param [ callback ] Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpick From Video Camera ( context : ĠContext , Ġcallback : ĠF 2 < Int , ĠString > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . request Permission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ request Permission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Photo Pick ( context , ĠP ICK _ FROM _ CAMERA _ VIDEO , Ġ{ Ġcode , Ġuri Ġ-> Ġcallback ?. invoke ( code , Ġuri ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent Photo Path : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcurrent Video Path : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Suppress Lint (" Valid Fragment ") ĊĠĠĠ Ġprivate Ġfun Ġrequest Photo Pick ( context : ĠContext , Ġpick Type : ĠInt , Ġcallback : Ġ( Int , ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġfm Ġ= ĠgetActivity ( context )?. support FragmentManager ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: title . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġnow DateString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( pick Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ICK _ FROM _ CAMERA Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠMedia Store . ACTION _ IMAGE _ CAPTURE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcapture Uri Ġ= Ġcreate Uri ( context , Ġfalse , Ġm Internal Storage , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Photo Path Ġ= Ġcapture Uri . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Media Store . EXTRA _ OUTPUT , Ġcapture Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ICK _ FROM _ G ALL ERY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠIntent . ACTION _ P ICK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġandroid . provider . Media Store . Images . Media . CONTENT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ICK _ FROM _ VIDEO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠIntent . ACTION _ P ICK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġandroid . provider . Media Store . Video . Media . CONTENT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ICK _ FROM _ CAMERA _ VIDEO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= ĠMedia Store . ACTION _ VIDEO _ CAPTURE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcapture Uri Ġ= Ġcreate Uri ( context , Ġtrue , Ġm Internal Storage , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Video Path Ġ= Ġcapture Uri . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Media Store . EXTRA _ OUTPUT , Ġcapture Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠResult Fragment ( fm Ġas ĠFragment Manager , Ġcallback , Ġcurrent Photo Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ"", Ġcurrent Video Path Ġ?: Ġ"") ĊĊĠĠĠĠĠĠĠ Ġfragment . fix Photo Orientation Ġ= Ġfix Photo Orientation ĊĊĠĠĠĠĠĠĠ Ġfm . beginTransaction (). add ( fragment , Ġ" FRAGMENT _ TAG "). commit Allow ing State Loss () ĊĠĠĠĠĠĠĠ Ġfm . execute Pending Transactions () ĊĊĠĠĠĠĠĠĠ Ġfragment . startActivity For Result ( intent , Ġpick Type ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress Lint (" Valid Fragment ") ĊĠĠĠ Ġclass ĠResult Fragment () Ġ: ĠFragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfm : ĠFragment Manager ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġcallback : Ġ(( Int , ĠString ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Photo Path Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Video Path Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġfix Photo Orientation : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġconstructor ( fm : ĠFragment Manager , Ġcallback : Ġ( Int , ĠString ) Ġ-> ĠUnit , Ġcurrent Photo Path : ĠString , Ġcurrent Video Path : ĠString ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fm Ġ= Ġfm ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . callback Ġ= Ġcallback ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . current Photo Path Ġ= Ġcurrent Photo Path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . current Video Path Ġ= Ġcurrent Video Path ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( callback Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġcallback !! Ġ// Ġimplicit Ġcast Ġto Ġnon - null Ġcause Ġchecking Ġpre - processing ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠActivity . RESULT _ OK Ġ|| Ġcontext Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġcontext !! Ġ// Ġimplicit Ġcast Ġto Ġnon - null Ġcause Ġchecking Ġpre - processing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġreal Path : ĠString ? Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠP ICK _ FROM _ CAMERA ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . parse ( current Photo Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path Ġ= Ġuri Ġget Real Path Ġcontext ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fix Photo Orientation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path Ġ= ĠOrientation Fixer . execute ( real Path , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( request Code Ġ== ĠP ICK _ FROM _ CAMERA _ VIDEO Ġ&& Ġdata Ġ!= Ġnull Ġ&& Ġdata . data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path Ġ= Ġdata . data . get Real Path ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( real Path . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path Ġ= ĠUri . parse ( current Video Path ) Ġget Real Path Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( request Code Ġ== ĠP ICK _ FROM _ CAMERA _ VIDEO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path Ġ= ĠUri . parse ( current Video Path ) Ġget Real Path Ġcontext ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( data Ġ!= Ġnull Ġ&& Ġdata . data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path Ġ= Ġdata . data . get Real Path ( context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fix Photo Orientation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path Ġ= ĠOrientation Fixer . execute ( real Path , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( real Path ?. isEmpty () Ġ!= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( P ICK _ FAILED , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( P ICK _ SUCCESS , Ġreal Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfm ?. beginTransaction ()?. remove ( this )?. commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġvar Ġinstance : ĠRP ick Media Ġ= ĠRP ick Media () ĊĊĠĠĠĠĠĠĠ Ġval ĠP ICK _ FROM _ CAMERA Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval ĠP ICK _ FROM _ G ALL ERY Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġval ĠP ICK _ FROM _ VIDEO Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġval ĠP ICK _ FROM _ CAMERA _ VIDEO Ġ= Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠP ICK _ SUCCESS Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠP ICK _ FAILED Ġ= Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ }