package Ġcom . ol ab ode . wil son . py t utor . ui . tutorial Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . ol ab ode . wil son . py t utor . R Ċ import Ġcom . ol ab ode . wil son . py t utor . databinding . Fragment Lesson Completion Binding Ċ import Ġcom . ol ab ode . wil son . py t utor . extensions .* Ċ import Ġcom . ol ab ode . wil son . py t utor . models . Topic Ċ import Ġcom . ol ab ode . wil son . py t utor . ui . tutorial . view model . Completed Lesson ViewModel Ċ import Ġcom . ol ab ode . wil son . py t utor . utils . Utils Ċ import Ġcom . ol ab ode . wil son . py t utor . utils . states . Data State Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġnl . d ion se gi jn . kon f et ti . models . Shape Ċ import Ġnl . d ion se gi jn . kon f et ti . models . Size Ċ import Ġtim ber . log . Tim ber Ċ Ċ @ Android EntryPoint Ċ class ĠLess on Completion Fragment Ġ: ĠFragment ( R . layout . fragment _ lesson _ completion ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Fragment Lesson Completion Binding :: bind ) ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠLess on Completion Fragment Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠCompleted Lesson ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġscore Ġ= Ġargs . score ĊĠĠĠĠĠĠĠ Ġval ĠnumberOf Questions Ġ= Ġargs . numberOf Questions ĊĠĠĠĠĠĠĠ Ġval Ġtopic Ġ= Ġargs . topic ĊĠĠĠĠĠĠĠ Ġshow Conf et ti () ĊĊĠĠĠĠĠĠĠ Ġval Ġscore Rating Ġ= ĠUtils . calculate Rating ( score . toFloat (), ĠnumberOf Questions . toFloat ()) ĊĠĠĠĠĠĠĠ Ġbinding . rating Bar . show And Animate Rating ( score Rating ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . on Course Completed ( topic . topic Id , Ġscore Rating , Ġtopic . next Topics Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠData State . Success Ġ-> ĠTim ber . d (" SUCCESS ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ Ġ/* Ġno - op Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġis Next Topic Available ( topic ) ĊĊĠĠĠĠĠĠĠ Ġbinding . home . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Conf et ti () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠUtils . getWidth ( require Context (), Ġrequire Activity ()) ĊĠĠĠĠĠĠĠ Ġbinding . view Kon f et ti . build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Colors ( Color . YELLOW , ĠColor . GREEN , ĠColor . MAG ENT A ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Direction ( 0 . 0 , Ġ 3 5 9 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Speed ( 1 f , Ġ 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Fade Out Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTime To Live ( 2 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Shapes ( Shape . Square , ĠShape . Circle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Sizes ( Size ( 1 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setPosition (- 5 0 f , Ġwidth Ġ+ Ġ 5 0 f , Ġ- 5 0 f , Ġ- 5 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. stream For ( 3 0 0 , Ġ 2 0 0 0 L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Next Topic Available ( topic : ĠTopic ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtopic . next Topics Id ?. let Ġ{ Ġnext Topic Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . getNext Topic ( next Topic Id ). observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠData State . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . next Lesson . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . next Lesson . setOnClickListener Ġ{ Ġnavigate To Next ( result . data ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠData State . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . next Lesson . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠData State . Loading Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . next Lesson . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate To Next ( topic : ĠTopic ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigate Safe ( Lesson Completion Fragment Directions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. action Lesson Completion Fragment To Lesson Graph ( topic . title , Ġtopic ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }