package Ġcom . fol i ore ader . ui . fragment Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . fol i ore ader . Config Ċ import Ġcom . fol i ore ader . Constants Ċ import Ġcom . fol i ore ader . R Ċ import Ġcom . fol i ore ader . model . TO CL ink Wrapper Ċ import Ġcom . fol i ore ader . ui . adapter . TOC Adapter Ċ import Ġcom . fol i ore ader . ui . adapter . TOC Adapter . TOC Callback Ċ import Ġcom . fol i ore ader . util . App Util . Companion . get Saved Config Ċ import Ġorg . read ium . r 2 . shared . Link Ċ import Ġorg . read ium . r 2 . shared . Publication Ċ import Ġjava . util .* ĊĊ Ċ class ĠTable Of Content Fragment Ġ: ĠFragment (), ĠTO C Callback Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm TOC Adapter : ĠTO C Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Table Of Contents RecyclerView : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġerror View : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Config : ĠConfig ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Book Title : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpublication : ĠPublic ation ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpublication Ġ= Ġarguments !!. get Serializable ( Constants . PUBLIC ATION ) Ġas ĠPublic ation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Root View Ġ= Ġinflater . inflate ( R . layout . fragment _ contents , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġm Config Ġ= Ġget Saved Config ( activity ) ĊĠĠĠĠĠĠĠ Ġm Book Title Ġ= Ġarguments !!. getString ( Constants . BOOK _ TITLE ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Config !!. is Night Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Root View . findViewById < View >( R . id . recycler _ view _ menu ). set BackgroundColor ( Context Compat . getColor ( activity !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . black )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Root View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm Table Of Contents RecyclerView Ġ= Ġview . findViewById < View >( R . id . recycler _ view _ menu ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġerror View Ġ= Ġview . findViewById < View >( R . id . tv _ error ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġconfig Recycler Views () ĊĠĠĠĠĠĠĠ Ġinit Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconfig Recycler Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Table Of Contents RecyclerView !!. set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġm Table Of Contents RecyclerView !!. layout Manager Ġ= ĠLinearLayoutManager ( activity , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġm Table Of Contents RecyclerView !!. addItem Decoration ( Divider Item Decoration ( activity , ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( publication Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! publication !!. table Of Contents . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoc Link Wrappers Ġ= ĠArrayList < TO CL ink Wrapper >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( toc Link Ġin Ġpublication !!. table Of Contents ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoc Link Wrapper Ġ= Ġcreate T oc Link Wrapper ( toc Link , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoc Link Wrappers . add ( toc Link Wrapper ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonLoad TOC ( toc Link Wrappers ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonLoad TOC ( create TOC From Sp ine ( publication !!. reading Order )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonLoad TOC ( toc Link Wrapper List : ĠArrayList < TO CL ink Wrapper > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm TOC Adapter Ġ= ĠTO C Adapter ( activity , Ġtoc Link Wrapper List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments !!. getString ( Constants . SELECTED _ CH AP TER _ POSITION ), Ġm Config ) ĊĠĠĠĠĠĠĠ Ġm TOC Adapter !!. set Callback ( this ) ĊĠĠĠĠĠĠĠ Ġm Table Of Contents RecyclerView !!. adapter Ġ= Ġm TOC Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonError () Ġ{ ĊĠĠĠĠĠĠĠ Ġerror View !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġm Table Of Contents RecyclerView !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġerror View !!. text Ġ= Ġ" Table Ġof Ġcontent Ġ\ n Ġnot Ġfound " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon T oc Clicked ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoc Link Wrapper Ġ= Ġm TOC Adapter !!. getItem At ( position ) Ġas ĠTO CL ink Wrapper ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . SELECTED _ CH AP TER _ POSITION , Ġtoc Link Wrapper . toc Link . href ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . BOOK _ TITLE , Ġtoc Link Wrapper . toc Link . title ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . TYPE , ĠConstants . CH AP TER _ SELECTED ) ĊĠĠĠĠĠĠĠ Ġactivity !!. set Result ( Activity . RESULT _ OK , Ġintent ) ĊĠĠĠĠĠĠĠ Ġactivity !!. finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Expanded ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoc Link Wrapper Ġ= Ġm TOC Adapter !!. getItem At ( position ) Ġas ĠTO CL ink Wrapper ĊĠĠĠĠĠĠĠ Ġif Ġ( toc Link Wrapper . children Ġ!= Ġnull Ġ&& Ġtoc Link Wrapper . children . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm TOC Adapter !!. toggle Group ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( publication : ĠPublic ation ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Chapter Href : ĠString ?, Ġbook Title : ĠString ?): ĠTable Of Content Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Of Content Fragment Ġ= ĠTable Of Content Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Serializable ( Constants . PUBLIC ATION , Ġpublication ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( Constants . SELECTED _ CH AP TER _ POSITION , Ġselected Chapter Href ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( Constants . BOOK _ TITLE , Ġbook Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Of Content Fragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtable Of Content Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ REC UR SIVE ] ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġfunction Ġgenerates Ġlist Ġof Ġ[ TO CL ink Wrapper ] Ġof ĠTO C Ġlist Ġfrom Ġpublication Ġmanifest ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtoc Link ĠĠĠĠ Ġtable Ġof Ġcontent Ġelements ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġindentation Ġlevel Ġof Ġhierarchy Ġof Ġthe Ġchild Ġelements ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġgenerated Ġ[ TO CL ink Wrapper ] Ġlist ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate T oc Link Wrapper ( toc Link : ĠLink , Ġindentation : ĠInt ): ĠTO CL ink Wrapper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoc Link Wrapper Ġ= ĠTO CL ink Wrapper ( toc Link , Ġindentation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( toc Link 1 Ġin Ġtoc Link . children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoc Link Wrapper 1 Ġ= Ġcreate T oc Link Wrapper ( toc Link 1 , Ġindentation Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( toc Link Wrapper 1 . indentation Ġ!= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoc Link Wrapper . addChild ( toc Link Wrapper 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtoc Link Wrapper ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate TOC From Sp ine ( sp ine : ĠList < Link >): ĠArrayList < TO CL ink Wrapper > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoc Link Wrappers Ġ= ĠArrayList < TO CL ink Wrapper >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( link Ġin Ġsp ine ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoc Link Ġ= ĠLink () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoc Link . title Ġ= Ġlink . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoc Link . href Ġ= Ġlink . href ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoc Link Wrappers . add ( TO CL ink Wrapper ( toc Link , Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtoc Link Wrappers ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }