package Ġcom . nim bl 3 . ui . main Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View .* Ċ import Ġandroidx . activity . view Models Ċ import Ġcom . jak ew h art on . r xb ind ing 2 . view . Rx View Ċ import Ġcom . nim bl 3 . R Ċ import Ġcom . nim bl 3 . data . lib . schedul ers . Schedulers Provider Ċ import Ġcom . nim bl 3 . extension . load Image Ċ import Ġcom . nim bl 3 . lib . Is Loading Ċ import Ġcom . nim bl 3 . ui . base . Base Activity Ċ import Ġcom . nim bl 3 . ui . main . data . Data Ċ import Ġcom . nim bl 3 . ui . second . Second Activity Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠMainActivity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġs chedulers : ĠS chedulers Provider ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Main ViewModel >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġbind To ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind To ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. outputs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( schedul ers . main ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: bind Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind For Disposable () ĊĊĠĠĠĠĠĠĠ ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. outputs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isLoading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( schedul ers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( schedul ers . main ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: show Loading ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind For Disposable () ĊĊĠĠĠĠĠĠĠ ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. outputs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. goto Next Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( schedul ers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( schedul ers . main ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: goto Next Screen ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind For Disposable () ĊĊĠĠĠĠĠĠĠ ĠRx View . click s ( button Refresh ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĠviewModel . inputs . refresh () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind For Disposable () ĊĊĠĠĠĠĠĠĠ ĠRx View . click s ( button Next ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĠviewModel . inputs . next ()} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind For Disposable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Data ( data : ĠData ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġdata . content ĊĠĠĠĠĠĠĠ ĠimageView . load Image ( data . imageUrl ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Loading ( isLoading : ĠIs Loading ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton Refresh . visibility Ġ= Ġif Ġ( isLoading ) ĠIN VISIBLE Ġelse ĠVIS IBLE ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġif Ġ( isLoading ) ĠVIS IBLE Ġelse ĠG ONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgoto Next Screen ( data : ĠData ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSecond Activity . show ( this , Ġdata ) ĊĠĠĠ Ġ} Ċ } Ċ