/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġcopyright Ġeast ar ĠJe ong Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ ĊĊ Ċ package Ġdev . east ar . gallery loader . demo Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . log . Log Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġdev . east ar . gallery loader . Gallery Loader Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠContext ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ ĠLog . LOG Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġ" Copyright Ġ 2 0 1 6 ĠEast ar ĠJe ong ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction (" Action ", Ġnull ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ ĠG ALL ERY _ LOAD ER _ BY _ CAMERA . setOnClickListener Ġ{ ĠG ALL ERY _ LOAD ER _ BY _ CAMERA () Ġ} ĊĠĠĠĠĠĠĠ ĠG ALL ERY _ LOAD ER _ BY _ G ALL ERY . setOnClickListener Ġ{ ĠG ALL ERY _ LOAD ER _ BY _ G ALL ERY () Ġ} ĊĠĠĠĠĠĠĠ ĠG ALL ERY _ LOAD ER _ BY _ CAMERA _ C ROP . setOnClickListener Ġ{ ĠG ALL ERY _ LOAD ER _ BY _ CAMERA _ C ROP () Ġ} ĊĠĠĠĠĠĠĠ ĠG ALL ERY _ LOAD ER _ BY _ G ALL ERY _ C ROP . setOnClickListener Ġ{ ĠG ALL ERY _ LOAD ER _ BY _ G ALL ERY _ C ROP () Ġ} ĊĠĠĠĠĠĠĠ ĠG ALL ERY _ LOAD ER _ BY _ SELECT _ C ROP . setOnClickListener Ġ{ ĠG ALL ERY _ LOAD ER _ BY _ SELECT _ C ROP () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> ĠstartActivity ( Intent ( Settings . ACTION _ APPLICATION _ DETAILS _ SETTINGS , ĠUri . parse (" package :$ packageName ")) ). let Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠG ALL ERY _ LOAD ER _ BY _ CAMERA () Ġ{ ĊĠĠĠĠĠĠĠ ĠGallery Loader . builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Source ( Gallery Loader . EXTRA _ SOURCE _ CAMERA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Gallery Loaded Listener ( this :: setImage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Cancel Listener Ġ{ ĠLog . toast ( activity , Ġ" c anceled ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠG ALL ERY _ LOAD ER _ BY _ G ALL ERY () Ġ{ ĊĠĠĠĠĠĠĠ ĠGallery Loader . builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Source ( Gallery Loader . EXTRA _ SOURCE _ G ALL ERY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Gallery Loaded Listener ( this :: setImage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Cancel Listener Ġ{ ĠLog . toast ( activity , Ġ" c anceled ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠG ALL ERY _ LOAD ER _ BY _ CAMERA _ C ROP () Ġ{ ĊĠĠĠĠĠĠĠ ĠGallery Loader . builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Source ( Gallery Loader . EXTRA _ SOURCE _ CAMERA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Gallery Loaded Listener ( this :: setImage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Cancel Listener Ġ{ ĠLog . toast ( activity , Ġ" c anceled ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠG ALL ERY _ LOAD ER _ BY _ G ALL ERY _ C ROP () Ġ{ ĊĠĠĠĠĠĠĠ ĠGallery Loader . builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Source ( Gallery Loader . EXTRA _ SOURCE _ G ALL ERY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Gallery Loaded Listener ( this :: setImage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Cancel Listener Ġ{ ĠLog . toast ( activity , Ġ" c anceled ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠG ALL ERY _ LOAD ER _ BY _ SELECT _ C ROP () Ġ{ ĊĠĠĠĠĠĠĠ ĠGallery Loader . builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Gallery Loaded Listener ( this :: setImage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Cancel Listener Ġ{ ĠLog . toast ( activity , Ġ" c anceled ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Image ( uri : ĠUri ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġuri . toString (), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġuri . toString () ĊĠĠĠĠĠĠĠ Ġimage . setImage URI ( uri ) ĊĠĠĠĠĠĠĠ ĠLog . e ( uri ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ