package Ġcom . shark ab oi . media hub . modules . anime _ ranking . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġandroidx . paging . Load State Ċ import Ġandroidx . recyclerview . widget . Default Item Animator Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġcom . google . android . material . chip . Chip Ċ import Ġcom . shark ab oi . media hub . common . constants . UI Constants . set Media Hub Chip Style Ċ import Ġcom . shark ab oi . media hub . common . extensions . show Toast Ċ import Ġcom . shark ab oi . media hub . data . api . enums . An ime Ranking Type Ċ import Ġcom . shark ab oi . media hub . databinding . Fragment An ime Ranking Binding Ċ import Ġcom . shark ab oi . media hub . modules . anime _ ranking . adapters . An ime Ranking Detailed Adapter Ċ import Ġcom . shark ab oi . media hub . modules . anime _ ranking . adapters . An ime Ranking Load State Adapter Ċ import Ġcom . shark ab oi . media hub . modules . anime _ ranking . vm . An ime Ranking ViewModel Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . flow . collect Latest Ċ import Ġkotlinx . coroutines . launch Ċ Ċ @ Android EntryPoint Ċ class ĠAn ime Ranking Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment An ime Ranking Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĠĠĠ Ġprivate Ġval Ġnav Controller Ġby Ġlazy Ġ{ Ġfind Nav Controller () Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġan ime Ranking Detailed Adapter : ĠAn ime Ranking Detailed Adapter ĊĠĠĠ Ġprivate Ġval Ġan ime Ranking ViewModel Ġby Ġview Models < An ime Ranking ViewModel >() ĊĠĠĠ Ġprivate Ġval Ġargs : ĠAn ime Ranking Fragment Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġvar Ġresults Job : ĠJob ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment An ime Ranking Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġresults Job ?. cancel () ĊĠĠĠĠĠĠĠ Ġresults Job Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġbinding . rv An ime Ranking . adapter Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar . set Navigation OnClickListener Ġ{ Ġnav Controller . navigate Up () Ġ} ĊĠĠĠĠĠĠĠ Ġinit Ranking () ĊĠĠĠĠĠĠĠ Ġsetup Filter Chips () ĊĠĠĠĠĠĠĠ ĠsetUp RecyclerView () ĊĠĠĠĠĠĠĠ Ġset Observer s () ĊĠĠĠĠĠĠĠ Ġcollect Paged List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Ranking () Ġ{ ĊĠĠĠĠĠĠĠ Ġan ime Ranking ViewModel . set Ranking Type ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( args . anime Ranking Type Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAn ime Ranking Type . all ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAn ime Ranking Type . valueOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . anime Ranking Type ?. lowercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠAn ime Ranking Type . all . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. getOrElse Ġ{ ĠAn ime Ranking Type . all Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Filter Chips () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . rank Type Chip Group . removeAll Views () ĊĠĠĠĠĠĠĠ ĠAn ime Ranking Type . values (). forEach Ġ{ Ġranking Type Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rank Type Chip Group . addView ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCh ip ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġranking Type . get An ime Ranking ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Media Hub Chip Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Check able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġranking Type Ġ== Ġan ime Ranking ViewModel . selected Ranking Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Ranking ViewModel . set Ranking Type ( ranking Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollect Paged List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rv An ime Ranking . smooth Scroll To Position ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . rv An ime Ranking . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Ranking Detailed Adapter Ġ= ĠAn ime Ranking Detailed Adapter Ġ{ Ġan ime Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠAn ime Ranking Fragment Directions . open An ime ById ( anime Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( context , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġan ime Ranking Detailed Adapter . with Load State Footer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfooter Ġ= ĠAn ime Ranking Load State Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Observer s () Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Ranking Detailed Adapter . add Load State Listener Ġ{ Ġload States Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( load States . source . refresh Ġis ĠLoad State . Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (( load States . source . refresh Ġas ĠLoad State . Error ). error . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . is Showing Ġ= Ġload States . refresh Ġis ĠLoad State . Loading ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Empty Hint . isVisible Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload States . refresh Ġis ĠLoad State . Not Loading Ġ&& Ġan ime Ranking Detailed Adapter . item Count Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcollect Paged List () Ġ{ ĊĠĠĠĠĠĠĠ Ġresults Job ?. cancel () ĊĠĠĠĠĠĠĠ Ġresults Job Ġ= Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Ranking ViewModel . get An ime For Ranking Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Latest Ġ{ Ġpaging Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Ranking Detailed Adapter . submit Data ( paging Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rv An ime Ranking . smooth Scroll To Position ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ