package Ġde . r ki . cor on aw arn app . test . tasks . ui Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġde . r ki . cor on aw arn app . R Ċ import Ġde . r ki . cor on aw arn app . databinding . Fragment Test Task Controller Binding Ċ import Ġde . r ki . cor on aw arn app . test . menu . ui . Test MenuItem Ċ import Ġde . r ki . cor on aw arn app . util . di . Auto Inject Ċ import Ġde . r ki . cor on aw arn app . util . ui . observe 2 Ċ import Ġde . r ki . cor on aw arn app . util . ui . view Binding Lazy Ċ import Ġde . r ki . cor on aw arn app . util . view model . C WA ViewModel Factory Provider Ċ import Ġde . r ki . cor on aw arn app . util . view model . c wa ViewModels Ċ import Ġjavax . inject . Inject Ċ Ċ @ Suppress Lint (" SetText I 1 8 n ") Ċ @ Suppress (" Long Method ") Ċ class ĠTest Task Controller Fragment Ġ: ĠFragment ( R . layout . fragment _ test _ task _ controller ), ĠAuto Inject Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar ĠviewModel Factory : ĠC WA ViewModel Factory Provider . Factory ĊĠĠĠ Ġprivate Ġval Ġvm : ĠTest Task Controller Fragment ViewModel Ġby Ġc wa ViewModels Ġ{ ĠviewModel Factory Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġbinding : ĠFragment Test Task Controller Binding Ġby Ġview Binding Lazy () ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġvm . factory State . observe 2 ( this ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . task factories Values . text Ġ= Ġstate . infos . join ToString ("\ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvm . controller State . observe 2 ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . running Tasks Values . text Ġ= Ġit . state Descriptions . join ToString ("\ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvm . last Activity State . observe 2 ( this ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Results Ġ= Ġstate . last Activity . join ToString ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tasks Last Results . text Ġ= Ġlast Results ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvm . latest Test Task Progress . observe 2 ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġnull ) Ġreturn @ observe 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire View (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Latest ĠTest Task Ġprogress : Ġ${ it . primary Message . get ( require Context ()) }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . test Task Launch . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . launch Test Task () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠMENU _ ITEM Ġ= ĠTest MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Task Controller ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Ob serve Ġand Ġinfluence Ġthe ĠC WA Ġtask Ġcontroller .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Id Ġ= ĠR . id . test _ task controller _ fragment ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ