package Ġcom . b ree z ef s md sm . features . settings . presentation Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . app . Time Picker Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . b ree z ef s md sm . R Ċ import Ġcom . b ree z ef s md sm . base . presentation . Base Fragment Ċ import Ġcom . b ree z ef s md sm . features . change password . presentation . Change Password Dialog Ċ import Ġcom . b ree z ef s md sm . widgets . App Custom TextView Ċ import Ġandroid . content . Context Ċ import Ġjava . util .* Ċ import Ġandroid . app . Time Picker Dialog . On Time Set Listener Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Environment Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . File Provider Ċ import Ġcom . b ree z ef s md sm . app . Pref Ċ import Ġcom . b ree z ef s md sm . app . utils . Auto Start Helper Ċ import Ġcom . b ree z ef s md sm . app . utils . Permission Utils Ċ import Ġcom . b ree z ef s md sm . features . dashboard . presentation . Dashboard Activity Ċ import Ġcom . fasterxml . jackson . databind . util . Class Util . get PackageName Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠPr at ish rut i Ġon Ġ 3 1 - 1 0 - 2 0 1 7 . Ċ Ġ*/ Ċ class ĠSettings Fragment Ġ: ĠBase Fragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠmContext : ĠContext ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ auto _ start : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ over _ other _ apps : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ camera : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ loc : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ phone : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ gallery : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ audio : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ cal ender : ĠCard View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġll _ settings _ main : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv _ open Cam : ĠCard View ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ settings , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠĠĠĠĠ Ġinit ClickListener () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ auto _ start Ġ= ĠfindViewById ( R . id . cv _ auto _ start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ over _ other _ apps Ġ= ĠfindViewById ( R . id . cv _ over _ other _ apps ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ camera Ġ= ĠfindViewById ( R . id . cv _ camera ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ loc Ġ= ĠfindViewById ( R . id . cv _ loc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ phone Ġ= ĠfindViewById ( R . id . cv _ phone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ gallery Ġ= ĠfindViewById ( R . id . cv _ gallery ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ audio Ġ= ĠfindViewById ( R . id . cv _ audio ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ cal ender Ġ= ĠfindViewById ( R . id . cv _ cal ender ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll _ settings _ main Ġ= ĠfindViewById ( R . id . ll _ settings _ main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv _ open Cam Ġ= ĠfindViewById ( R . id . cv _ open _ cam ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġcv _ auto _ start . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ open Cam . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ over _ other _ apps . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ camera . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ loc . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ phone . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ gallery . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ audio . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġcv _ cal ender . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġll _ settings _ main . setOnClickListener ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( p 0 : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( p 0 ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ auto _ start Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuto Start Helper . instance . get Auto Start Permission ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ over _ other _ apps Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M Ġ/* && Ġ! Settings . can Draw Overlay s ( this ) */) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Settings . ACTION _ MANAGE _ OVER LAY _ PERMISSION , ĠUri . parse (" package :${ mContext . packageName } ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ camera Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen App Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ loc Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen App Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ phone Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen App Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ gallery Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen App Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ audio Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen App Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ cal ender Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen App Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cv _ open _ cam ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Permission Check () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen App Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Settings . ACTION _ APPLICATION _ DETAILS _ SETTINGS ) ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . from Parts (" package ", ĠmContext . packageName , Ġnull ) ĊĠĠĠĠĠĠĠ Ġintent . data Ġ= Ġuri ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġpermission Utils : ĠPermission Utils ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġfun Ġinit Permission Check () Ġ{ ĊĠĠĠĠĠĠĠ Ġpermission Utils Ġ= ĠPermission Utils ( mContext Ġas ĠActivity , Ġobject Ġ: ĠPermission Utils . On Permission Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproceed Process () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Not Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . accept _ permission )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, ĠarrayOf < String >( Manifest . permission . CAMERA , ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Request Permission ( request Code : ĠInt , Ġpermissions : ĠArray < String >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpermission Utils ?. on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġproceed Process (){ ĊĠĠĠĠĠĠĠ Ġcapture Image () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġvar ĠmCurrent Photo Path : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar ĠfilePath : ĠString Ġ= Ġ"" ĊĠĠĠ Ġfun Ġcapture Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtake Picture Intent Ġ= ĠIntent ( Media Store . ACTION _ IMAGE _ CAPTURE ) ĊĠĠĠĠĠĠĠ Ġif Ġ( take Picture Intent . resolve Activity ( mContext . package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġphoto File : ĠFile ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphoto File Ġ= Ġcreate Image File () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( photo File Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphoto URI : ĠUri Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Provider . get Uri For File ( mContext , ĠmContext . packageName Ġ+ Ġ". provider ", Ġphoto File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . from File ( photo File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Photo Path Ġ= Ġ" file :" Ġ+ Ġphoto File . absolute Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture Intent . putExtra ( Media Store . EXTRA _ OUTPUT , Ġphoto URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture Intent . putExtra (" android . intent . extras . CAMERA _ F ACING ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture Intent . add Flags ( Intent . FLAG _ GRANT _ READ _ URI _ PERMISSION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( take Picture Intent , Ġ 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠError Ġoccurred Ġwhile Ġcreating Ġthe ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Image File (): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage FileName Ġ= Ġ" field track ings ystem " Ġ+ Ġ Ġ/* Calendar . getInstance ( Locale . EN GL ISH ). time */ Ġjava . util . UUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġ// val Ġstorage Dir Ġ= ĠFile ( Environment . get External Storage Directory (). toString () Ġ+ ĠFile . separator Ġ+ Ġ" field track ings ystem " Ġ+ ĠFile . separator ) ĊĠĠĠĠĠĠĠ Ġval Ġstorage Dir Ġ= ĠFile ( Environment . get External Storage Public Directory ( Environment . DIRECTORY _ DOWNLOAD S ). toString () Ġ+ ĠFile . separator Ġ+ Ġ" field track ings ystem " Ġ+ ĠFile . separator ) ĊĠĠĠĠĠĠĠ Ġstorage Dir . mkdir s () ĊĠĠĠĠĠĠĠ Ġreturn ĠFile . create TempFile ( image FileName , Ġ/* Ġprefix Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ". jpg ", Ġ/* Ġsuffix Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Dir Ġ/* Ġdirectory Ġ*/ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Camera Image ( data ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Image ( filePath ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Camera Image ( data : ĠIntent ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġis Camera : ĠBoolean ĊĠĠĠĠĠĠĠ Ġis Camera Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġdata . action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ== Ġandroid . provider . Media Store . ACTION _ IMAGE _ CAPTURE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĊĠĠĠĠĠĠĠ Ġvar Ġselected Image Uri : ĠUri ? ĊĠĠĠĠĠĠĠ Ġif Ġ( is Camera ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Uri Ġ= ĠUri . parse ( m Current Photo Path ) Ġ// ĠoutputFile Uri ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠoutputFile Uri Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Uri Ġ= Ġdata ?. data ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( selected Image Uri Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Uri Ġ= ĠUri . parse ( m Current Photo Path ) ĊĠĠĠĠĠĠĠ Ġval Ġfile manager string Ġ= Ġselected Image Uri !!. path ĊĊĠĠĠĠĠĠĠ Ġval Ġselected Image Path Ġ= ĠgetPath ( mContext Ġas ĠActivity , Ġselected Image Uri ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Path Ġ!= Ġnull Ġ-> ĠfilePath Ġ= Ġselected Image Path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile manager string Ġ!= Ġnull Ġ-> ĠfilePath Ġ= Ġfile manager string ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetPath ( m Activity : ĠActivity , Ġuri : ĠUri ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprojection Ġ= ĠarrayOf ( Media Store . Images . Media . DATA ) ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġm Activity . managed Query ( uri , Ġprojection , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cursor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHERE ĠYOU ĠWILL ĠGET ĠA ĠNULL POINTER ĠIF ĠCUR SOR ĠIS ĠNULL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTHIS ĠCAN ĠBE , ĠIF ĠYOU ĠUSE D ĠO I ĠFILE ĠMAN AGER ĠFOR ĠP ICK ING ĠTHE ĠMED IA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolumn _ index Ġ= Ġcursor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getColumnIndex OrThrow ( Media Store . Images . Media . DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcursor . getString ( column _ index ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image ( filePath : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( filePath ) ĊĠĠĠĠĠĠĠ Ġvar Ġnew File : ĠFile ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġget Bitmap ( filePath ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Bitmap ( path : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFile ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions : ĠBitmap Factory . Options Ġ= ĠBitmap Factory . Options () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . in Preferred Config Ġ= ĠBitmap . Config . ARGB _ 8 8 8 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Ġ= ĠBitmap Factory . decode Stream ( FileInputStream ( f ), Ġnull , Ġoptions ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsimple Dialog Ġ= ĠDialog ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . getWindow () !!. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . set ContentView ( R . layout . dialog _ message _ iv ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiv _ dialog _ msg Ġ= Ġsimple Dialog . findViewById ( R . id . iv _ dialog _ msg ) Ġas ĠImageView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġok Btn Ġ= Ġsimple Dialog . findViewById ( R . id . tv _ message _ ok ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ dialog _ msg . setImage Bitmap ( bitmap ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġok Btn . setOnClickListener ({ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . show () ĊĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }