package Ġcom . qu an lv . music player . ui . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġcom . qu an lv . music player . R Ċ import Ġcom . qu an lv . music player . alert dialog . actions . Alert Item Action Ċ import Ġcom . qu an lv . music player . alert dialog . enums . Alert Item Theme Ċ import Ġcom . qu an lv . music player . databinding . Fragment Artist Binding Ċ import Ġcom . qu an lv . music player . extensions .* Ċ import Ġcom . qu an lv . music player . models . Artist Ċ import Ġcom . qu an lv . music player . ui . adapters . Artist Adapter Ċ import Ġcom . qu an lv . music player . ui . fragments . base . Base Fragment Ċ import Ġcom . qu an lv . music player . ui . view models . Artist ViewModel Ċ import Ġcom . qu an lv . music player . utils . Beat Constants Ċ import Ġcom . qu an lv . music player . utils . General Utils Ċ import Ġcom . qu an lv . music player . utils . Sort Modes . Artist Modes . Companion . AR TI ST _ AL BU M _ COUNT Ċ import Ġcom . qu an lv . music player . utils . Sort Modes . Artist Modes . Companion . AR TI ST _ A _ Z Ċ import Ġcom . qu an lv . music player . utils . Sort Modes . Artist Modes . Companion . AR TI ST _ SON G _ COUNT Ċ import Ġcom . qu an lv . music player . utils . Sort Modes . Artist Modes . Companion . AR TI ST _ Z _ A Ċ import Ġorg . k oin . android . ext . android . inject Ċ Ċ class ĠArtist Fragment Ġ: ĠBase Fragment < Artist >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġinject < Artist ViewModel >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Artist Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġartist Adapter : ĠArtist Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= Ġinflater . inflate With Binding ( R . layout . fragment _ artist , Ġcontainer ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġretain Instance Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsc Ġ= Ġif Ġ( General Utils . get Orientation ( safe Activity ) Ġ== ĠGeneral Utils . POR TRA IT ) Ġ 2 Ġelse Ġ 5 ĊĊĠĠĠĠĠĠĠ Ġartist Adapter Ġ= ĠArtist Adapter ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Header Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener Ġ= Ġthis @ Artist Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspan Count Ġ= Ġsc ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . list . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( context !! , Ġsc ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Size Lookup Ġ= Ġobject Ġ: ĠGrid LayoutManager . Span Size Lookup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Span Size ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( position Ġ== Ġ 0 ) Ġsc Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġartist Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . get Art ists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ! artist Adapter . artist List . deep Equals ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( this ) Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartist Adapter . update DataSet ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . viewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcreate Dialog () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Ġ= Ġbuild Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . sort _ title ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . sort _ msg ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. getString ( R . string . sort _ az ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ== ĠAR TI ST _ A _ Z , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Theme . DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . selected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ= ĠAR TI ST _ A _ Z ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. getString ( R . string . sort _ za ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ== ĠAR TI ST _ Z _ A , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Theme . DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . selected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ= ĠAR TI ST _ Z _ A ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. getString ( R . string . song _ count ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ== ĠAR TI ST _ SON G _ COUNT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Theme . DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . selected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ= ĠAR TI ST _ SON G _ COUNT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. getString ( R . string . album _ count ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ== ĠAR TI ST _ AL BU M _ COUNT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlert Item Theme . DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . selected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Utility . artist SortOrder Ġ= ĠAR TI ST _ AL BU M _ COUNT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView , Ġposition : ĠInt , Ġitem : ĠArtist ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity !!. add Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ host _ fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArtist Detail Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBe at Constants . AR TI ST _ DETAIL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle Of ( Beat Constants . AR TI ST _ KEY Ġto Ġitem . id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sort Click ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog . show ( activity Ġas ĠAppCompatActivity ) ĊĠĠĠ Ġ} Ċ } Ċ