package Ġcom . music player . a ow . ui . library . album ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Divider Item Decoration Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġbutter knife . B utter Kn ife Ċ Ċ import Ġcom . music player . a ow . R Ċ import Ġcom . music player . a ow . data . model . Song Ċ import Ġcom . music player . a ow . data . model . Temp S ongs Ċ import Ġcom . music player . a ow . ui . library . album . adapter . Album Adapter Ċ import Ġcom . music player . a ow . ui . library . album . model . Album Find Model Ċ import Ġcom . music player . a ow . ui . library . album . model . Album Model Ċ import Ġcom . music player . a ow . utils . Settings Ċ import Ġjava . util .* Ċ Ċ class ĠAlbum Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġvar Ġsong Model Data : ArrayList < Song >? Ġ= ĠArrayList () ĊĠĠĠ Ġvar Ġalbum Model Data : ĠArrayList < Album Model > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater !!. inflate ( R . layout . fragment _ album , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this , Ġview !! ) ĊĠĠĠĠĠĠĠ Ġm Album List Ġ= Ġview . findViewById ( R . id . album _ recycler _ views ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Album List : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Album Adapter : ĠAlbum Adapter ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġsongs List : List < Song >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġload Data (){ ĊĠĠĠĠĠĠĠ Ġsong Model Data Ġ= ĠTemp S ongs . instance !!. songs ĊĠĠĠĠĠĠĠ Ġif Ġ( song Model Data Ġ== Ġnull ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Album List !!. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} else Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Album List !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġalbum Name : ĠArrayList < Album Find Model >? Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsongs List Ġ= Ġsong Model Data !!. sorted With ( compare By ({ Ġ( it . album ) !!. toLowerCase () Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( album Ġin Ġsongs List !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfound In Album Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Name ?. forEach { e Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . album Ġ== Ġalbum . album ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound In Album Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( found In Album Ġ== Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Name ?. add ( Album Find Model ( album . album !! , Ġalbum . artist )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġalbum NotNull : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( album . path Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum NotNull Ġ= Ġalbum . path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Model Data . add ( Album Model ( album . album !! , Ġalbum . artist !! , Ġalbum NotNull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Album Adapter Ġ= ĠAlbum Adapter ( activity , Ġactivity , album Model Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Album List !!. adapter Ġ= Ġm Album Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Album List !!. layout Manager Ġ= ĠGrid LayoutManager ( activity , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Listener : Ġon Fragment Interaction Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġinterface Ġon Fragment Interaction Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Fragment Interaction ( uri : ĠUri ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Button Pressed ( uri : ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener !!. on Fragment Interaction ( uri ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis Ġon Fragment Interaction Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }