package Ġmust af ao zh an . github . com . simple phot og allery . ui . activities Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . widget . Drawer Layout Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Abs ListView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . main _ content .* Ċ import Ġmust af ao zh an . github . com . simple phot og allery . R Ċ import Ġmust af ao zh an . github . com . simple phot og allery . model . Album s Ċ import Ġmust af ao zh an . github . com . simple phot og allery . ui . adapters . Album Folders Adapter Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠAlbum Folders Adapter . I On Item Click Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Name Ġ= ĠsavedInstanceState . getString (" folder Name ") ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( my _ toolbar ) ĊĠĠĠĠĠĠĠ Ġ// ĠEnable Ġthe ĠUp Ġbutton ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Home As Up Indicator ( resources . get Drawable ( R . drawable . menu )) ĊĊĠĠĠĠĠĠĠ Ġsetup Navigation View () ĊĊĠĠĠĠĠĠĠ Ġval Ġextra Ġ= Ġintent . extras ĊĠĠĠĠĠĠĠ Ġif Ġ( extra Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextra Data Ġ= Ġextra . get (" image _ url _ data ") Ġas ĠArrayList < Album s > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Fragment ( extra Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdrawer Layout Listener () ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. title Ġ= Ġ" Folders " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( position : ĠString , Ġis Video : ĠBoolean ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġbundle . putString (" folder Name ", Ġposition ) ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠAlbum Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" folder Name ", Ġposition ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġfolder Name : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġprivate Ġfun Ġselect Fragment ( images List : ĠArrayList < Album s >) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . RESOURCE ). override ( 1 6 0 , Ġ 1 6 0 ). skip Memory Cache ( true ). error ( R . drawable . camera ) ĊĠĠĠĠĠĠĠ Ġval Ġg lide Ġ= ĠG lide . with ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġg lide . as Bitmap () ĊĠĠĠĠĠĠĠ Ġrv Album s ?. layout Manager Ġ= ĠGrid LayoutManager ( this , Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġrv Album s ?. set Has Fixed Size ( true ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAlbum Folders Adapter . kt Ġis ĠRecyclerView ĠAdapter Ġclass . Ġwe Ġwill Ġimplement Ġshortly . ĊĠĠĠĠĠĠĠ Ġrv Album s ?. adapter Ġ= ĠAlbum Folders Adapter ( images List , Ġbuilder , Ġthis ) ĊĊĊĠĠĠĠĠĠĠ Ġrv Album s ?. add On Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll StateChanged ( re cyclerView : ĠRecyclerView ?, ĠnewState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Scroll StateChanged ( re cyclerView , ĠnewState ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( newState ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRecyclerView . SCROLL _ STATE _ IDLE Ġ-> Ġg lide . resume Requests () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAbs ListView . On Scroll Listener . SCROLL _ STATE _ TO UCH _ SCROLL , ĠAbs ListView . On Scroll Listener . SCROLL _ STATE _ FL ING Ġ-> Ġg lide . pause Requests () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfab _ camera ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġlaunch Camera () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġdrawer Ġlayout Ġclick Ġlistener Ġin ĠKotlin Ġsource Ġcode . ĊĠĠĠ Ġprivate Ġfun Ġdrawer Layout Listener () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġdrawer _ layout . add Drawer Listener ( object Ġ: ĠDraw er Layout . Drawer Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Slide ( drawer View : ĠView , Ġslide Offset : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Closed ( drawer View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Opened ( drawer View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer StateChanged ( newState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠNavigation Ġitem Ġclick Ġlistener ĠKotlin Ġsource Ġcode . ĊĠĠĠ Ġprivate Ġfun Ġsetup Navigation View () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġnavigation . set Navigation ItemSelected Listener Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ all _ folders Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ hidden _ folders Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ