package Ġbr . com . b rol am . cloud vision . helpers Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . os . Environment Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . support . v 4 . content . File Provider Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġb ren om ar ques Ġon Ġ 0 6 / 0 1 / 2 0 1 8 . Ċ Ġ* Ċ Ġ*/ Ċ Ċ interface ĠImage Picker Delegate Ġ{ ĊĠĠĠ Ġfun Ġon Pick ed One Image ( pi ked Bitmap : ĠBitmap ): ĠBoolean Ċ } Ċ Ċ class ĠImage Picker ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrequest Code Capture : ĠInt , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrequest Code Select : ĠInt , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimage Width And Height : ĠFloat Ġ= Ġ 1 2 0 0 f Ġ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtemp Picture Ġ= Ġ" temp Picture " ĊĠĠĠ Ġprivate Ġval Ġfile Provider Ġ= Ġ" br . com . b rol am . cloud vision . file provider " ĊĊĠĠĠ Ġfun Ġselect One Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgallery Intent Ġ= ĠIntent ( Intent . ACTION _ P ICK , ĠMedia Store . Images . Media . EXTERNAL _ CONTENT _ URI ) ĊĠĠĠĠĠĠĠ Ġthis . activity . startActivity For Result ( gallery Intent , Ġrequest Code Select ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcapture One Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtake Picture Intent Ġ= ĠIntent ( Media Store . ACTION _ IMAGE _ CAPTURE ) ĊĠĠĠĠĠĠĠ Ġval Ġpicture File Output Ġ= Ġcreate Temp Picture Uri () ĊĠĠĠĠĠĠĠ Ġval Ġpicture Uri Output Ġ= ĠFile Provider . get Uri For File ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpicture File Output ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( take Picture Intent . resolve Activity ( this . activity . package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture Intent . putExtra ( Media Store . EXTRA _ OUTPUT , Ġpicture Uri Output ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . activity . startActivity For Result ( take Picture Intent , Ġrequest Code Capture ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse Activity For Result ( delegate : ĠImage Picker Delegate , Ġrequest Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠActivity . RESULT _ OK ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== Ġthis . request Code Select Ġ&& Ġdata Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġp ik ed Bitmap Ġ= Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Code Capture Ġ-> ĠBitmap Factory . decode File ( get Temp Picture Uri ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Code Select Ġ-> ĠMedia Store . Images . Media . get Bitmap ( this . activity . content Resolver , Ġdata !!. data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( pi ked Bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate . on Pick ed One Image ( Image Util ( activity ). resize Image ( pi ked Bitmap , Ġthis . image Width And Height )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Temp Picture Uri (): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFile ( get Temp Picture Uri ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Temp Picture Uri (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstorage Dir Ġ= Ġthis . activity . get External Files Dir ( Environment . DIRECTORY _ PI CTURE S ) ĊĠĠĠĠĠĠĠ Ġreturn Ġstorage Dir . absolute Path Ġ+ Ġ"/" Ġ+ Ġtemp Picture Ġ+ Ġ". jpg " ĊĠĠĠ Ġ} Ċ Ċ } Ċ