package Ġcom . ex mp le . core lib . base Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Layout Res Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . ex mp le . core lib . R Ċ import Ġcom . ex mp le . core lib . utils . ML o ading View Ċ import Ġcom . ex mp le . core lib . utils . register Ċ import Ġcom . ex mp le . core lib . utils . unregister Ċ Ċ /** Ċ Ġ* Ġ@ FileName : Ġcom . m ou . demo . base kotlin . Base Fragment . java Ċ Ġ* Ġ@ author : Ġm ou x ue fe i Ċ Ġ* Ġ@ date : Ġ 2 0 1 7 - 1 2 - 1 9 Ġ 1 5 : 4 8 Ċ Ġ* Ġ@ version ĠV 1 . 0 Ġ< æııè¿° å½ĵåīį çīĪæľ¬ åĬŁèĥ½ > Ċ Ġ* Ġ@ desc Ċ Ġ*/ Ċ abstract Ġclass ĠBase Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġis View Prepare Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġhas Load Data Ġ= Ġfalse ĊĠĠĠ Ġopen Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Progress Dialog : ĠM Loading View ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġlazy Load () ĊĠĠĠ Ġopen Ġval Ġuse EventBus : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget ContentView (): ĠInt ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= Ġget ContentView () ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġinflater . inflate ( layout , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġthis . mContext Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġif Ġ( use EventBus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġis View Prepare Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠĠĠĠĠ Ġm Progress Dialog Ġ= ĠM Loading View ( context !! , ĠR . style . dialog _ transparent _ style ) ĊĠĠĠĠĠĠĠ Ġsaved St ance State ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġlazy Load Data If Prepared () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġinit View ( view : ĠView ) ĊĠĠĠ Ġopen Ġfun Ġsaved St ance State ( savedInstanceState : ĠBundle ?) Ġ{} ĊĠĠĠ Ġopen Ġfun Ġinit Data () Ġ{} ĊĠĠĠ Ġoverride Ġfun ĠsetUser Visible Hint ( isVisible To User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUser Visible Hint ( isVisible To User ) ĊĠĠĠĠĠĠĠ Ġif Ġ( isVisible To User ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlazy Load Data If Prepared () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlazy Load Data If Prepared () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( user Visible Hint && is View Prepare ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Data Visible () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user Visible Hint Ġ&& Ġis View Prepare Ġ&& Ġ! has Load Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlazy Load () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Load Data Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġopen Ġfun Ġload Data Visible () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Progress Dialog ( text : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress Dialog ?. show Progress Dialog With Text ( text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdismiss Progress Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress Dialog ?. dismiss Progress Dialog () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( use EventBus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunregister ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠF Ġ: ĠFragment > ĠContext . new Fragment ( var arg Ġargs : ĠPair < String , ĠString >): ĠF Ġ{ ĊĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠ Ġargs . let Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( arg Ġin Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( arg . first , Ġarg . second ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠFragment . instantiate ( this , ĠF :: class . java . name , Ġbundle ) Ġas ĠF Ċ }