package Ġio . github . mk lk j . film owy . ui . forum Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġio . github . mk lk j . film owy . R Ċ import Ġio . github . mk lk j . film owy . base . Base Fragment Ċ import Ġio . github . mk lk j . film owy . databinding . Fragment Forum Tab Binding Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠFor um Tab Fragment Ġ: ĠBase Fragment < Fragment Forum Tab Binding >( R . layout . fragment _ forum _ tab ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠviewModel : ĠFor um ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġdata Adapter : ĠFor um ListAdapter ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠFor um Tab Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġwith ( viewModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠpageSize Ġ= Ġargs . pageSize ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource . url Ġ= Ġargs . url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreads . observe ( this @ Forum Tab Fragment , ĠObserver Ġ{ Ġdata Adapter . submit List ( it ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork State . observe ( this @ Forum Tab Fragment , ĠObserver Ġ{ Ġdata Adapter . set Network State ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġbinding . vm Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġinitialize Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding . forum RecyclerView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġdata Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata Adapter . retry Callback Ġ= Ġ{ ĠviewModel . retry () Ġ} ĊĠĠĠĠĠĠĠ Ġdata Adapter . open Thread Callback Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( parent Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFor um Fragment Ġ-> ĠFor um Fragment Directions . action Forum Fragment To Thread Fragment 2 ( it . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠFor um Tab Fragment Directions . action Forum Fragment To Thread Fragment ( it . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . forum , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ) Ġ= Ġif Ġ( item . itemId Ġ== ĠR . id . forum _ open _ in _ browser ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( Intent . ACTION _ VIEW , ĠUri . parse ( args . url ))) ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ġelse Ġfalse Ċ } Ċ