package Ġcom . app . mood track _ android . tasks Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġandroidx . h ilt . work . H ilt Worker Ċ import Ġandroidx . work . Coroutine Worker Ċ import Ġandroidx . work . Worker Parameters Ċ import Ġcom . app . mood track _ android . R Ċ import Ġcom . app . mood track _ android . model . notification question naire . NQ Response Ċ import Ġcom . app . mood track _ android . repository . Notification Questionnaire Response Repository Ċ import Ġcom . google . gson . Gson Ċ import Ġdagger . ass isted . Ass isted Ċ import Ġdagger . ass isted . Ass isted Inject Ċ Ċ @ H ilt Worker Ċ class ĠSubmit Questionnaire Response Worker Ġ@ Ass isted Inject Ġconstructor ( ĊĠĠĠ Ġ@ Ass isted Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġ@ Ass isted Ġval Ġworker Params : ĠWorker Parameters , ĊĠĠĠ Ġprivate Ġval Ġnotification Questionnaire Response Repository : ĠNotification Questionnaire Response Repository , ĊĠĠĠ Ġprivate Ġval Ġgson : ĠGson , Ċ ) Ġ: ĠCor outine Worker ( context , Ġworker Params ) Ġ{ ĊĠĠĠ Ġval ĠTAG Ġ= Ġ" Submit Quest Res Worker " ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdo Work (): ĠResult Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Worker Ġstarted .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse String Ġ= Ġinput Data . getString ( context . getString ( R . string . notification _ question naire _ response )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġgson . fromJson ( response String , ĠN Q Response :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . userId Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Questionnaire Response Repository . submit Notification Questionnaire Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġresponse . message Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġresponse . userId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Questionnaire Id Ġ= Ġresponse . notification Questionnaire Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnodeId Ġ= Ġresponse . nodeId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext NodeId Ġ= Ġresponse . next NodeId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious NodeId Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġresponse . timestamp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Data Ġ= Ġresponse . response Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult . success () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult . failure () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠThrowable ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġe . stack Trace ToString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult . failure () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }