package Ġcom . example . kit aab . View Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . example . kit aab . Adapter . User Library Adapter Ċ import Ġcom . example . kit aab . Fragments . Fav Books Fragment Ċ import Ġcom . example . kit aab . Fragments . Published Fragment Ċ import Ġcom . example . kit aab . R Ċ import Ġcom . example . kit aab . ViewModel . User Library ViewModel Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ Ċ class ĠUser Library Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġback Button : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview Pager : ĠView Pager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtabs : ĠTab Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġempty Tabs : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapp Bar : ĠApp Bar Layout ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ user _ library ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( findViewById ( R . id . toolbar )) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġback Button Ġ= ĠfindViewById ( R . id . back Button ) ĊĠĠĠĠĠĠĠ Ġtabs Ġ= ĠfindViewById ( R . id . tabs ) ĊĠĠĠĠĠĠĠ Ġview Pager Ġ= ĠfindViewById ( R . id . view Pager ) ĊĠĠĠĠĠĠĠ Ġempty Tabs Ġ= ĠfindViewById ( R . id . empty Tabs ) ĊĠĠĠĠĠĠĠ Ġapp Bar Ġ= ĠfindViewById ( R . id . app Bar ) ĊĊĠĠĠĠĠĠĠ Ġ// adapter Ġto Ġadd Ġfragments Ġto Ġview ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠUser Library Adapter ( support FragmentManager ) ĊĠĠĠĠĠĠĠ Ġvar Ġfav Frag Added Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġpublished Frag Added Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// close Ġactivity ĊĠĠĠĠĠĠĠ Ġback Button . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ViewModel Ġof Ġthis Ġactivity ĊĠĠĠĠĠĠĠ Ġval Ġlib ViewModel Ġ= ĠViewModel Provider ( this ). get ( User Library ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ// observe Ġbooks Ġin Ġuser 's Ġfavour ites Ġlist ĊĠĠĠĠĠĠĠ Ġlib ViewModel . fav List . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġfavour ites Ġfragment Ġis Ġnot Ġalready Ġpresent Ġin Ġthe Ġview Ġand Ġfav Ġlist Ġis Ġnot Ġempty , Ġadd ĠF avour ites Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ!= Ġnull Ġ&& Ġ! fav Frag Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Bar . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Hide ĠTextView Ġ' Empty ' Ġif Ġlist Ġis Ġnot Ġempty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Tabs . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add Fragment ( Fav Books Fragment (), Ġ" F avour ites ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfav Frag Added Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// observe Ġbooks Ġin Ġuser 's Ġpublished Ġlist ĊĠĠĠĠĠĠĠ Ġlib ViewModel . self Published List . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġpublished Ġfragment Ġis Ġnot Ġalready Ġpresent Ġin Ġthe Ġview Ġand Ġpublished Ġlist Ġis Ġnot Ġempty , Ġadd ĠPub lished Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ!= Ġnull Ġ&& Ġ! published Frag Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Bar . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Hide ĠTextView Ġ' Empty ' Ġif Ġlist Ġis Ġnot Ġempty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Tabs . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add Fragment ( Published Fragment (), Ġ" Published ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublished Frag Added Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// set Ġfragments Ġin Ġtab Ġlayout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtabs . setup With ViewPager ( view Pager ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ }