package Ġcom . m cc or by . open min ed . worker . ui Ċ Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroidx . work . Work Manager Ċ import Ġcom . m cc or by . open min ed . worker . R Ċ import Ġcom . m cc or by . open min ed . worker . datasource . Sy ft WebSocket DataSource Ċ import Ġcom . m cc or by . open min ed . worker . domain . Sy ft Operand Ċ import Ġcom . m cc or by . open min ed . worker . domain . Sy ft Repository Ċ import Ġcom . m cc or by . open min ed . worker . domain . Sy ft Result Ċ import Ġcom . m cc or by . open min ed . worker . domain . use case . Connect UseCase Ċ import Ġcom . m cc or by . open min ed . worker . domain . use case . Delete Object UseCase Ċ import Ġcom . m cc or by . open min ed . worker . domain . use case . ExecuteCommand UseCase Ċ import Ġcom . m cc or by . open min ed . worker . domain . use case . GetObject UseCase Ċ import Ġcom . m cc or by . open min ed . worker . domain . use case . Ob serve Messages UseCase Ċ import Ġcom . m cc or by . open min ed . worker . domain . use case . Set Object UseCase Ċ import Ġcom . m cc or by . open min ed . worker . framework . DL 4 J Framework Ċ import Ġcom . m cc or by . open min ed . worker . framework . to IND Array Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠMain ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġbtn _ init iate . setOnClickListener Ġ{ ĠviewModel . init iate Communication () Ġ} ĊĊĠĠĠĠĠĠĠ Ġinject Dependencies () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO ĠInject Ġusing ĠK ode in Ġor Ġanother ĠDI Ġframework ĊĠĠĠ Ġprivate Ġfun Ġinject Dependencies () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId Ġ= Ġ" Android -${ System . currentTimeMillis () }" ĊĠĠĠĠĠĠĠ Ġval Ġweb Socket Url Ġ= Ġ" http :// 1 0 . 0 . 2 . 2 : 5 0 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsy ft DataSource Ġ= ĠSy ft WebSocket DataSource ( web Socket Url , ĠclientId ) ĊĠĠĠĠĠĠĠ Ġval Ġsy ft Repository Ġ= ĠSy ft Repository ( sy ft DataSource ) ĊĠĠĠĠĠĠĠ Ġval Ġml Framework Ġ= ĠDL 4 J Framework () ĊĠĠĠĠĠĠĠ Ġval Ġset Object UseCase Ġ= ĠSet Object UseCase ( sy ft Repository ) ĊĠĠĠĠĠĠĠ Ġval Ġexecute Command UseCase Ġ= ĠExecute Command UseCase ( sy ft Repository , Ġml Framework ) ĊĠĠĠĠĠĠĠ Ġval ĠgetObject UseCase Ġ= ĠGetObject UseCase ( sy ft Repository ) ĊĠĠĠĠĠĠĠ Ġval Ġdelete Object UseCase Ġ= ĠDelete Object UseCase ( sy ft Repository ) ĊĠĠĠĠĠĠĠ Ġval Ġobserve Messages UseCase Ġ= ĠOb serve Messages UseCase ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsy ft Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Object UseCase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Command UseCase , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetObject UseCase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Object UseCase ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconnect UseCase Ġ= ĠConnect UseCase ( sy ft Repository ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain ViewModel Factory ( observe Messages UseCase , Ġconnect UseCase , Ġsy ft Repository , ĠWork Manager . getInstance ()) ĊĠĠĠĠĠĠĠ Ġ). get ( Main ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . sy ft MessageState . observe ( this , ĠObserver < Sy ft Result > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog _ area . append ( it . toString () Ġ+ Ġ"\ n ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . sy ft Tensor State . observe ( this , ĠObserver < Sy ft Operand . Sy ft Tensor > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog _ area . append ( it !!. to IND Array (). toString () Ġ+ Ġ"\ n ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . view State . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog _ area . append ( it Ġ+ Ġ"\ n ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ