package Ġcom . na led im ad lo pha . gd g bot . app . view model Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġandroid . os . AsyncTask Ċ import Ġcom . na led im ad lo pha . gd g bot . app . model . Base Message Ċ import Ġcom . na led im ad lo pha . gd g bot . app . repository . Message Repository Ċ import Ġcom . na led im ad lo pha . gd g bot . app . view . Message View Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠMessage ViewModel ( private Ġvar Ġview : ĠMessage View ) Ġ{ ĊĊĠĠĠ Ġfun Ġpost Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . update Messages ( Base Message ( message , ĠS ELF , Ġsimple DateFormat . format ( Date ()))) ĊĠĠĠĠĠĠĠ ĠPost Message Task ( view , ĠMessage Repository ()). execute ( message , Ġ" en ", Ġ" 1 2 3 4 5 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠPost Message Task ( val Ġview : ĠMessage View , Ġval Ġrepository : ĠMessage Repository ) Ġ: ĠAsync Task < String , ĠVoid , ĠBase Message >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġparams : ĠString ): ĠBase Message Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrepository . postMessage ( params [ 0 ], Ġparams [ 1 ], Ġparams [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbody . getAs JsonObject ( RESULT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġresult . get ( SOURCE ). asString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspeech Ġ= Ġresult . get ( SPE E CH ). asString ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBase Message ( speech , Ġsource , Ġsimple DateFormat . format ( Date ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( result : ĠBase Message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . update Messages ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRESULT Ġ= Ġ" result " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSPE E CH Ġ= Ġ" speech " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSOURCE Ġ= Ġ" source " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS ELF Ġ= Ġ" self " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTIME _ FORMAT Ġ= Ġ" HH : mm " ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsimple DateFormat : ĠSimpleDateFormat Ġ= ĠSimpleDateFormat ( TIME _ FORMAT , ĠLocale . getDefault ()) ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ