package Ġcom . jos hu acer den ia . android . nice feed . ui . fragment Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . jos hu acer den ia . android . nice feed . R Ċ import Ġcom . jos hu acer den ia . android . nice feed . data . local . N ice Feed Preferences Ċ import Ġcom . jos hu acer den ia . android . nice feed . ui . adapter . Feed ListAdapter Ċ import Ġcom . jos hu acer den ia . android . nice feed . ui . view model . Feed List ViewModel Ċ import Ġcom . jos hu acer den ia . android . nice feed . util . extensions . add R ipple Ċ import Ġcom . jos hu acer den ia . android . nice feed . util . extensions . hide Ċ import Ġcom . jos hu acer den ia . android . nice feed . util . extensions . show Ċ Ċ class ĠFeed List Fragment : ĠVis ible Fragment (), ĠFeed ListAdapter . On ItemClickListener Ġ{ ĊĊĠĠĠ Ġinterface ĠCallback s Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon MenuItem Selected ( item : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Feed Selected ( feed Id : ĠString , Ġactive Feed Id : ĠString ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠFeed List ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmanage Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadd Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnew Entries Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstar red Entries Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsettings Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbottom Divider : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠFeed ListAdapter ĊĊĠĠĠ Ġprivate Ġvar Ġcallbacks : ĠCallback s ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler () ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġcallbacks Ġ= Ġcontext Ġas ĠCallback s ? ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this ). get ( Feed List ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . set Feed Order ( N ice Feed Preferences . get Feed s Order ( require Context ())) ĊĠĠĠĠĠĠĠ ĠviewModel . set Min im ized Categories ( N ice Feed Preferences . getMin im ized Categories ( require Context ())) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠFeed ListAdapter ( context , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ feed _ list , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġmanage Button Ġ= Ġview . findViewById ( R . id . manage _ button ) ĊĠĠĠĠĠĠĠ Ġadd Button Ġ= Ġview . findViewById ( R . id . add _ button ) ĊĠĠĠĠĠĠĠ Ġnew Entries Button Ġ= Ġview . findViewById ( R . id . recent _ entries _ button ) ĊĠĠĠĠĠĠĠ Ġstar red Entries Button Ġ= Ġview . findViewById ( R . id . star red _ entries _ button ) ĊĠĠĠĠĠĠĠ Ġsettings Button Ġ= Ġview . findViewById ( R . id . settings _ button ) ĊĠĠĠĠĠĠĠ Ġbottom Divider Ġ= Ġview . findViewById ( R . id . bottom _ divider ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġview . findViewById ( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel . feed List LiveData . observe ( view Lifecycle Owner , Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Entries Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstar red Entries Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanage Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Divider . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Entries Button . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstar red Entries Button . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanage Button . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Divider . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Active Feed Id ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġmanage Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallbacks ?. on MenuItem Selected ( ITEM _ MANAGE _ FEED S ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallbacks ?. on MenuItem Selected ( ITEM _ ADD _ FEED S ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnew Entries Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallbacks ?. on Feed Selected ( Entry List Fragment . FOLDER _ NEW , ĠviewModel . active Feed Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġstar red Entries Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallbacks ?. on Feed Selected ( Entry List Fragment . FOLDER _ STAR RED , ĠviewModel . active Feed Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsettings Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallbacks ?. on MenuItem Selected ( ITEM _ SETTINGS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ ĠviewModel . set Feed Order ( N ice Feed Preferences . get Feed s Order ( require Context ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Feed Selected ( feed Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Folder Highlight s () ĊĠĠĠĠĠĠĠ Ġcallbacks ?. on Feed Selected ( feed Id , ĠviewModel . active Feed Id ) ĊĠĠĠĠĠĠĠ ĠviewModel . active Feed Id Ġ= Ġfeed Id ĊĠĠĠĠĠĠĠ Ġhandler . post Delayed ({ Ġre cyclerView . adapter Ġ= Ġadapter Ġ}, Ġ 5 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Category Clicked ( category : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . toggle Category DropDown ( category ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Active Feed Id ( feed Id : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Folder Highlight s () ĊĠĠĠĠĠĠĠ ĠviewModel . active Feed Id Ġ= Ġfeed Id ĊĠĠĠĠĠĠĠ Ġadapter . setActive Feed Id ( feed Id ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠContext Compat . getColor ( context , ĠR . color . color Select ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( feed Id Ġ== ĠEntry List Fragment . FOLDER _ NEW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Entries Button . set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( feed Id Ġ== ĠEntry List Fragment . FOLDER _ STAR RED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstar red Entries Button . set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset Folder Highlight s () Ġ{ ĊĠĠĠĠĠĠĠ Ġstar red Entries Button . add R ipple () ĊĠĠĠĠĠĠĠ Ġnew Entries Button . add R ipple () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Categories (): ĠArray < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠviewModel . categories ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNice Feed Preferences . save Min im ized Categories ( context , ĠviewModel . minim ized Categories ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġcallbacks Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠITEM _ MANAGE _ FEED S Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠITEM _ ADD _ FEED S Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠITEM _ SETTINGS Ġ= Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠFeed List Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFeed List Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }