package Ġcom . zj . architecture . network screen Ċ Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . zj . architecture . R Ċ import Ġcom . zj . m vi . core . observe Event Ċ import Ġcom . zj . m vi . core . observe State Ċ import Ġcom . zj . architecture . utils . toast Ċ import Ġkotlinx . android . synt hetic . main . activity _ network .* Ċ Ċ class ĠNetwork Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Flow ViewModel >() ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ network ) ĊĠĠĠĠĠĠĠ Ġinit ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . view States . let Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . observe State ( this , ĠNetwork ViewState :: page Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPage Status . Success Ġ-> Ġstate _ layout . show Content () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPage Status . Loading Ġ-> Ġstate _ layout . show Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPage Status . Error Ġ-> Ġstate _ layout . show Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . observe State ( this , ĠNetwork ViewState :: content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ content . text Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . view Events . observe Event ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNetwork View Event . Show Toast Ġ-> Ġtoast ( it . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNetwork View Event . Show Loading Dialog Ġ-> Ġshow Loading Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNetwork View Event . Dismiss Loading Dialog Ġ-> Ġdismiss Loading Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsimple Request ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . dispatch ( Network View Action . Page Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpart Request ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . dispatch ( Network View Action . Part Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmulti Source ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . dispatch ( Network View Action . Multi Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġerror Request ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . dispatch ( Network View Action . Error Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġprogress Dialog : ĠProgress Dialog ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġshow Loading Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Dialog Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= ĠProgress Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdismiss Loading Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. take If Ġ{ Ġit . is Showing Ġ} ?. dismiss () ĊĠĠĠ Ġ} Ċ }