package Ġcom . oct opus . sample . ui . main Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . oct opus . sample . R Ċ import Ġcom . oct opus . sample . ui . main . home . Home Fragment Ċ import Ġcom . oct opus . sample . ui . main . profile . Profile Fragment Ċ import Ġcom . q ing me i 2 . architecture . core . adapter . ViewPager Adapter Ċ import Ġcom . q ing me i 2 . architecture . core . base . view . fragment . Base Fragment Ċ import Ġkotlinx . android . synt hetic . main . fragment _ main .* Ċ import Ġorg . kode in . di . K ode in Ċ import Ġorg . kode in . di . generic . bind Ċ import Ġorg . kode in . di . generic . instance Ċ Ċ @ Suppress (" PLUGIN _ WARNING ") Ċ @ Suppress Lint (" Check Result ") Ċ class ĠMain Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġk ode in : ĠK ode in Ġ= ĠK ode in . lazy Ġ{ ĊĠĠĠĠĠĠĠ Ġextend ( parent K ode in ) ĊĠĠĠĠĠĠĠ Ġimport ( main K ode in Module ) ĊĠĠĠĠĠĠĠ Ġbind < FragmentManager >() Ġwith Ġinstance ( child FragmentManager ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id : ĠInt Ġ= ĠR . layout . fragment _ main ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġprivate Ġval Ġm ViewModel Ġby Ġinstance < Main ViewModel >() ĠĠĠĠ Ġ// Ġnot Ġused ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= ĠView Pager Adapter ( child FragmentManager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Home Fragment (), ĠProfile Fragment ())) ĊĊĠĠĠĠĠĠĠ Ġbind s Port Screen () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind s Port Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Pager . add On Page ChangeListener ( object Ġ: ĠView Pager . On Page ChangeListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ= ĠUnit ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ= Ġon Page Select Changed ( position ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ= ĠUnit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġnavigation . setOn Navigation ItemSelected Listener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Bottom Navigation Select Changed ( menuItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Page Select Changed ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġport - mode ĊĠĠĠĠĠĠĠ Ġfor Ġ( position Ġin Ġ 0 .. index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( navigation . visibility Ġ== ĠView . VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation . menu . getItem ( position ). isChecked Ġ= Ġindex Ġ== Ġposition ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġport - mode Ġonly ĊĠĠĠ Ġprivate Ġfun Ġon Bottom Navigation Select Changed ( menuItem : ĠMenuItem ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager . currentItem Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ profile Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager . currentItem Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }