package Ġcom . br illi ances oft . m ush af . ui . library ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . ab ed . magenta X . android . context . launch Activity Ċ import Ġcom . ab ed . magenta X . android . views . g one Ċ import Ġcom . ab ed . magenta X . android . views . listeners . onClick Ċ import Ġcom . ab ed . magenta X . android . views . visible Ċ import Ġcom . br illi ances oft . m ush af . R Ċ import Ġcom . br illi ances oft . m ush af . framework . data . repo . Repository Ċ import Ġcom . br illi ances oft . m ush af . ui . MainActivity Ċ import Ġcom . br illi ances oft . m ush af . ui . common . shared Component . M ush af Application Ċ import Ġcom . br illi ances oft . m ush af . ui . library . manage . Manage Library Activity Ċ import Ġcom . br illi ances oft . m ush af . ui . common . shared Component . Base Fragment Ċ import Ġcom . br illi ances oft . m ush af . ui . search . Search Activity Ċ import Ġcom . br illi ances oft . m ush af . utils . extensions . on Scroll Ċ import Ġkotlinx . android . synt hetic . main . fragment _ library .* Ċ import Ġkotlinx . android . synt hetic . main . toolbar _ main .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠLibrary Fragment Ġ: ĠBase Fragment () Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġrepository : ĠRepository ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠM ush af Application . app Component . inject ( this ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġjob Ġ= ĠSuper visor Job () ĊĠĠĠ Ġprotected Ġval Ġcoroutine Scope Ġ= ĠCor outine Scope ( Dispatch ers . Main Ġ+ Ġjob ) ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id : ĠInt Ġ= ĠR . layout . fragment _ library ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġparent Activity : ĠMainActivity ĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġparent Activity Ġ= Ġactivity Ġas ĠMainActivity ĊĊĠĠĠĠĠĠĠ Ġparent Activity . update Toolbar ( R . string . library , ĠR . drawable . ic _ search ) ĊĊĊĠĠĠĠĠĠĠ Ġadd _ item _ fab . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. launch Activity < Manage Library Activity >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= Ġre cycler _ items _ library . layout Manager Ġas ĠLinearLayoutManager ĊĠĠĠĠĠĠĠ Ġre cycler _ items _ library . on Scroll Ġ{ Ġ_, Ġdy Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dy Ġ> Ġ 0 ) Ġadd _ item _ fab . shrink () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( layout Manager . findFirst Visible Item Position () Ġ< Ġ 1 ) Ġadd _ item _ fab . extend () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparent Activity . begin Toolbar _ icon . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Activity . launch Activity < Search Activity >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġinit RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġjob . cancel Children () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty _ data _ text . g one () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ Ġrepository . get Downloaded T af se er () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Completed ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler _ items _ library ?. adapter Ġ= ĠLibrary Adapter ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty _ data _ text ?. visible () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ