package Ġru . ust im ov . weather . ui . favorites Ċ Ċ import Ġcom . are l lo mobile . mvp . Inject ViewState Ċ import Ġru . ust im ov . weather . AppState Ċ import Ġru . ust im ov . weather . content . data . Favorite Ċ import Ġru . ust im ov . weather . rx . Rx M vp Presenter Ċ import Ġru . ust im ov . weather . use case . Query F avorites Use case Ċ Ċ @ Inject ViewState Ċ class ĠF avorites Presenter ( private Ġval Ġapp State : ĠApp State ) Ġ: ĠRx M vp Presenter < F avorites View >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon First View Attach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on First View Attach () ĊĊĠĠĠĠĠĠĠ ĠQuery F avorites Use case ( app State . repository ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. run ( Query F avorites Use case . Params ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe ({ Ġview State . show Loading () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( bind Until Destroy ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( app State . schedul ers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: on F avorites Loaded , Ġ{}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon F avorites Loaded ( favorites : ĠList < Favorite >) Ġ{ ĊĠĠĠĠĠĠĠ Ġview State . show F avorites ( favorites ) ĊĠĠĠĠĠĠĠ Ġif Ġ( favorites . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . show Empty () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State . hide Loading () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }