package Ġper . nul list . target ed clean er . view _ model Ċ Ċ import Ġandroidx . lifecycle .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ Ċ import Ġper . nul list . target ed clean er . li ved ata . Live Package Repository Ċ import Ġper . nul list . target ed clean er . view _ model . converter . App Info Package Converter Ċ import Ġper . nul list . target ed clean er . view _ model . data . App Info Ċ Ċ class ĠApp List ViewModel Impl ( ĊĠĠĠ Ġprivate Ġval Ġconverter : ĠApp Info Package Converter , ĊĠĠĠ Ġprivate Ġval Ġpackage Repository : ĠLive Package Repository Ċ ) Ġ: ĠApp List ViewModel () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġall Installed Apps : ĠLive Data < List < App Info >> Ġ= Ġlive Data Ġ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapps Ġ= Ġpackage Repository . getAll Installed Packages () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġconverter . convertTo App Info ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠ Ġemit ( apps ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsafe Apps : ĠLive Data < Set < App Info >> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġpackage Repository . safe App Packages LiveData . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring Set Ġ-> Ġstring Set . map Ġ{ Ġconverter . convertTo App Info ( it ) Ġ}. toSet () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }