package Ġcom . king . easy chat . app . friend Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . king . easy chat . api . ApiService Ċ import Ġcom . king . easy chat . app . base . Message Model Ċ import Ġcom . king . easy chat . bean . Result Ċ import Ġcom . king . easy chat . bean . User Ċ import Ġcom . king . frame . mv vm frame . bean . Resource Ċ import Ġcom . king . frame . mv vm frame . data . IData Repository Ċ import Ġcom . king . frame . mv vm frame . http . callback . Api Callback Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġretrofit 2 . Call Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ< a Ġhref =" mailto : jen ly 1 3 1 4 @ gmail . com "> J en ly </ a > Ċ Ġ*/ Ċ class ĠFriend Model Ġ@ Inject Ġconstructor ( repository : ĠI Data Repository ?) Ġ: ĠMessage Model ( repository ){ ĊĊĠĠĠ Ġval Ġfriend Resource Ġ= ĠMutable LiveData < Resource < List < User >> >() ĊĊĊĠĠĠ Ġfun Ġget Friends ( token : ĠString ){ ĊĠĠĠĠĠĠĠ Ġfriend Resource . value Ġ= ĠResource . loading () ĊĠĠĠĠĠĠĠ Ġget Ret rofit Service ( ApiService :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getF riends ( token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠApi Callback < Result < List < User >>> (){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Result < List < User >>> ?, Ġresult : ĠResult < List < User >> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . is Success ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriend Resource . value Ġ= ĠResource . success ( it . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Users ( it . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriend Resource . value Ġ= ĠResource . failure ( result . desc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriend Resource . value Ġ= ĠResource . failure ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( call : ĠCall < Result < List < User >>> ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriend Resource . value Ġ= ĠResource . error ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Users ( users : ĠList < User >? ){ ĊĠĠĠĠĠĠĠ Ġusers ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( getUser Dao ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }