package Ġcom . cal d rem ch . common . base Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Id Res Ċ import Ġcom . cal d rem ch . common . helper . Event Manager Ċ import Ġcom . cal d rem ch . common . mvp . Base Contract Ċ import Ġcom . cal d rem ch . common . mvp . Base Contract . Base Presenter Ċ import Ġcom . cal d rem ch . common . util . Utils Ċ import Ġcom . cal d rem ch . common . widget . status . I Status View Ċ import Ġcom . cal d rem ch . common . widget . status . Status View ĊĊ Ċ /** Ċ Ġ* Ġ@ author ĠCal d rem ch Ċ Ġ* Ġ@ date Ġ 2 0 1 8 / 1 1 / 9 Ċ Ġ* Ġ@ email Ġcal d rem ch @ 1 6 3 . com Ċ Ġ* Ġ@ describe Ġ åŁº ç±» Ċ Ġ*/ Ċ abstract Ġclass ĠBase Fragment < T > Ġ: ĠLife Cycle Log Fragment (), ĠBase Contract . Base View , ĠBase Init , ĊĠĠĠ ĠI Status View Ġ{ ĊĊĠĠĠ Ġprotected Ġval ĠTAG Ġ= Ġ" Base Fragment " ĊĠĠĠ Ġprotected Ġvar Ġm Presenter : ĠT ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġvar Ġm Is Visible Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġm Is Prepare Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġm Is First Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm ContentView : ĠView ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġdecor View Proxy : ĠDecor View Proxy ĊĊĠĠĠ Ġprotected Ġval Ġm Root View Ġby Ġlazy Ġ{ Ġm ContentView Ġ} ĊĊĊĠĠĠ Ġpublic Ġfun Ġ Ġroot Xml (): View Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecor View Proxy . get Room Xml () ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġoverride Ġval ĠmContext : ĠContext ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrequire Context () ĊĊĠĠĠ Ġoverride Ġfun ĠsetUser Visible Hint ( isVisible To User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUser Visible Hint ( isVisible To User ) ĊĠĠĠĠĠĠĠ Ġif Ġ( user Visible Hint ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// J Log . d ( this . getClass (). getSimpleName ()+" --> åı¯ è§ģ :"+ getUser Visible Hint ()); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Is Visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Is Visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon In visible () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġon In visible () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġon Visible () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset View Status (@ Status View . ViewState Ġstatus : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m ContentView Ġis ĠI Status View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( m ContentView Ġas ĠI Status View ). setView Status ( status ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ä¸»è¦ģ çĶ¨äºİ View Page ä¸Ń , Ġ åĲ¦åĪĻ æĹł æķĪ ĊĠĠĠ Ġprotected Ġfun Ġlazy Load () Ġ{} ĊĊĠĠĠ Ġprotected Ġfun Ġcreate Presenter (): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUtils . getInstance < T >( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġm Presenter Ġ= ĠUtils . getInstance < T >( this ) ĊĠĠĠĠĠĠĠ Ġattach View () ĊĠĠĠĠĠĠĠ Ġinflater View ( in flater , Ġcontainer ) ĊĠĠĠĠĠĠĠ Ġreturn Ġm ContentView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinflater View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdecor View Proxy Ġ= ĠDecor View Proxy . Builder ( this , Ġinflater , Ġcontainer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ContentView Id ( layout Id ). set ContentView ( layout View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle View Id ( title View Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle View ( title View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġm ContentView Ġ= Ġdecor View Proxy . proxy Set ContentView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbefore Init View () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprotected Ġfun Ġ< K Ġ: ĠView > ĠfindViewById (@ Id Res Ġid : ĠInt ): ĠK Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm ContentView . findViewById ( id ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Use Event ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Manager . register ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbefore Init View () ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġinit Event () ĊĠĠĠĠĠĠĠ Ġm Is Prepare Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Is First Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġset Content Status () // çĶ¨äºİ åıĸæ¶Ī Ġ çĬ¶æĢģ é¡µéĿ¢ çļĦ loading ĊĠĠĠĠĠĠĠ Ġif Ġ( is Use Event ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Manager . unregister ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdetach View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// åĬłè½½ æķ°æį® ĊĠĠĠ Ġprotected Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Is Prepare Ġ|| Ġ! m Is Visible Ġ|| Ġ! m Is First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlazy Load () ĊĠĠĠĠĠĠĠ Ġm Is First Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġattach View () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Presenter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Presenter Ġis ĠBase Presenter <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Presenter Ġas ĠBase Presenter < Base Contract . Base View >). attach View ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdetach View () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Presenter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Presenter Ġis ĠBase Presenter <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Presenter Ġas ĠBase Presenter < *> ). detach View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// å¦Ĥæŀľ Fragment ä¸Ń æľī present , Ġ åĪĻ åı¯ä»¥ éĩį åĨĻ present éĩĮ éĿ¢çļĦ retry æĸ¹æ³ķ , Ġä¸į çĦ¶ , Ġ åĪĻ éĩį åĨĻ Fragment çļĦ retry ĊĠĠĠ Ġoverride Ġfun Ġre Try () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Presenter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Presenter Ġis ĠBase Presenter <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Presenter Ġas ĠBase Presenter < *> ). retry () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprotected Ġfun ĠsetError Status () Ġ{ ĊĠĠĠĠĠĠĠ Ġset View Status ( Status View . VIEW _ STATE _ ERROR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġset Content Status () Ġ{ ĊĠĠĠĠĠĠĠ Ġset View Status ( Status View . VIEW _ STATE _ CONTENT ) ĊĠĠĠ Ġ} Ċ } Ċ