package Ġcom . desk 3 6 0 . live chat . presentation . view model Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . desk 3 6 0 . base . util . Chat Utils Ċ import Ġcom . desk 3 6 0 . live chat . data . model . chat . Message Ċ import Ġcom . desk 3 6 0 . live chat . manager . FileManager Ċ Ċ abstract Ġclass ĠBase Media Message ViewModel Ġ: ĠBase Message ViewModel < Message >() Ġ{ ĊĠĠĠ Ġval Ġis Download : ĠMutable LiveData < Boolean > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġis Up loading : ĠMutable LiveData < Boolean > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġis Processing : ĠMutable LiveData < Boolean > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġis Preview : ĠMutable LiveData < Boolean > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpercentage : ĠMutable LiveData < Int > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Message ( message : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . handle Message ( message ) ĊĠĠĠĠĠĠĠ Ġpercentage . value Ġ= Ġmessage . percentage ĊĠĠĠĠĠĠĠ Ġis Up loading . value Ġ= Ġmessage . status Ġ== ĠChat Utils . Status . SEND ING ĊĠĠĠĠĠĠĠ Ġis Processing . value Ġ= Ġmessage . status Ġ== ĠChat Utils . Status . SEND ING ĊĠĠĠĠĠĠĠ Ġmessage . attachments ?. first OrNull ()?. let Ġ{ Ġattachment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġif Ġ( message . is Mine ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname And Extension Ġ= Ġattachment . name . toString (). split ('.') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ name And Extension [ 0 ]} _${ message . time }.${ name And Extension [ 1 ]}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġattachment . name . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Download . value Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Manager . is Exists ( fileName ) Ġ|| Ġis Processing . value Ġ== Ġtrue Ġ|| Ġis Error . value Ġ== Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġis Preview . value Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Download . value Ġ== Ġtrue Ġ&& Ġis Processing . value Ġ!= Ġtrue Ġ&& Ġis Error . value Ġ!= Ġtrue ĊĠĠĠ Ġ} Ċ }