package Ġcom . y up fe g . sample . ui . normal Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġaut od is pose 2 . auto Dispose Ċ import Ġcom . y up fe g . logger . ext . log w Ċ import Ġcom . y up fe g . remote . tools . handler . Global HttpResponse Processor Ċ import Ġcom . y up fe g . sample . base . Base ViewModel Ċ import Ġcom . y up fe g . sample . data . remote . Remote DataSource Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* Ġ åŁºç¡Ģ ä½¿çĶ¨ é¡µ çļĦ ViewModel Ċ Ġ* Ġ@ author Ġy u P Fe G Ċ Ġ* Ġ@ date Ġ 2 0 2 1 / 0 9 / 2 9 Ċ Ġ*/ Ċ class ĠNormal Use ViewModel Ġ: ĠBase ViewModel (){ Ċ Ċ // ĠĠĠ Ġprivate Ġval Ġm Rx Java 2 Dis pos ables Ġ= Ġio . reactivex . dis pos ables . Composite Disposable () ĊĊĊĠĠĠ Ġval Ġarticle Json String LiveData Ġ: ĠLive Data < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Article Json String LiveData ĊĠĠĠ Ġprivate Ġval Ġm Article Json String LiveData Ġ= ĠMutable LiveData < String >() ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () Ċ // ĠĠĠĠĠĠĠ Ġm Rx Java 2 Dis pos ables . clear () ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġfun Ġquery Wan Android Article By Rx Java 2 (){ Ċ // ĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= ĠRemote DataSource . query Wan Android Article By Rx Java 2 ( 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ entity -> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Article Json String LiveData . value Ġ= Ġ" query ĠW an Android ĠArticle Ġfrom ĠRx Java 2 Ġ\ n Ġ$ entity " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ},{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog w ( it ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġm Rx Java 2 Dis pos ables . add ( dis posable ) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Wan Android Article By Rx Java 3 (){ ĊĠĠĠĠĠĠĠ ĠRemote DataSource . query Wan Android Articles By Rx Java 3 ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. auto Dispose ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ({ entity -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Article Json String LiveData . value Ġ= Ġ" query ĠW an Android ĠArticle Ġfrom ĠRx Java 3 Ġ\ n Ġ$ entity " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ},{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog w ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Article Json String LiveData . value Ġ= Ġ" query ĠW an Android ĠArticle Ġfrom ĠRx Java 3 Ġ$ it " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Wan Android Article By Coroutine (){ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO Ġ ä»ħ ä½ľ æµĭè¯ķ ï¼Į åĲİ ç»Ń ä½¿çĶ¨ flow ä¼ĺåĮĸ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Entity Ġ= ĠRemote DataSource . query Wan Android Article By Coroutine ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Article Json String LiveData . value Ġ= Ġ" query ĠW an Android ĠArticle Ġfrom ĠCor outine Ġ\ n Ġ$ response Entity " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e Ġ: ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal HttpResponse Processor . handle Http Error ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Article Json String LiveData . value Ġ= Ġ" query ĠW an Android ĠArticle Ġfrom ĠCor outine Ġ$ e " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }