package Ġcn . ne ko code . kot go . sample . ui . main Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġcn . ne ko code . kot go . component . rx . Rx Bus Ċ import Ġcn . ne ko code . kot go . component . ui . Kt Presenter Ċ import Ġcn . ne ko code . kot go . sample . data . DO . Me izi Ċ import Ġcn . ne ko code . kot go . sample . data . repo . Me izi Repo Ċ import Ġcn . ne ko code . kot go . sample . event . Load Finished Event Ċ import Ġcn . ne ko code . kot go . sample . ui . page 2 . Page 2 Presenter Ċ import Ġcom . ever note . android . state . State Ċ import Ġcom . ever note . android . state . State Saver Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author Ġne ko code Ġ( ne ko code . cn @ gmail . com ) Ċ Ġ*/ Ċ class ĠMain Presenter () Ġ: ĠK t Presenter < Contract . View >(), ĠContract . Presenter Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREQUEST _ CODE _ PAGE 2 Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġview : ĠContract . View ? Ġ= Ġnull ĊĠĠĠ Ġ@ State Ġvar Ġme izi List Ġ= ĠArrayList < Me izi >() ĊĠĠĠ Ġval Ġadapter Ġ= ĠMe izi ListAdapter ( me izi List ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠState Saver . restore InstanceState ( this , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠObservable . just ( me izi List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . size Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMe izi Repo . get Me iz is ( 5 0 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . just ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind Lifecycle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme izi List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme izi List . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRx Bus . send ( Load Finished Event ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠContract . View ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . view Ġ= Ġview ĊĊĠĠĠĠĠĠĠ Ġadapter . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setup Adapter ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Me izi ItemClickListener Ġ= Ġ{ Ġme izi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPage 2 Presenter . push For Result ( this , ĠREQUEST _ CODE _ PAGE 2 , Ġme izi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ ĠState Saver . save InstanceState ( this , Ġout State Ġ?: Ġreturn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ CODE _ PAGE 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr lt Me izi Ġ= Ġdata . get Parcelable Extra < Me izi >( Page 2 Presenter . KEY _ RL T _ ME IZ I ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. toast (" You Ġclicked Ġthe Ġphoto : Ġ${ rl t Me izi . id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }