package Ġcom . example . kon w now . ui . view Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . example . kon w now . R Ċ import Ġcom . example . kon w now . data . local . User Database Ċ import Ġcom . example . kon w now . data . local . User Entity Ċ import Ġcom . example . kon w now . ui . view . home . Home Fragment Ċ import Ġcom . example . kon w now . ui . view . my page . My page Fragment Ċ import Ġcom . example . kon w now . ui . view . ranking . Ranking Fragment Ċ import Ġcom . example . kon w now . ui . view . test . Test Fragment Ċ import Ġcom . example . kon w now . ui . view . write . Write Activity Ċ import Ġcom . example . kon w now . utils . Constants Ċ import Ġcom . google . android . gms . auth . api . signin . Google SignIn Ċ import Ġcom . google . android . gms . auth . api . signin . Google SignIn Options Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġvar Ġb nv Home : ĠBottom Navigation View ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġusers : User Entity ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun Ġget UserData (): User Entity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġusers !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġlateinit Ġvar Ġcontext _ main Ġ: ĠContext ĊĊĠĠĠ Ġ// Fragment ĊĠĠĠ Ġprivate Ġval Ġhome Fragment Ġ: ĠHome Fragment Ġby Ġlazy Ġ{ ĠHome Fragment () Ġ} ĊĠĠĠ Ġprivate Ġval Ġtest Fragment Ġ: ĠTest Fragment Ġby Ġlazy Ġ{ ĠTest Fragment () Ġ} ĊĠĠĠ Ġprivate Ġval Ġranking Fragment Ġ: ĠRank ing Fragment Ġby Ġlazy Ġ{ ĠRank ing Fragment () Ġ} ĊĠĠĠ Ġprivate Ġval Ġmy page Fragment Ġ: ĠMy page Fragment Ġby Ġlazy Ġ{ ĠMy page Fragment () Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfab Ġ: ĠFloating ActionButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdb Ġ: ĠUser Database ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġcontext _ main Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ// bn v ìĦ ¤ ìłķ ĊĠĠĠĠĠĠĠ Ġb nv Home Ġ= ĠfindViewById ( R . id . bn v _ home ) ĊĠĠĠĠĠĠĠ Ġinit Bottom Navigation () ĊĊĠĠĠĠĠĠĠ Ġdb Ġ= ĠUser Database . getInstance ( this ) !! ĊĠĠĠĠĠĠĠ ĠgetAll UserData () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠ Ġprivate Ġfun ĠgetAll UserData () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinsert Task Ġ= Ġobject Ġ: ĠAsync Task < Unit , ĠUnit , ĠUnit > (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġparams : ĠUnit ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity . users Ġ= Ġdb . user Dao (). getAll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" id token ", users !!. id Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" log into ken ", users !!. login Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" refresh Token ", users !!. refresh Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" nickname ", users !!. nickname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ema ail ", users !!. email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" userId ", Ġusers !!. userID . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( result : ĠUnit ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinsert Task . execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Bottom Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġfab Ġ= ĠfindViewById ( R . id . fab ) ĊĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , Write Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġb nv Home ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Navigation ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . itemId ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ home Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Fragment ( home Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ test Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Fragment ( test Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ ranking Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Fragment ( ranking Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ my page Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Fragment ( my page Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected ItemId Ġ= ĠR . id . nav _ home Ġ// Ġì ´Ī ê¸° ĠíĶĦ ëŀĺ ê·¸ ë ¨ ¼ íĬ¸ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// fragment ĠìłĦ íĻĺ Ġíķ¨ìĪĺ ĊĠĠĠ Ġfun Ġset Fragment ( fragment : ĠFragment ){ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . fl _ container , Ġfragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} Ċ }