package Ġt aiwan . no 1 . app . ss fm . features . base Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Fragment Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Call Super Ċ import Ġandroid . support . annotation . Layout Res Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . trello . rx lifecycle 2 . components . Rx Fragment Ċ import Ġdagger . android . Android Injection Ċ import Ġdagger . android . Android Injector Ċ import Ġdagger . android . Dispatch ing Android Injector Ċ import Ġdagger . android . Has Fragment Injector Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠBase Ġfragment Ġfor Ġcollecting Ġall Ġcommon Ġmethods Ġhere . Ċ Ġ* Ċ Ġ* Ġ@ author Ġ Ġji ey i Ċ Ġ* Ġ@ since ĠĠĠ 5 / 9 / 1 7 Ċ Ġ*/ Ċ abstract Ġclass ĠBase Fragment Ġ: ĠRx Fragment (), ĠHas Fragment Injector Ġ{ ĊĠĠĠ Ġ/** ĠFrom Ġan Ġactivity Ġfor Ġproviding Ġto Ġchildren Ġsearch Fragments . Ġ*/ ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġchild Fragment Injector : ĠDispatch ing Android Injector < Fragment > ĊĊĠĠĠ Ġprotected Ġopen Ġvar Ġroot View : ĠView ? Ġ= Ġnull ĊĊĠĠĠ Ġ// region ĠFragment Ġcycle ĊĠĠĠ Ġ/** ĠPerform Ġinjection Ġhere Ġbefore ĠM , ĠL Ġ( API Ġ 2 2 ) Ġand Ġbelow Ġbecause Ġthis Ġis Ġnot Ġyet Ġavailable Ġat ĠL . Ġ*/ ĊĠĠĠ Ġ@ SuppressWarnings (" deprecation ") ĊĠĠĠ Ġoverride Ġfun Ġon Attach ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Injection . inject ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠPerform Ġinjection Ġhere Ġfor ĠM Ġ( API Ġ 2 3 ) Ġdue Ġto Ġdeprecation Ġof Ġon Attach ( Activity ). Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Injection . inject ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠKeep Ġthe Ġinstance Ġdata . ĊĠĠĠĠĠĠĠ Ġretain Instance Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// ĠFIX ED : Ġhttps :// www . zy bul uo . com / k imo / note / 2 5 5 2 4 4 ĊĠĠĠĠĠĠĠ Ġroot View Ġ?: Ġlet Ġ{ Ġroot View Ġ= Ġinflater . inflate ( provide Inf late View (), Ġnull ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġparent : ĠViewGroup ? Ġ= Ġroot View ?. parent Ġas ĠViewGroup ? ĊĠĠĠĠĠĠĠ Ġparent ?. remove View ( root View ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġrendered ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠBase Ġactivity Ġimplement ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġfragment 's Ġview Ġis Ġrendered Ġso Ġfrom Ġthis Ġmethod Ġwe Ġcan Ġdo Ġsome Ġoperations Ġfor Ġviews , Ġas Ġlike , ĊĠĠĠĠ Ġ* Ġset Ġlisteners Ġor Ġanimations ... etc . ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġwill Ġbe Ġcalled Ġeach Ġof Ġtime Ġwhen Ġthe Ġfragment Ġre appe ars . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState Ġbefore Ġstatus . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġrendered ( savedInstanceState : ĠBundle ?) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġview Ġfor Ġinfl ating . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Layout Res ] Ġlayout Ġxml . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Layout Res Ġprotected Ġabstract Ġfun Ġprovide Inf late View (): ĠInt ĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPro viding Ġthe Ġfragment Ġinjector ([ Fragment ]) Ġfor Ġthis Ġchildren Ġof Ġsearch Fragments . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ fragment Injector ] Ġfor Ġchildren Ġof Ġthis Ġfragment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġfragment Injector (): ĠAndroid Injector < Fragment > Ġ= Ġchild Fragment Injector Ċ }