package Ġat . sh ock bytes . d ante . ui . fragment Ċ Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġat . sh ock bytes . d ante . R Ċ import Ġat . sh ock bytes . d ante . databinding . Fragment Feature Flag Config Binding Ċ import Ġat . sh ock bytes . d ante . injection . App Component Ċ import Ġat . sh ock bytes . d ante . ui . adapter . Feature Flag Config Adapter Ċ import Ġat . sh ock bytes . d ante . ui . view model . Feature Flag Config ViewModel Ċ import Ġat . sh ock bytes . d ante . util . viewModel Of Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠFeature Flag Config Fragment Ġ: ĠBase Fragment < Fragment Feature Flag Config Binding >() Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġvm Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠFeature Flag Config ViewModel ĊĊĠĠĠ Ġprivate Ġval Ġflag Adapter : ĠFeature Flag Config Adapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠFeature Flag Config Adapter ( require Context ()) Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Feature Flag ( item . key , Ġitem . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠviewModel Of ( vm Factory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate View Binding ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġroot : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ Ġattach To Root : ĠBoolean ĊĠĠĠ Ġ): ĠFragment Feature Flag Config Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFragment Feature Flag Config Binding . inflate ( in flater , Ġroot , Ġattach To Root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġvb . layout Feature Flag Config . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsetup RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinject To Graph ( app Component : ĠApp Component ) Ġ{ ĊĠĠĠĠĠĠĠ Ġapp Component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . get Feature Flag Items (). observe ( this , ĠObserver Ġ{ Ġlist Items Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflag Adapter . data Ġ= Ġlist Items . to Mutable List () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġun bind ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . get Feature Flag Items (). remove Observer s ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġvb . rv Feature Flags . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġflag Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Divider Item Decoration ( require Context (), ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠFeature Flag Config Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFeature Flag Config Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }