package Ġcom . al v ay on ara . out sched . ui . dashboard Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . al v ay on ara . out sched . My Application Ċ import Ġcom . al v ay on ara . out sched . R Ċ import Ġcom . al v ay on ara . out sched . core . ui . Dashboard Schedule Adapter Ċ import Ġcom . al v ay on ara . out sched . core . ui . ViewModel Factory Ċ import Ġcom . al v ay on ara . out sched . core . utils . g one Ċ import Ġcom . al v ay on ara . out sched . core . utils . visible Ċ import Ġcom . al v ay on ara . out sched . databinding . Fragment Schedule Binding Ċ import Ġcom . al v ay on ara . out sched . ui . base . Base Fragment Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠP ast Schedule Fragment Ġ: ĠBase Fragment < Fragment Schedule Binding >() Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġfactory : ĠViewModel Factory ĊĠĠĠ Ġprivate Ġval Ġdashboard ViewModel : ĠDashboard ViewModel Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠ Ġfactory ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdashboard Schedule Adapter : ĠDashboard Schedule Adapter ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġ( require Activity (). application Ġas ĠMy Application ). app Component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġbinding Inflater : Ġ( LayoutInflater , ĠViewGroup ?, ĠBoolean ) Ġ-> ĠFragment Schedule Binding ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠFragment Schedule Binding :: inflate ĊĊĠĠĠ Ġoverride Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Past Schedule () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġdashboard Schedule Adapter Ġ= ĠDashboard Schedule Adapter () ĊĠĠĠĠĠĠĠ Ġwith ( binding . rv Schedule List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Activity ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġdashboard Schedule Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Past Schedule () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . progress Bar . visible () ĊĠĠĠĠĠĠĠ Ġdashboard ViewModel . get Past Schedules ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . g one () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdashboard Schedule Adapter . set Schedules ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Empty Schedule . tv Empty Schedule Title . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . empty _ past _ schedule _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Empty Schedule . tv Empty Schedule Description . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . empty _ past _ schedule _ description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Empty Schedule . root . visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) ĠView . GONE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġget Past Schedule () ĊĠĠĠ Ġ} Ċ }