package Ġcom . effective . android . component . project . view Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Pager Adapter Ċ import Ġcom . effective . android . base . fragment . Base Vm Fragment Ċ import Ġcom . effective . android . component . project . R Ċ import Ġcom . effective . android . component . project . vm . Project ViewModel Ċ import Ġcom . effective . android . component . blog . bean . Chapter Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġkotlinx . android . synt hetic . main . project _ fragment _ la out .* Ċ Ċ class ĠProject Fragment Ġ: ĠBase Vm Fragment < Project ViewModel >() Ġ{ ĊĊĠĠĠ Ġvar Ġfetch Project Disposable : ĠDis posable ? Ġ= Ġnull ĊĠĠĠ Ġval Ġarticle Fragments : ĠHashMap < Int , ĠArticle Fragment > Ġ= ĠHashMap () ĊĠĠĠ Ġvar Ġprojects : ĠList < Chapter >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewModel (): ĠClass < Project ViewModel > Ġ= ĠProject ViewModel :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res (): ĠInt Ġ= ĠR . layout . project _ fragment _ la out ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpage State . to Loading (" æŃ£åľ¨ åĬłè½½ ") ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġpage State . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġfetch Project Disposable Ġ= ĠviewModel . get Projects () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . data . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage State . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprojects Ġ= Ġit . data !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle Pager . adapter Ġ= Ġobject Ġ: ĠFragment Pager Adapter ( child FragmentManager ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfragment : ĠArticle Fragment ? Ġ= Ġarticle Fragments [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= ĠArticle Fragment ( projects ! ![ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle Fragments [ position ] Ġ= Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġprojects !!. size ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Page Title ( position : ĠInt ): ĠCharSequence ? Ġ= Ġprojects ! ![ position ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Layout . set ViewPager ( article Pager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage State . to Empty (" å½ĵåīį é¡µéĿ¢ æ²¡æľī é¡¹çĽ® ", Ġ" å°Ŀè¯ķ åĪ·æĸ° ", ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage State . to Loading (" æŃ£åľ¨ åĬłè½½ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage State . to Empty (" ç½ĳç»ľ è¯·æ±Ĥ å¤±è´¥ ", Ġ" éĩįæĸ° åĪ·æĸ° ", ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage State . to Loading (" æŃ£åľ¨ åĬłè½½ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage State . to Empty (" ç½ĳç»ľ è¯·æ±Ĥ å¤±è´¥ ", Ġ" éĩįæĸ° åĪ·æĸ° ", ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage State . to Loading (" æŃ£åľ¨ åĬłè½½ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( fetch Project Disposable Ġ!= Ġnull Ġ&& Ġfetch Project Disposable !!. is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Project Disposable ?. dispose () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }