package Ġcom . github . gr ub ber . ti ang ou me itu . ui Ċ Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Transaction Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . ash ok var ma . bottomnavigation . Bottom NavigationBar Ċ import Ġcom . ash ok var ma . bottomnavigation . Bottom Navigation Item Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . R Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . databinding . Activity Main Binding Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . ui . base . Base Activity Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . ui . favorite . Favorite Fragment Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . ui . home . Home Fragment Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . ui . search . Search Fragment Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . ui . settings . Settings Fragment Ċ import Ġcom . github . gr ub ber . ti ang ou me itu . util . newInstance Ċ import Ġtim ber . log . Tim ber Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġgr ub ber Ġon Ġ 2 0 1 7 / 1 / 7 . Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠBase Activity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ binding Ġby ĠDeleg ates . notNull < Activity Main Binding >() ĊĊĠĠĠ Ġprivate Ġval Ġ_ fragments Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Instance < Home Fragment >(), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Instance < Search Fragment >(), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Instance < Favorite Fragment >(), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Instance < Settings Fragment >() ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġwith (_ binding . bottom NavigationBar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mode ( Bottom NavigationBar . MODE _ FIXED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Background Style ( Bottom NavigationBar . BACKGROUND _ STYLE _ R IP PLE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Color Ġ= Ġandroid . R . color . white ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Active Color Ġ= Ġandroid . R . color . dark er _ gray ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Bar BackgroundColor ( android . R . color . black ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item ( Bottom Navigation Item ( R . drawable . ic _ home _ white _ 2 4 dp , Ġ" Home ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item ( Bottom Navigation Item ( R . drawable . ic _ search _ white _ 2 4 dp , Ġ" Search ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item ( Bottom Navigation Item ( R . drawable . ic _ favorite _ white _ 2 4 dp , Ġ" Favorite ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item ( Bottom Navigation Item ( R . drawable . ic _ person _ white _ 2 4 dp , Ġ" Settings ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Tab Selected Listener ( object Ġ: ĠBottom NavigationBar . On Tab Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Un selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Re selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" on Tab Selected : Ġposition Ġis Ġ$ position ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Content Fragment ( support FragmentManager . beginTransaction (), Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialise () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ_ init And Show Default Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ_ init And Show Default Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( support FragmentManager . beginTransaction ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ fragments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . content _ frame , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Content Fragment ( this , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ_ show Content Fragment ( fragment Transaction : ĠFragment Transaction , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( fragment Transaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ fragments . forEach Indexed Ġ{ Ġi , Ġfragment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġindex ) Ġshow ( fragment ) Ġelse Ġhide ( fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinject Members () Ġ{ ĊĠĠĠ Ġ} Ċ }