package Ġcom . die gom fv . mood tracker v 2 . ui . main . mood state fragment Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . die gom fv . mood tracker v 2 . R Ċ import Ġcom . die gom fv . mood tracker v 2 . constants . QUAL IFIER _ CO LO UR _ MANAGER Ċ import Ġcom . die gom fv . mood tracker v 2 . constants . QUAL IFIER _ IMAGE _ MANAGER Ċ import Ġcom . die gom fv . mood tracker v 2 . extensions . short Toast Ċ import Ġcom . die gom fv . mood tracker v 2 . extensions . startActivity Ċ import Ġcom . die gom fv . mood tracker v 2 . extensions . throttle First Ċ import Ġcom . die gom fv . mood tracker v 2 . ui . history . History Activity Ċ import Ġcom . die gom fv . mood tracker v 2 . ui . main . MainActivity ViewModel Ċ import Ġcom . die gom fv . mood tracker v 2 . ui . main . comment . Comment Dialog Fragment Ċ import Ġcom . die gom fv . mood tracker v 2 . utils . Colour Manager Ċ import Ġcom . die gom fv . mood tracker v 2 . utils . Image Manager Ċ import Ġkotlinx . android . synt hetic . main . fragment _ mood .* Ċ import Ġorg . k oin . android . scope . current Scope Ċ import Ġorg . k oin . android . view model . ext . android . shared ViewModel Ċ import Ġorg . k oin . android . view model . ext . android . viewModel Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ import Ġorg . k oin . core . qual ifier . named Ċ Ċ class ĠM ood State Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY Ġ= Ġ" KEY " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( mood State : ĠInt ): ĠM ood State Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠM ood State Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ Ġput Int ( KEY , Ġm ood State ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmain Activity ViewModel : ĠMainActivity ViewModel Ġby Ġshared ViewModel () Ġ// left Ġas Ġexample , Ġdo Ġnot Ġdelete ĊĠĠĠ Ġprivate Ġval Ġm ood State Fragment ViewModel : ĠM ood State Fragment ViewModel Ġby Ġcurrent Scope . viewModel ( this ) Ġ{ Ġparameters Of ( arguments ?. getInt ( KEY , Ġ 2 )) Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcolour Manager : ĠColour Manager Ġby Ġcurrent Scope . inject ( ĊĠĠĠĠĠĠĠ Ġnamed ( QUAL IFIER _ CO LO UR _ MANAGER )) ĊĊĠĠĠ Ġprivate Ġval Ġimage Manager : ĠImage Manager Ġby Ġcurrent Scope . inject ( ĊĠĠĠĠĠĠĠ Ġnamed ( QUAL IFIER _ IMAGE _ MANAGER )) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ mood , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġm ood State Fragment ViewModel . model . observe ( this , ĠObserver (:: update Ui )) ĊĠĠĠĠĠĠĠ Ġm ood State Fragment ViewModel . event . observe ( this , ĠObserver Ġ{ Ġit . getContent IfNot Handled ()?. let Ġ{ Ġtrigger Event ( it ) Ġ} Ġ}) ĊĊĠĠĠĠĠĠĠ Ġiv _ mood _ state ?. throttle First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ood State Fragment ViewModel . update State () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġiv _ go _ to _ history ?. throttle First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. startActivity < History Activity > Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġiv _ add _ comment ?. throttle First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĠComment Dialog Fragment . newInstance (). show ( it . support FragmentManager , Ġ" Comment Dialog Fragment ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Ui ( ui Model : ĠM ood State Fragment ViewModel . Ui Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ui Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠM ood State Fragment ViewModel . Ui Model . Content Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ mood _ state ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Resource ( image Manager . get Face Image ( ui Model . mood State )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġimage Manager . get Face Image ( ui Model . mood State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain _ container . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolour Manager . getM ood Colour ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Model . mood State ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠTesting Ġpurposes Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ go _ to _ history ?. tag Ġ= Ġimage Manager . get Face Image ( ui Model . mood State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ add _ comment ?. tag Ġ= Ġimage Manager . get Face Image ( ui Model . mood State ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠM ood State Fragment ViewModel . Ui Model . Error Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtrigger Event Ġ( event : ĠM ood State Fragment ViewModel . Event Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠM ood State Fragment ViewModel . Event Model . Toast Message Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . string ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. short Toast ( event . string ) Ġ// TODO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }