package Ġcom . le min ect . str anz ee . view model Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . le min ect . str anz ee . model . User Ċ import Ġcom . le min ect . str anz ee . network . Str ange e Api Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . net . Connect Exception Ċ Ċ enum Ġclass ĠEdit Details Status Ġ{ ĠUP DAT ING , ĠUPDATE _ ERROR , ĠUPDATE _ FAILED , ĠUPDATE _ DONE Ġ} Ċ Ċ class ĠEdit Details ViewModel : ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ status Ġ= ĠMutable LiveData < Edit Details Status >() ĊĠĠĠ Ġval Ġstatus : ĠLive Data < Edit Details Status > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ status ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Job Ġ= ĠJob () ĊĊĠĠĠ Ġfun Ġedit Details ( token : ĠString , Ġuser : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠEdit Details Status . UP DAT ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturned Data Ġ= ĠStr ange e Api . ret rofit Service . post Edit Details (" Bearer Ġ". plus ( token ), Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Edit Details ViewModel ", Ġreturned Data . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( returned Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠEdit Details Status . UPDATE _ DONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠEdit Details Status . UPDATE _ FAILED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠConnect Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Edit Details ViewModel ", Ġ" CONNECT ĠEXCEPTION Ġ::: Ġ$ t ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠEdit Details Status . UPDATE _ ERROR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Edit Details ViewModel ", Ġ" Login _ Error Ġ:: Ġ$ t ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠEdit Details Status . UPDATE _ FAILED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ ĠviewModel Job . cancel () ĊĠĠĠ Ġ} Ċ }