package Ġcom . je ff erson al v ess . gist s . ui . gist s Ċ Ċ import Ġandroidx . lifecycle .* Ċ import Ġandroidx . paging . DataSource Ċ import Ġandroidx . paging . Live Paged List Builder Ċ import Ġandroidx . paging . Paged List Ċ import Ġcom . je ff erson al v ess . database . entities . F avorites Ċ import Ġcom . je ff erson al v ess . domain . datasource . G ist List DataSource Factory Ċ import Ġcom . je ff erson al v ess . domain . repository . F avorites Repository Ċ import Ġcom . je ff erson al v ess . network . dto . G ist Ċ Ċ class ĠG ists ViewModel ( ĊĠĠĠ Ġprivate Ġval ĠdataSource Factory : ĠDataSource . Factory < Int , ĠG ist >, ĊĠĠĠ Ġprivate Ġval Ġfavor ites Repository : ĠF avorites Repository Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ show Progress Ġ= ĠMutable LiveData < Boolean >() ĊĊĠĠĠ Ġval Ġgist List : ĠLive Data < Paged List < G ist >> ĊĊĠĠĠ Ġval Ġshow Progress : ĠLive Data < Boolean > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ show Progress ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage d List Config Ġ= ĠP aged List . Config . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set PageSize ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Enable Place holders ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġgist List Ġ= ĠLive Paged List Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Factory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage d List Config ĊĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Progress . value Ġ= Ġit . count () Ġ> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġretry () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( dataSource Factory Ġas ĠG ist List DataSource Factory ). retry () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Favorite ( gist : ĠG ist ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavor ites Repository . add Favorite ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF avorites ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġgist . owner . login , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= Ġgist . owner . avatar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }