package Ġcom . rod rig matrix . sig aa u fc . ui . view . sig aa . classes . selected Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġcom . rod rig matrix . sig aa u fc . R Ċ import Ġcom . rod rig matrix . sig aa u fc . firebase . PROFILE _ BUTTON Ċ import Ġcom . rod rig matrix . sig aa u fc . internal . glide . G lide App Ċ import Ġcom . rod rig matrix . sig aa u fc . internal . util . show Profile Dialog Ċ import Ġcom . rod rig matrix . sig aa u fc . persistence . Student Dao Ċ import Ġcom . rod rig matrix . sig aa u fc . ui . base . Scoped Activity Ċ import Ġcom . rod rig matrix . sig aa u fc . ui . view . sig aa . attendance . Attendance Fragment Ċ import Ġcom . rod rig matrix . sig aa u fc . ui . view . sig aa . files . Files Fragment Ċ import Ġcom . rod rig matrix . sig aa u fc . ui . view . sig aa . grade s . Gr ades Fragment Ċ import Ġcom . rod rig matrix . sig aa u fc . ui . view . sig aa . news . fragment . News Fragment Ċ import Ġkotlinx . android . synt hetic . main . activity _ class _ selected .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġorg . kode in . di . generic . instance Ċ Ċ class ĠClass Activity Ġ: ĠScoped Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠClass ViewModel ĊĠĠĠ Ġprivate Ġval ĠviewModel Factory : ĠClass ViewModel Factory Ġby Ġinstance () ĊĠĠĠ Ġprivate Ġval Ġstudent Dao : ĠStudent Dao Ġby Ġinstance () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsections Pager Adapter : ĠClass Pager Adapter ĊĠĠĠ Ġlateinit Ġvar Ġid Tur ma : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġid : ĠString ĊĠĠĠ Ġprivate Ġvar Ġis Previous Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ class _ selected ) ĊĠĠĠĠĠĠĠ Ġload Profile Pic () ĊĠĠĠĠĠĠĠ Ġsections Pager Adapter Ġ= ĠClass Pager Adapter ( this , Ġsupport FragmentManager ) ĊĠĠĠĠĠĠĠ Ġid Tur ma Ġ= Ġintent . getString Extra (" id Tur ma ") !! ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġintent . getString Extra (" id ") !! ĊĠĠĠĠĠĠĠ Ġis Previous Ġ= Ġintent . getBoolean Extra (" is Previous ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġprintln (" id tur ma Ġactivity Ġstring Ġ$ id Tur ma ") ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġbundle . putString (" id Tur ma ", Ġid Tur ma ) ĊĠĠĠĠĠĠĠ Ġbundle . put Boolean (" is Previous ", Ġis Previous ) ĊĠĠĠĠĠĠĠ Ġval Ġatt endance Fragment Ġ= ĠAtt endance Fragment () ĊĠĠĠĠĠĠĠ Ġval Ġgr ades Fragment Ġ= ĠGr ades Fragment () ĊĠĠĠĠĠĠĠ Ġval Ġnews Fragment Ġ= ĠNews Fragment () ĊĠĠĠĠĠĠĠ Ġval Ġfiles Fragment Ġ= ĠFiles Fragment () ĊĠĠĠĠĠĠĠ Ġatt endance Fragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠ Ġnews Fragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠ Ġgr ades Fragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠ Ġfiles Fragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠ Ġsections Pager Adapter . add Fragment ( files Fragment ) ĊĠĠĠĠĠĠĠ Ġsections Pager Adapter . add Fragment ( grade s Fragment ) ĊĠĠĠĠĠĠĠ Ġsections Pager Adapter . add Fragment ( news Fragment ) ĊĠĠĠĠĠĠĠ Ġsections Pager Adapter . add Fragment ( attendance Fragment ) ĊĠĠĠĠĠĠĠ Ġval Ġview Pager : ĠView Pager Ġ= ĠfindViewById ( R . id . view _ pager ) ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġsections Pager Adapter ĊĠĠĠĠĠĠĠ Ġview Pager . off screen Page Limit Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġval Ġtabs : ĠTab Layout Ġ= ĠfindViewById ( R . id . tabs ) ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Dis cipl ina " ĊĠĠĠĠĠĠĠ Ġtabs . setup With ViewPager ( view Pager ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this , ĠviewModel Factory )[ Class ViewModel :: class . java ] ĊĠĠĠĠĠĠĠ Ġset Tabs () ĊĊĠĠĠĠĠĠĠ Ġset Class () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Profile Pic () Ġ= Ġlaunch { ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Dao . get Student Async () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Pic Ġ= Ġstudent ?. profile Pic ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( profile Pic Ġ!= Ġ"/ sig aa / img / no _ picture . png "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide App . with ( this @ Class Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load (" https :// si 3 . u fc . br /$ profile Pic ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( profile _ pic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile _ pic . setImage Resource ( R . drawable . avatar _ circle _ blue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile _ pic _ card . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevents . add Event ( PROFILE _ BUTTON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Profile Dialog ( profile _ pic _ card , Ġstudent Ġ?: Ġreturn @ setOnClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve Class (){ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . getCurrent Class ( id Tur ma ). observe ( this @ Class Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ== Ġnull ) Ġreturn @ Observer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . split (" Ġ- Ġ" )[ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠIndex OutOfBoundsException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve Previous Class (){ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . get Previous Class ( id Tur ma ). observe ( this @ Class Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ== Ġnull ) Ġreturn @ Observer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . split (" Ġ- Ġ" )[ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠIndex OutOfBoundsException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Tabs (){ ĊĠĠĠĠĠĠĠ Ġtabs . get Tab At ( 0 ) !!. setIcon ( R . drawable . ic _ download ) ĊĠĠĠĠĠĠĠ Ġtabs . get Tab At ( 1 ) !!. setIcon ( R . drawable . ic _ assessment ) ĊĠĠĠĠĠĠĠ Ġtabs . get Tab At ( 2 ) !!. setIcon ( R . drawable . ic _ news ) ĊĠĠĠĠĠĠĠ Ġtabs . get Tab At ( 3 ) !!. setIcon ( R . drawable . ic _ attendance ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation Icon ( R . drawable . ic _ arrow _ back ) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsections Pager Adapter . remove Fragments () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Class (){ ĊĠĠĠĠĠĠĠ Ġif ( is Previous ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Previous Class () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( handler ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . fetch Previous Classes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Previous Class ( id , Ġid Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ sig aa . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Class () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( handler ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . fetch Current Classes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Class ( id , Ġid Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ sig aa . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed (){ ĊĠĠĠĠĠĠĠ Ġsections Pager Adapter . remove Fragments () ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsections Pager Adapter . remove Fragments () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ }