package Ġren . im yan . kir by . ui . video Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġren . im yan . kir by . core . Service Creator Ċ import Ġren . im yan . kir by . data . model . Convert Data Ċ import Ġren . im yan . kir by . data . model . Mutable Convert Data Ċ import Ġren . im yan . kir by . data . model . mos hi . Video Ċ import Ġren . im yan . kir by . data . ret rofit . Res Service Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ /** Ċ Ġ* Ġ@ author ĠEnd ure Bl aze / çĤ İ å¿ į Ġhttps :// github . com . End ure Bl aze Ċ Ġ* Ġ@ data Ġ 2 0 2 1 - 0 2 - 1 9 Ġ 1 9 : 2 7 Ċ Ġ* Ġ@ website Ġhttps :// im yan . ren Ċ Ġ*/ Ċ class ĠVideo ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġval Ġvideo List Data : ĠConvert Data < List < Video >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ video List Data . to Immutable () ĊĊĠĠĠ Ġprivate Ġval Ġ_ video List Data Ġ= ĠMutable Convert Data < List < Video >>() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġget Video List Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Again Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġget Video List Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Video List Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvideo Service Ġ= ĠService Creator . create < Res Service >() ĊĠĠĠĠĠĠĠ Ġvideo Service . get Video Data (). enqueue ( object Ġ: ĠCallback < List < Video >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < List < Video >>, Ġresponse : ĠResponse < List < Video >>) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ video List Data . data . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < List < Video >>, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ video List Data . state . value Ġ= Ġt . message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }