/* Ċ Ġ* ĠCreated Ġby ĠMu ham mad ĠU ts man Ġon Ġ 2 8 / 1 1 / 2 0 Ġ 3 : 5 4 ĠPM Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġ. ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ package Ġcom . uts man . listing . domain Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . paging .* Ċ import Ġcom . uts man . data . model . dto . list . Apps Se aled View Ċ import Ġcom . uts man . data . model . dto . worker . File Download Ċ import Ġcom . uts man . data . repository . download . Download Repository Ċ import Ġcom . uts man . data . repository . list . Installed Apps Repository Ċ import Ġcom . uts man . data . source . Installed Paging Source Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠInstalled App UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġinstalled Apps Repository : ĠInstalled Apps Repository , ĊĠĠĠ Ġprivate Ġval Ġdownload Repository : ĠDownload Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġpaging Data Ġ= ĠMutable LiveData < Paging Data < Apps Se aled View . Apps View >>() ĊĊĠĠĠ Ġsuspend Ġfun Ġget Updated App () Ġ{ ĊĠĠĠĠĠĠĠ ĠP ager ( Paging Config ( pageSize Ġ= Ġ 4 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInstalled Paging Source ( installed Apps Repository ) ĊĠĠĠĠĠĠĠ Ġ}. flow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cached In ( Global Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp View Ġ= Ġit . map Ġ{ Ġap Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstalled Apps Repository . check Installed Apps ( ap ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaging Data . post Value ( app View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġrequest Download ( file : ĠFile Download ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdownload Repository . request Download ( file ) ĊĠĠĠ Ġ} Ċ Ċ }