package Ġcom . ra iden . k arp uk hin omg up sd ip lom . screens . content . applications Ċ Ċ import Ġcom . ra iden . domain . inter actors . applications . Applications Interactor Ċ import Ġcom . ra iden . k arp uk hin omg up sd ip lom . converters . convertTo Ui Ċ import Ġcom . ra iden . k arp uk hin omg up sd ip lom . screens . content . common . Content ViewModel Ċ import Ġcom . ra iden . k arp uk hin omg up sd ip lom . u im odel s . Ui Application Ċ import Ġcom . ra iden . k arp uk hin omg up sd ip lom . u im odel s . Ui Content Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ Ċ class ĠApplications ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġapplications Interactor : ĠApplications Interactor , ĊĠĠĠ ĠIO : ĠCor outine Dispatcher Ġ= ĠDispatch ers . Main , ĊĠĠĠ ĠDEFAULT : ĠCor outine Dispatcher Ġ= ĠDispatch ers . Default Ċ ) Ġ: ĠContent ViewModel ( IO , ĠDEFAULT ) Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġload Device Content (): ĠList < Ui Content > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapplications Interactor . getDevice Apps (). toList (). convertTo Ui () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġload Saved Content (): ĠList < Ui Content > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapplications Interactor . get Saved Apps (). toList (). convertTo Ui () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcalculate Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġsaved Content . forEach Ġ{ Ġsaved App Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsaved App Ġas ĠUi Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Content . forEach Ġ{ Ġdevice Apps Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Apps Ġas ĠUi Application ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( saved App . packageName Ġ== Ġdevice Apps . packageName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( saved App . version Name Md 5 Ġ!= Ġdevice Apps . version Name Md 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Apps . is Updated Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Apps . old Version Name Md 5 Ġ= Ġsaved App . version Name Md 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchanges Content . add ( device Apps ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }