package Ġcom . blue l zy . blue wan android . view . project list . view model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . switch Map Ċ import Ġcom . blue l zy . blue wan android . base . Live Cor outines ViewModel Ċ import Ġcom . blue l zy . blue wan android . model . Project Item Model Ċ import Ġcom . blue l zy . blue wan android . repository . Main Repository Ċ import Ġorg . k oin . core . K oin Component Ċ import Ġtim ber . log . Tim ber Ċ Ċ /** Ċ Ġ* ĠĠ Ġ@ author ĠĠĠ ĠBlue L zy Ċ Ġ* ĠĠ Ġ@ email ĠĠĠĠ Ġblue h ob ert @ gmail . com Ċ Ġ* ĠĠ Ġ@ date ĠĠĠĠĠĠ 2 0 2 0 / 8 / 2 0 Ċ Ġ* ĠĠ Ġ@ desc Ċ Ġ*/ Ċ class ĠProject List ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġmain Repository : ĠMain Repository Ċ ) Ġ: ĠLive Cor outines ViewModel (), ĠK oin Component Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġproject List Fetching LiveData : ĠMutable LiveData < Int > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġproject List LiveData : ĠLive Data < Project Item Model > ĊĠĠĠ Ġvar Ġtoast LiveData : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġprivate Ġvar Ġcid : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġpage : ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" injection ĠProject List ViewModel ") ĊĊĠĠĠĠĠĠĠ Ġproject List LiveData Ġ= Ġthis . project List Fetching LiveData . switch Map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch On ViewModel Scope Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Repository . load Project List ( it , Ġcid ) Ġ{ Ġtoast LiveData . post Value ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfetch Projects ( cid : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . cid Ġ= Ġcid ĊĠĠĠĠĠĠĠ Ġthis . project List Fetching LiveData . post Value ( page ++) ĊĠĠĠ Ġ} Ċ }