package Ġsun . mer cy . mv ps uns . demo . app . utils Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġcom . mer cy . sun s . mvp . I View Ċ import Ġcom . mer cy . sun s . utils . Rx Lifecycle Utils Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġme . j ess yan . rx error handler . handler . Error Handle Subscriber Ċ import Ġsun . mer cy . mv ps uns . demo . app . rx . Base Func Ċ import Ġsun . mer cy . mv ps uns . demo . app . rx . Base Func Boolean Ċ import Ġsun . mer cy . mv ps uns . demo . mvp . model . resp . Base Resp Ċ import Ġsun . mer cy . mv ps uns . demo . mvp . ui . widget . Default Text Watcher Ċ Ċ /** Ċ Ġ* Ġ================================= =============== Ċ Ġ* ĠKotlin éĢļ çĶ¨ æī©å±ķ åĩ½æķ° Ċ Ġ* ĠCreated Ġby Ġsun Ġon Ġ 2 0 1 8 / 2 / 5 Ċ Ġ* Ġ================================= =============== Ċ Ġ*/ Ċ /** Ċ Ġ* Ġ æī©å±ķ æķ°æį® è½¬æį¢ Ċ Ġ*/ Ċ fun Ġ< T > ĠObservable < Base Resp < T >> . convert (): ĠObservable < T > Ġ{ ĊĠĠĠ Ġreturn Ġthis . flatMap ( Base Func ()) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æī©å±ķ Boolean ç±»åŀĭ æķ°æį® è½¬æį¢ Ċ Ġ*/ Ċ fun Ġ< T > ĠObservable < Base Resp < T >> . convert Boolean (): ĠObservable < Boolean > Ġ{ ĊĠĠĠ Ġreturn Ġthis . flatMap ( Base Func Boolean ()) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æī©å±ķ Observable æī§è¡Į Ċ Ġ*/ Ċ fun Ġ< T > ĠObservable < T >. execute ( view : ĠI View , Ġsubscriber : ĠError Handle Subscriber < T >) Ġ{ ĊĠĠĠ Ġthis . subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( Rx Lifecycle Utils . bind To Lifecycle ( view )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( subscriber ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æī©å±ķ Observable æī§è¡Į Ċ Ġ*/ Ċ fun Ġ< T > ĠObservable < T >. execute With Loading ( view : ĠI View , Ġsubscriber : ĠError Handle Subscriber < T >) Ġ{ ĊĠĠĠ Ġthis . subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ Ġview . show Loading () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do Finally Ġ{ Ġview . hide Loading () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( Rx Lifecycle Utils . bind To Lifecycle ( view )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( subscriber ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æī©å±ķ çĤ¹åĩ» äºĭä»¶ Ċ Ġ*/ Ċ fun ĠView . onClick ( listener : View . OnClickListener ): View { ĊĠĠĠ Ġset OnClickListener ( listener ) ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* Ġ æī©å±ķ çĤ¹åĩ» äºĭä»¶ ï¼Į åıĤæķ° ä¸º æĸ¹æ³ķ Ċ Ġ*/ Ċ fun ĠView . onClick ( method : () Ġ-> ĠUnit ): View { ĊĠĠĠ Ġset OnClickListener Ġ{ Ġmethod () Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* Ġ æī©å±ķ Button åı¯çĶ¨ æĢ§ Ċ Ġ*/ Ċ fun ĠButton . enable ( et : ĠEditText , Ġmethod : Ġ() Ġ-> ĠBoolean ){ ĊĠĠĠ Ġval Ġbtn Ġ= Ġthis ĊĠĠĠ Ġet . add TextChanged Listener ( object Ġ: ĠDefault Text Watcher (){ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn . isEnabled Ġ= Ġmethod () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ /** Ċ Ġ* Ġ æī©å±ķ è§ĨåĽ¾ åı¯ è§ģ æĢ§ Ċ Ġ*/ Ċ fun ĠView . setVisible ( visible : Boolean ){ ĊĠĠĠ Ġthis . visibility Ġ= Ġif Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . GONE Ċ } ĊĊĊ