package Ġcom . ak im ch enko . ant ony . medi ocr . fragments Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . hardware . camera 2 . Camera Character istics Ċ import Ġandroid . hardware . camera 2 . Camera Manager Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . content . File Provider Ċ import Ġandroidx . core . graphics . drawable . to Bitmap Ċ import Ġandroidx . core . net . to Uri Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġcom . ak im ch enko . ant ony . medi ocr . MainActivity Ċ import Ġcom . ak im ch enko . ant ony . medi ocr . R Ċ import Ġcom . ak im ch enko . ant ony . medi ocr . adapters . Main Fragment Adapter Ċ import Ġcom . ak im ch enko . ant ony . medi ocr . utils . AppSettings Ċ import Ġcom . ak im ch enko . ant ony . medi ocr . utils . Utils Ċ import Ġkotlinx . android . synt hetic . main . fragment _ main .* Ċ import Ġkotlinx . android . synt hetic . main . to obar _ progress _ bar .* Ċ import Ġkotlinx . android . synt hetic . main . toolbar .* Ċ import Ġjava . io . File ĊĊ Ċ @ Suppress Lint (" In lined Api ") Ċ class ĠMain Fragment Ġ: ĠBase Search Fragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġnew Photo File : ĠFile ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠITEM _ SETTINGS Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠITEM _ SORT _ TYPE _ DATE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠITEM _ SORT _ TYPE _ TITLE Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠMain Fragment Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ main , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity Ġas ĠMainActivity ? Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġactivity . getString ( R . string . app _ name ) ĊĠĠĠĠĠĠĠ Ġre cycler _ view . layout Manager Ġ= ĠGrid LayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġif Ġ( activity . resources . configuration . orientation Ġ== ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration . OR IENTATION _ POR TRA IT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ 2 Ġelse Ġ 3 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMain Fragment Adapter ( this ) ĊĠĠĠĠĠĠĠ Ġre cycler _ view . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġcamera _ button . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . make Selector ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( activity , ĠR . drawable . camera _ button ) !!. to Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġgallery _ button . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . make Selector ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . gallery _ button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) !!. to Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcamera _ button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġgallery _ button . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ProgressBar ( isVisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress _ bar . visibility Ġ= Ġif Ġ( isVisible ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġhint . visibility Ġ= Ġif Ġ( adapter Ġ!= Ġnull Ġ&& Ġadapter !!. item Count Ġ> Ġ 0 ) ĠView . GONE Ġelse ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?, Ġinflater : ĠMenu Inflater ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġmenu ?. add ( 0 , ĠITEM _ SETTINGS , Ġmenu . size (), ĠR . string . settings )?. setIcon ( R . drawable . settings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set Show As Action ( MenuItem . SHOW _ AS _ ACTION _ IF _ ROOM ) ĊĠĠĠĠĠĠĠ Ġmenu ?. add ( 0 , ĠITEM _ SORT _ TYPE _ TITLE , Ġmenu . size (), ĠR . string . sort _ by _ name )?. setIcon ( R . drawable . sort _ alphabet ically ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set Show As Action ( MenuItem . SHOW _ AS _ ACTION _ IF _ ROOM ) ĊĠĠĠĠĠĠĠ Ġmenu ?. add ( 0 , ĠITEM _ SORT _ TYPE _ DATE , Ġmenu . size (), ĠR . string . sort _ by _ date )?. setIcon ( R . drawable . sort _ by _ date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set Show As Action ( MenuItem . SHOW _ AS _ ACTION _ IF _ ROOM ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Query Text Submit ( query : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Query Text Change ( new Text : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter ?. set Search Query ( new Text ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity Ġas ĠMainActivity ? Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item ?. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠITEM _ SETTINGS Ġ-> Ġactivity . push Fragment ( Settings Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠITEM _ SORT _ TYPE _ TITLE Ġ-> ĠApp Settings . saved Files Sorted Alphabet ically Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠITEM _ SORT _ TYPE _ DATE Ġ-> ĠApp Settings . saved Files Sorted Alphabet ically Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġadapter ?. resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġadapter ?. pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity Ġas ĠMainActivity ? Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera _ button Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . request Permissions ( array Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . CAMERA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . READ _ WRITE _ CAMERA _ REQUEST _ CODE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠMainActivity . On Request Permission Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Returned ( is Granted : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Granted ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP Ġ&& ĠApp Settings . use Application Camera ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Utils . is Camera 2 API Supported ( activity )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . push Fragment ( Camera Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Camera Intent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Camera Intent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . getString ( R . string . you _ need _ to _ allow _ permissions _ read _ write _ camera ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgallery _ button Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . request Permissions ( array Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĠUtils . READ _ WRITE _ G ALL ERY _ REQUEST _ CODE , Ġobject Ġ: ĠMainActivity . On Request Permission Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Returned ( is Granted : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Granted ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Gallery Chooser Intent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . getString ( R . string . you _ need _ to _ allow _ permissions _ read _ write ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Camera Intent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity Ġas ĠMainActivity ? Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ ĠIntent ( Media Store . ACTION _ IMAGE _ CAPTURE ). also Ġ{ Ġtake Picture Intent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture Intent . resolve Activity ( activity . package Manager )?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Photo File Ġ= Ġactivity . getFile For Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new Photo File !!. exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Photo File !!. createNew File () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Photo File !!. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠFile Provider . get Uri For File ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . application Context . packageName Ġ+ Ġ". provider ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Photo File !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture Intent . putExtra ( Media Store . EXTRA _ OUTPUT , Ġuri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( take Picture Intent , ĠUtils . CAPTURE _ IMAGE _ REQUEST _ CODE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġre cycler _ view . layout Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGrid LayoutManager ( activity , Ġif Ġ( new Config ?. orientation Ġ== ĠConfiguration . OR IENTATION _ POR TRA IT ) Ġ 2 Ġelse Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Gallery Chooser Intent () Ġ{ ĊĠĠĠĠĠĠĠ ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . action Ġ= ĠIntent . ACTION _ GET _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( Intent . create Chooser ( this , Ġnull ), ĠUtils . G ALL ERY _ CH OO SER _ REQUEST _ CODE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity Ġas ĠMainActivity ? Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . CAPTURE _ IMAGE _ REQUEST _ CODE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġnew Photo File Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . push Fragment ( Preview Fragment (). also Ġ{ Ġfragment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= ĠBundle (). also Ġ{ Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreview Fragment . ARG _ IMAGE _ FILE _ URI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Photo File !!. to Uri (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . G ALL ERY _ CH OO SER _ REQUEST _ CODE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġdata ?. data Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . push Fragment ( Preview Fragment (). also Ġ{ Ġfragment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= ĠBundle (). also Ġ{ Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreview Fragment . ARG _ IMAGE _ FILE _ URI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuri . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }