package Ġcom . sh id . m ang alist . ui . discover Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . paging . Experimental Paging Api Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . sh id . m ang alist . MainActivity Ċ import Ġcom . sh id . m ang alist . R Ċ import Ġcom . sh id . m ang alist . databinding . Fragment Discovery Binding Ċ import Ġcom . sh id . m ang alist . utils . custom . Base Fragment Ċ import Ġcom . sh id . m ang alist . utils . custom . g one Ċ import Ġcom . sh id . m ang alist . utils . custom . visible Ċ import Ġcom . sh id . m ang alist . utils . enum . Season Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjava . util .* Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ @ Experimental Paging Api Ċ @ Android EntryPoint Ċ class ĠDis cover Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdiscover ViewModel : ĠDis cover ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠDis cover Adapter ĊĠĠĠ Ġprivate Ġvar Ġthis Year Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġloading : ĠView ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Discovery Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Discovery Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġbinding . root ĊĠĠĠĠĠĠĠ Ġinit Views ( root View ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Bottom Nav () ĊĠĠĠĠĠĠĠ Ġfix Action ActionBar () ĊĠĠĠĠĠĠĠ Ġloading Ġ= Ġview . findViewById ( R . id . loading ) ĊĠĠĠĠĠĠĠ Ġset Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠDis cover Adapter Ġ{ Ġid Ġ-> Ġshow Detail ( id ) Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . rv An ime Season . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfix Action ActionBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġ( activity Ġas ĠMainActivity ). findViewById < Constraint Layout >( R . id . container ) ĊĠĠĠĠĠĠĠ Ġview . fits System Windows Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġview . set Padding ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Bottom Nav () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbottom Nav Ġ= Ġ( activity Ġas ĠMainActivity ). findViewById < Bottom Navigation View >( R . id . nav _ view ) ĊĠĠĠĠĠĠĠ Ġbottom Nav . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġthis Year Ġ= ĠCalendar . getInstance ()[ Calendar . YEAR ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Detail ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . find Nav Controller () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( Discover Fragment Directions . action Navigation Discover To Detail An ime Fragment ( id )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . season _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġloading . visible () ĊĠĠĠĠĠĠĠ ĠsetTitle Season ( Season . SPR ING ) ĊĠĠĠĠĠĠĠ ĠsetData () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetData () Ġ{ ĊĠĠĠĠĠĠĠ Ġdiscover ViewModel . set Season ( this Year , ĠSe ason . SPR ING . value . toLowerCase ( Locale . ROOT )) ĊĊĠĠĠĠĠĠĠ Ġdiscover ViewModel . anime Season . observe ( view Lifecycle Owner , Ġ{ Ġan ime Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( anime . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . setData ( anime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading . g one () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġwith ( binding . rv An ime Season ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Paging Api ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ spring Ġ-> Ġrefresh List ( Season . SPR ING ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ summer Ġ-> Ġrefresh List ( Season . SUM MER ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ fall Ġ-> Ġrefresh List ( Season . FALL ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ w inter Ġ-> Ġrefresh List ( Season . W INTER ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġrefresh List ( season : ĠSe ason ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdiscover ViewModel . set Season ( this Year , Ġseason . value . toLowerCase ( Locale . ROOT )) ĊĠĠĠĠĠĠĠ ĠsetTitle Season ( season ) ĊĠĠĠĠĠĠĠ Ġdiscover ViewModel . anime Season . observe ( view Lifecycle Owner , Ġ{ Ġan ime Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( anime . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . setData ( anime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetTitle Season ( season : ĠSe ason ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon : ĠString ĊĠĠĠĠĠĠĠ Ġwhen Ġ( season ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSe ason . SPR ING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠString ( Character . to Chars ( 0 x 1 F 3 3 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). support ActionBar ?. title Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Season . SPR ING . value }$ icon Ġ~ Ġ$ this Year " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSe ason . SUM MER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠString ( Character . to Chars ( 0 x 1 F 3 1 E )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). support ActionBar ?. title Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Season . SUM MER . value }$ icon Ġ~ Ġ$ this Year " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSe ason . FALL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠString ( Character . to Chars ( 0 x 1 F 3 4 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). support ActionBar ?. title Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Season . FALL . value }$ icon Ġ~ Ġ$ this Year " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSe ason . W INTER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠString ( Character . to Chars ( 0 x 2 7 4 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). support ActionBar ?. title Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Season . W INTER . value }$ icon Ġ~ Ġ$ this Year " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }