package Ġcom . hav ri i ash . d mit ri y . github browser . main . ui . base Ċ Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . databinding . ViewData Binding Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Layout Res Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġcom . hav ri i ash . d mit ri y . github browser . R Ċ import Ġcom . hav ri i ash . d mit ri y . github browser . databinding . Activity Container Binding Ċ import Ġcom . hav ri i ash . d mit ri y . github browser . main . ui . adapters . Pager Fragment Adapter Ċ import Ġdagger . android . support . D agger Fragment Ċ Ċ abstract Ġclass ĠBase Container Activity < D >: ĠBase Activity (), ĠI Activity Container < D > Ġ{ ĊĊĠĠĠ Ġabstract Ġval Ġfragments : ĠList < D agger Fragment > ĊĊĠĠĠ Ġabstract Ġval Ġtitles : ĠList < String > ĊĊĠĠĠ Ġprotected Ġabstract Ġval Ġpage ChangeListener : ĠView Pager . On Page ChangeListener ĊĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġadapter : ĠP ager Fragment Adapter ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġcontainer Binding : ĠActivity Container Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġcontainer Binding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ container ) ĊĠĠĠĠĠĠĠ Ġsetup Pager () ĊĠĠĠĠĠĠĠ Ġsetup Toolbar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item ?. itemId Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprotected Ġfun Ġ< DB : ĠView Data Binding > Ġinf late View Into Toolbar (@ Layout Res Ġlayout Id : ĠInt Ġ): ĠDB Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( container Binding . root . context ) ĊĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= Ġcontainer Binding . activity Container Toolbar Container ĊĠĠĠĠĠĠĠ Ġval Ġview Binding Ġ= ĠData Binding Util . inflate < DB >( in flater , Ġlayout Id , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġcontainer Binding . activity Container Toolbar Container . addView ( view Binding . root ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview Binding ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Pager () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠP ager Fragment Adapter ( support FragmentManager , Ġfragments , Ġtitles ) ĊĠĠĠĠĠĠĠ Ġcontainer Binding . activity Container ViewPager . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġcontainer Binding . activity Container ViewPager . add On Page ChangeListener ( page ChangeListener ) ĊĠĠĠĠĠĠĠ Ġcontainer Binding . activity Container Tab Layout . setup With ViewPager ( container Binding . activity Container ViewPager ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( container Binding . activity Container Toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Home As Up Indicator ( R . drawable . ic _ back ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠ Ġ} Ċ Ċ }