package Ġlorem ip sum virtual enterprise . quest . main Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġlorem ip sum virtual enterprise . quest . R Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġlorem ip sum virtual enterprise . quest . main . board . Board Fragment Ċ import Ġlorem ip sum virtual enterprise . quest . main . home . Home Fragment Ċ import Ġlorem ip sum virtual enterprise . quest . main . notifications . Notifications Fragment Ċ import Ġlorem ip sum virtual enterprise . quest . main . chat . Chat Fragment Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġlorem ip sum virtual enterprise . quest . util . Custom Type face Span Ċ import Ġandroid . support . v 4 . content . res . Resources Compat Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠView Pager . On Page ChangeListener Ċ { ĊĠĠĠ Ġ// region ĠComp anion ĠObject ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġinstance : ĠMainActivity ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetActivity Intent ( context Ġ: ĠContext ) Ġ: ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠOver ridden ĠMethods ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġchange StatusBar Color () ĊĠĠĠĠĠĠĠ Ġconfigure Bottom Bar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Bottom Bar . selected ItemId Ġ= Ġposition ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠPrivate ĠMethods ĊĊĠĠĠ Ġprivate Ġfun Ġchange StatusBar Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġwindow ĊĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= ĠContext Compat . getColor ( this , Ġandroid . R . color . white ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecor Ġ= Ġget Window (). decor View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecor . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Bottom Bar () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSetting Ġthe Ġcustom Ġfont Ġon Ġthe Ġbottom Ġbar . ĊĠĠĠĠĠĠĠ Ġval Ġtype face : ĠType face ? Ġ= ĠResources Compat . getFont ( this , ĠR . font . aven ir _ next _ regular ) ĊĠĠĠĠĠĠĠ Ġval Ġtype face Span Ġ= ĠCustom Type face Span ("", Ġtype face !! ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġmain Bottom Bar . menu . size ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmenu Item Ġ= Ġmain Bottom Bar . menu . getItem ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp ann able Title Ġ= ĠSp ann able StringBuilder ( menuItem . getTitle ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ann able Title . set Span ( type face Span , Ġ 0 , Ġsp ann able Title . length , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item . title Ġ= Ġsp ann able Title ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmain Bottom Bar . setOn Navigation ItemSelected Listener Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ board Ġ-> ĠsetCurrent Fragment ( Main Fragment Tabs Manager . Main Fragment Type . FRAGMENT _ BOARD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ home Ġ-> ĠsetCurrent Fragment ( Main Fragment Tabs Manager . Main Fragment Type . FRAGMENT _ HOME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ chat Ġ-> ĠsetCurrent Fragment ( Main Fragment Tabs Manager . Main Fragment Type . FRAGMENT _ CHAT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ notifications Ġ-> ĠsetCurrent Fragment ( Main Fragment Tabs Manager . Main Fragment Type . FRAGMENT _ NOTIFICATION S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠsetCurrent Fragment ( Main Fragment Tabs Manager . Main Fragment Type . FRAGMENT _ BOARD ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠsetCurrent Fragment ( fragment Type : ĠMain Fragment Tabs Manager . Main Fragment Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Manager Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Fragment Ġ= Ġfragment Manager . find Fragment ById ( R . id . content ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction Ġ= Ġfragment Manager . beginTransaction () ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Fragment Ġ= ĠMain Fragment Tabs Manager . getInstance (). get Main Fragment ByType ( fragment Type ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( current Fragment Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . add ( R . id . content , Ġnew Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Fragment Tabs Manager . getInstance (). setCurrent Selected Fragment ( new Fragment !! ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Fragment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new Fragment . is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . add ( R . id . content , Ġnew Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Fragments Count Ġ= Ġif Ġ( fragment Manager . fragments Ġ!= Ġnull ) Ġfragment Manager . fragments . size Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcurrent Fragments Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexist ent Fragment Ġ= Ġfragment Manager . fragments [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( existent Fragment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( existent Fragment Ġis ĠBoard Fragment Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexist ent Fragment Ġis ĠHome Fragment Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexist ent Fragment Ġis ĠChat Fragment Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexist ent Fragment Ġis ĠNotifications Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . hide ( existent Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . show ( new Fragment ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Fragment Tabs Manager . getInstance (). setCurrent Selected Fragment ( new Fragment ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion Ċ } Ċ