package Ġcom . re vol gen x . an ilib . user . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . view pager 2 . adapter . Fragment State Adapter Ċ import Ġcom . re vol gen x . an ilib . R Ċ import Ġcom . re vol gen x . an ilib . common . ui . adapter . make ViewPager Adapter 2 Ċ import Ġcom . re vol gen x . an ilib . common . ui . adapter . setup With ViewPager 2 Ċ import Ġcom . re vol gen x . an ilib . databinding . User Stats Container Fragment Layout Binding Ċ import Ġcom . re vol gen x . an ilib . type . MediaType Ċ import Ġcom . re vol gen x . an ilib . user . view model . User Stats Container Shared VM Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ Ċ abstract Ġclass ĠBase User Stats Container Fragment Ġ: ĊĠĠĠ ĠBase User Fragment < User Stats Container Fragment Layout Binding >() Ġ{ ĊĠĠĠ Ġprotected Ġopen Ġval Ġtype : ĠInt Ġ= ĠMediaType . AN IME . ordinal ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby ĠviewModel < User Stats Container Shared VM >() ĊĠĠĠ Ġprivate Ġval Ġuser An ime Stats Fragments Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn ime Statistic Over View Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn ime User Stats Genre Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn ime User Stats Tag Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser Stats Voice Actor Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser Stats Studio Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn ime User Stats Staff Fragment () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġuser M anga Stats Fragments Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM anga Statistic Over View Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM anga User Stats Genre Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM anga User Stats Tag Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM anga User Stats Staff Fragment () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup ? ĊĠĠĠ Ġ): ĠUser Stats Container Fragment Layout Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser Stats Container Fragment Layout Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! shared ViewModel . has UserData ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġwith ( viewModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġshared ViewModel . userId ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ= Ġshared ViewModel . userName ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter : ĠFragment State Adapter ĊĠĠĠĠĠĠĠ Ġval Ġtab Items : ĠArray < String > ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . AN IME . ordinal Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġmake ViewPager Adapter 2 ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser An ime Stats Fragments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Items Ġ= Ġresources . getString Array ( R . array . user _ anime _ stats _ tab _ menu ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġmake ViewPager Adapter 2 ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser M anga Stats Fragments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Items Ġ= Ġresources . getString Array ( R . array . user _ manga _ stats _ tab _ menu ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . user Stats Container ViewPager . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġsetup With ViewPager 2 ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . user Stats Tab Layout , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . user Stats Container ViewPager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Items ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbinding . user Stats Container ViewPager . off screen Page Limit Ġ= Ġtab Items . size Ġ- Ġ 1 ĊĠĠĠ Ġ} Ċ }