package Ġjp . j ug g ler . sub way to oter . column čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . view . View č Ċ import Ġjp . j ug g ler . sub way to oter .* č Ċ import Ġjp . j ug g ler . sub way to oter . api . entity . EntityId č Ċ import Ġjp . j ug g ler . sub way to oter . api . entity . Timeline Item č Ċ import Ġjp . j ug g ler . sub way to oter . api . entity . To ot Status č Ċ import Ġjp . j ug g ler . sub way to oter . column view holder . Column ViewHolder č Ċ import Ġjp . j ug g ler . sub way to oter . pref . Pref B č Ċ import Ġjp . j ug g ler . util . Log Category č Ċ import Ġjp . j ug g ler . util . get Adaptive R ipple Drawable č Ċ import Ġjp . j ug g ler . util . not Zero č Ċ import Ġjp . j ug g ler . util . show Toast č Ċ import Ġorg . jetbrains . ank o . background Drawable čĊč Ċ private Ġval Ġlog Ġ= ĠLog Category (" Column Extra 1 ") čĊč Ċ //////////////////////////////////////////////// /// č Ċ // ĠViewHolder ãģ¨ ãģ® éĢ£ æĲ º čĊč Ċ fun ĠColumn . can Remote Only () Ġ= Ġwhen Ġ( type ) Ġ{ čĊĠĠĠ ĠColumn Type . F ED ER ATE , ĠColumn Type . F ED ER ATED _ AR O UND Ġ-> Ġtrue čĊĠĠĠ Ġelse Ġ-> Ġfalse č Ċ } čĊč Ċ fun ĠColumn . can Reload When Refresh Top (): ĠBoolean Ġ= Ġwhen Ġ( type ) Ġ{ čĊčĊĠĠĠ ĠColumn Type . KEYWORD _ FILTER , čĊĠĠĠ ĠColumn Type . SEARCH , čĊĠĠĠ ĠColumn Type . SEARCH _ MSP , čĊĠĠĠ ĠColumn Type . SEARCH _ TS , čĊĠĠĠ ĠColumn Type . SEARCH _ NOT EST O CK , čĊĠĠĠ ĠColumn Type . CONVER S ATION , čĊĠĠĠ ĠColumn Type . LIST _ LIST , čĊĠĠĠ ĠColumn Type . TRE ND _ TAG , čĊĠĠĠ ĠColumn Type . FOLLOW _ SU G GEST ION , čĊĠĠĠ ĠColumn Type . PROFILE _ DIRECTORY , čĊĠĠĠ Ġ-> Ġtrue čĊčĊĠĠĠ ĠColumn Type . LIST _ MEMBER , čĊĠĠĠ ĠColumn Type . MUT ES , čĊĠĠĠ ĠColumn Type . FOLLOW _ REQUEST S , čĊĠĠĠ Ġ-> Ġis Miss key čĊčĊĠĠĠ Ġelse Ġ-> Ġfalse č Ċ } čĊč Ċ // ĠãĤ « ãĥ© ãĥł æĵįä½ľ çļĦãģ« ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ ãĤĴ è¨± å®¹ ãģĻãĤĭ ãģĭ ãģ© ãģĨ ãģĭ č Ċ fun ĠColumn . can Refresh Top By Swipe (): ĠBoolean Ġ= čĊĠĠĠ Ġcan Reload When Refresh Top () Ġ|| čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn Type . CONVER S ATION , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn Type . INSTANCE _ INFORMATION , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊč Ċ // ĠãĤ « ãĥ© ãĥł æĵįä½ľ çļĦãģ« ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ ãĤĴ è¨± å®¹ ãģĻãĤĭ ãģĭ ãģ© ãģĨ ãģĭ č Ċ fun ĠColumn . can Refresh Bottom By Swipe (): ĠBoolean Ġ= Ġwhen Ġ( type ) Ġ{ čĊĠĠĠ ĠColumn Type . LIST _ LIST , čĊĠĠĠ ĠColumn Type . CONVER S ATION , čĊĠĠĠ ĠColumn Type . INSTANCE _ INFORMATION , čĊĠĠĠ ĠColumn Type . KEYWORD _ FILTER , čĊĠĠĠ ĠColumn Type . SEARCH , čĊĠĠĠ ĠColumn Type . TRE ND _ TAG , čĊĠĠĠ ĠColumn Type . FOLLOW _ SU G GEST ION , čĊĠĠĠ Ġ-> Ġfalse čĊčĊĠĠĠ ĠColumn Type . FOLLOW _ REQUEST S Ġ-> Ġis Miss key čĊčĊĠĠĠ ĠColumn Type . LIST _ MEMBER Ġ-> Ġ! is Miss key čĊčĊĠĠĠ Ġelse Ġ-> Ġtrue č Ċ } čĊč Ċ // Ġãĥĩãĥ¼ãĤ¿ çļĦãģ« ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ ãĤĴ è¨± å®¹ ãģĻãĤĭ ãģĭ ãģ© ãģĨ ãģĭ č Ċ fun ĠColumn . can Refresh Top (): ĠBoolean Ġ= Ġwhen Ġ( paging Type ) Ġ{ čĊĠĠĠ ĠColumn Paging Type . Default Ġ-> Ġid Recent Ġ!= Ġnull čĊĠĠĠ Ġelse Ġ-> Ġfalse č Ċ } čĊč Ċ // Ġãĥĩãĥ¼ãĤ¿ çļĦãģ« ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ ãĤĴ è¨± å®¹ ãģĻãĤĭ ãģĭ ãģ© ãģĨ ãģĭ č Ċ fun ĠColumn . can Refresh Bottom (): ĠBoolean Ġ= Ġwhen Ġ( paging Type ) Ġ{ čĊĠĠĠ ĠColumn Paging Type . Default , ĠColumn Paging Type . Cursor Ġ-> Ġid Old Ġ!= Ġnull čĊĠĠĠ ĠColumn Paging Type . None Ġ-> Ġfalse čĊĠĠĠ ĠColumn Paging Type . Offset Ġ-> Ġtrue č Ċ } čĊč Ċ fun ĠColumn . get Icon Id (): ĠInt Ġ= Ġtype . icon Id ( access Info . acct ) čĊč Ċ fun ĠColumn . get ColumnName ( long : ĠBoolean ) Ġ= čĊĠĠĠ Ġtype . name 2 ( this , Ġlong ) Ġ?: Ġtype . name 1 ( context ) čĊč Ċ fun ĠColumn . getContent Color () Ġ= Ġcontent Color . not Zero () Ġ?: ĠColumn . default Color Content Text čĊč Ċ fun ĠColumn . get Ac ct Color () Ġ= Ġac ct Color . not Zero () Ġ?: ĠColumn . default Color Content Ac ct čĊč Ċ fun ĠColumn . getHeader Page Number Color () Ġ= čĊĠĠĠ Ġheader Fg Color . not Zero () Ġ?: ĠColumn . default Color Header Page Number čĊč Ċ fun ĠColumn . getHeader Name Color () Ġ= Ġheader Fg Color . not Zero () Ġ?: ĠColumn . default Color Header Name čĊč Ċ fun ĠColumn . getHeader BackgroundColor () Ġ= Ġheader Bg Color . not Zero () Ġ?: ĠColumn . default Color Header Bg čĊč Ċ fun ĠColumn . setHeader Background ( view : ĠView ) Ġ{ čĊĠĠĠ Ġview . background Drawable Ġ= Ġget Adaptive R ipple Drawable ( čĊĠĠĠĠĠĠĠ Ġget Header BackgroundColor (), čĊĠĠĠĠĠĠĠ Ġget Header Name Color () čĊĠĠĠ Ġ) č Ċ } čĊč Ċ val ĠColumn . has Has ht ag Extra : ĠBoolean čĊĠĠĠ Ġget () Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠ Ġis Miss key Ġ-> Ġfalse čĊĠĠĠĠĠĠĠ Ġtype Ġ== ĠColumn Type . HAS HT AG Ġ-> Ġtrue čĊĠĠĠĠĠĠĠ Ġ// ĠColumn Type . HAS HT AG _ FROM _ AC CT Ġãģ¯ è¿½åĬł ãģ® ãĤ¿ ãĤ° ãĤĴæĮĩå®ļ ãģĹãģ¦ ãĤĤ çµĲæŀľ ãģ« åıį æĺł ãģķãĤĮ ãģªãģĦ čĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse čĊĠĠĠ Ġ} čĊč Ċ fun ĠColumn . getHeader Desc (): ĠString Ġ{ čĊĠĠĠ Ġvar Ġcache Ġ= Ġcache Header Desc čĊĠĠĠ Ġif Ġ( cache Ġ!= Ġnull ) Ġreturn Ġcache čĊĠĠĠ Ġcache Ġ= Ġwhen Ġ( type ) Ġ{ čĊĠĠĠĠĠĠĠ ĠColumn Type . SEARCH Ġ-> Ġcontext . getString ( R . string . search _ desc _ mast od on _ api ) čĊĠĠĠĠĠĠĠ ĠColumn Type . SEARCH _ MSP Ġ-> Ġload Search Desc ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . raw . search _ desc _ msp _ en , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . raw . search _ desc _ msp _ ja čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ ĠColumn Type . SEARCH _ TS Ġ-> Ġload Search Desc ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . raw . search _ desc _ ts _ en , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . raw . search _ desc _ ts _ ja čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ ĠColumn Type . SEARCH _ NOT EST O CK Ġ-> Ġload Search Desc ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . raw . search _ desc _ not est ock _ en , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . raw . search _ desc _ not est ock _ ja čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" čĊĠĠĠ Ġ} čĊĠĠĠ Ġcache Header Desc Ġ= Ġcache čĊĠĠĠ Ġreturn Ġcache č Ċ } čĊč Ċ fun ĠColumn . has Multiple ViewHolder (): ĠBoolean Ġ= Ġlist ViewHolder . size Ġ> Ġ 1 čĊč Ċ fun ĠColumn . addColumn ViewHolder ( cv h : ĠColumn ViewHolder ) Ġ{ čĊčĊĠĠĠ Ġ// Ġ çı¾åľ¨ ãģ® ãĥªãĤ¹ãĥĪ ãģ« ãģĤãĤĭ ãģª ãĤī åīĬéĻ¤ ãģĻãĤĭ čĊĠĠĠ Ġremove Column ViewHolder ( cv h ) čĊčĊĠĠĠ Ġ// Ġ æľĢ å¾Į ãģ« è¿½åĬł ãģķãĤĮãģŁ ãĤĤãģ® ãģĮ åħĪ éł Ń ãģ« ãģı ãĤĭ ãĤĪãģĨãģ« ãģĻãĤĭ čĊĠĠĠ Ġ// Ġ åĳ¼ ãģ³ åĩº ãģĹ ãģ® å¾Į ãģ« å¿ħ ãģļ è¿½åĬł ãģķãĤĮãģ¦ãģĦãĤĭ ãĤĪãģĨãģ« ãģĻãĤĭ čĊĠĠĠ Ġlist ViewHolder . add First ( cv h ) č Ċ } čĊč Ċ //////////////////////////////////////////////////////////////// / čĊč Ċ // ĠAct Main Ġãģ® è¡¨ç¤º éĸĭå§ĭ æĻĤ ãģ« åĳ¼ ãģ° ãĤĮãĤĭ č Ċ fun ĠColumn . on Activity Start () Ġ{ čĊčĊĠĠĠ Ġ// Ġ çł´ æ£ Ħ ãģķãĤĮãģŁ ãĤ« ãĥ© ãĥł ãģª ãĤī ä½ķ ãĤĤ ãģĹãģªãģĦ čĊĠĠĠ Ġif Ġ( is Dispose . get ()) Ġ{ čĊĠĠĠĠĠĠĠ Ġlog . d (" onStart : Ġcolumn Ġwas Ġdisposed .") čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// Ġ æľª åĪĿ æľŁ åĮĸ ãģª ãĤī ä½ķ ãĤĤ ãģĹãģªãģĦ čĊĠĠĠ Ġif Ġ(! b First Initialized ) Ġ{ čĊĠĠĠĠĠĠĠ Ġlog . d (" onStart : Ġcolumn Ġis Ġnot Ġinitialized .") čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// Ġ åĪĿ æľŁ ãĥŃ ãĥ¼ãĥī ä¸Ń ãģª ãĤī ä½ķ ãĤĤ ãģĹãģªãģĦ čĊĠĠĠ Ġif Ġ( b Initial Loading ) Ġ{ čĊĠĠĠĠĠĠĠ Ġlog . d (" onStart : Ġcolumn Ġis Ġin Ġinitial Ġloading .") čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// Ġãĥķ ãĤ£ ãĥ« ãĤ¿ ä¸Ģ è¦§ ãģ® ãĥª ãĥŃ ãĥ¼ãĥī ãģĮ å¿ħè¦ģ čĊĠĠĠ Ġif Ġ( filter Reload Required ) Ġ{ čĊĠĠĠĠĠĠĠ Ġfilter Reload Required Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġstart Loading () čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// Ġ å§ĭ ç«¯ ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ ãģ® æľĢ ä¸Ń ãģł ãģ£ãģŁ čĊĠĠĠ Ġ// Ġ ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ çµĤ äºĨ æĻĤ ãģ« èĩªåĭķ ãģ§ ãĤ¹ãĥĪ ãĥª ãĥ¼ãĥ Ł ãĥ³ãĤ° éĸĭå§ĭ ãģĻãĤĭ ãģ¯ ãģļ čĊĠĠĠ Ġif Ġ( b Refresh ing Top ) Ġ{ čĊĠĠĠĠĠĠĠ Ġlog . d (" onStart : Ġb Refresh ing Top Ġis Ġtrue .") čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġif Ġ(! b Refresh Loading Ġ&& čĊĠĠĠĠĠĠĠ Ġcan Auto Refresh () Ġ&& čĊĠĠĠĠĠĠĠ Ġ! Pref B . bp Dont Refresh On Resume ( app State . pref ) Ġ&& čĊĠĠĠĠĠĠĠ Ġ! dont Auto Refresh čĊĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ġ ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ ãģĹãģ¦ ãģĭãĤī ãĤ¹ãĥĪ ãĥª ãĥ¼ãĥ Ł ãĥ³ãĤ° éĸĭå§ĭ čĊĠĠĠĠĠĠĠ Ġlog . d (" onStart : Ġstart Ġauto Ġrefresh .") čĊĠĠĠĠĠĠĠ Ġstart Refresh ( b Sil ent Ġ= Ġtrue , Ġb Bottom Ġ= Ġfalse ) čĊĠĠĠ Ġ} Ġelse Ġif Ġ( is Search Column ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ġæ ¤ ľç´¢ ãĤ« ãĥ© ãĥł ãģ¯ ãĥª ãĥķ ãĥ¬ ãĥĥ ãĤ·ãĥ¥ ãĤĤ ãĤ¹ãĥĪ ãĥª ãĥ¼ãĥ Ł ãĥ³ãĤ° ãĤĤ ãģªãģĦ ãģĮ ãĢģ è¡¨ç¤º éĸĭå§ĭ ãģ® ãĤ¿ãĤ¤ ãĥŁ ãĥ³ãĤ° ãģ§ ãĥªãĤ¹ãĥĪ ãģ® åĨį æıı çĶ» ãĤĴè¡Į ãģĦ ãģŁ ãģĦ čĊĠĠĠĠĠĠĠ Ġfire Show Content ( reason Ġ= Ġ" Column ĠonStart Ġis Search Column ", Ġreset Ġ= Ġtrue ) čĊĠĠĠ Ġ} Ġelse Ġif Ġ( can Streaming State () Ġ&& Ġcan Streaming Type ()) Ġ{ čĊĠĠĠĠĠĠĠ Ġ// ĠãĤ ® ãĥ£ ãĥĥãĥĹ ãģ¤ ãģį ãģ§ ãĤ¹ãĥĪ ãĥª ãĥ¼ãĥ Ł ãĥ³ãĤ° éĸĭå§ĭ čĊĠĠĠĠĠĠĠ Ġthis . b Put Gap Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġfire Show Column Status () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun ĠColumn . cancel Last Task () Ġ{ čĊĠĠĠ Ġif Ġ( last Task Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠ Ġlast Task ?. cancel () čĊĠĠĠĠĠĠĠ Ġlast Task Ġ= Ġnull čĊĠĠĠĠĠĠĠ Ġ// čĊĠĠĠĠĠĠĠ Ġb Initial Loading Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġb Refresh Loading Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġm Initial Loading Error Ġ= Ġcontext . getString ( R . string . cancelled ) čĊĠĠĠ Ġ} č Ċ } čĊč Ċ // ĉ @ Nullable ĠString Ġparse Max Id ( ĠT oot Api Result Ġresult Ġ){ č Ċ // ĉ ĉ if ( Ġresult Ġ!= Ġnull Ġ&& Ġresult . link _ older Ġ!= Ġnull Ġ){ č Ċ // ĉĉ ĉ Matcher Ġm Ġ= Ġre Max Id . matcher ( Ġresult . link _ older Ġ); č Ċ // ĉĉ ĉ if ( Ġm . get () Ġ) Ġreturn Ġm . group ( Ġ 1 Ġ); č Ċ // ĉ ĉ } č Ċ // ĉ ĉ return Ġnull ; č Ċ // ĉ } čĊč Ċ fun ĠColumn . start Loading () Ġ{ čĊĠĠĠ Ġcancel Last Task () čĊčĊĠĠĠ Ġinit Filter () čĊčĊĠĠĠ ĠColumn . show Open St icker Ġ= ĠPref B . bp Open St icker ( app State . pref ) čĊčĊĠĠĠ Ġm Refresh Loading Error Popup State Ġ= Ġ 0 čĊĠĠĠ Ġm Refresh Loading Error Ġ= Ġ"" čĊĠĠĠ Ġm Initial Loading Error Ġ= Ġ"" čĊĠĠĠ Ġb First Initialized Ġ= Ġtrue čĊĠĠĠ Ġb Initial Loading Ġ= Ġtrue čĊĠĠĠ Ġb Refresh Loading Ġ= Ġfalse čĊĠĠĠ Ġid Old Ġ= Ġnull čĊĠĠĠ Ġid Recent Ġ= Ġnull čĊĠĠĠ Ġoffset Next Ġ= Ġ 0 čĊĠĠĠ Ġpaging Type Ġ= ĠColumn Paging Type . Default čĊčĊĠĠĠ Ġduplicate Map . clear () čĊĠĠĠ Ġlist Data . clear () čĊĠĠĠ Ġfire Show Content ( reason Ġ= Ġ" loading Ġstart ", Ġreset Ġ= Ġtrue ) čĊčĊĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") čĊĠĠĠ Ġval Ġtask Ġ= ĠColumn Task _ Loading ( this ) čĊĠĠĠ Ġthis . last Task Ġ= Ġtask čĊĠĠĠ Ġtask . start () č Ċ } čĊč Ċ fun ĠColumn . start Refresh ( čĊĠĠĠ Ġb Sil ent : ĠBoolean , čĊĠĠĠ Ġb Bottom : ĠBoolean , čĊĠĠĠ Ġposted Status Id : ĠEntity Id ? Ġ= Ġnull , čĊĠĠĠ Ġrefresh After To ot : ĠInt Ġ= Ġ- 1 , č Ċ ) Ġ{ čĊčĊĠĠĠ Ġif Ġ( last Task Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ(! b Sil ent ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . show Toast ( true , ĠR . string . column _ is _ busy ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠviewHolder čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( holder Ġ!= Ġnull ) Ġholder . refresh Layout . is Refresh ing Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} Ġelse Ġif Ġ( b Bottom Ġ&& Ġ! can Refresh Bottom ()) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ(! b Sil ent ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . show Toast ( true , ĠR . string . end _ of _ list ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠviewHolder čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( holder Ġ!= Ġnull ) Ġholder . refresh Layout . is Refresh ing Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} Ġelse Ġif Ġ(! b Bottom Ġ&& Ġ! can Refresh Top ()) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠviewHolder čĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġ!= Ġnull ) Ġholder . refresh Layout . is Refresh ing Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġstart Loading () čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġif Ġ( b Sil ent ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠviewHolder čĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . refresh Layout . is Refresh ing Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġif Ġ(! b Bottom ) Ġ{ čĊĠĠĠĠĠĠĠ Ġb Refresh ing Top Ġ= Ġtrue čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġb Refresh Loading Ġ= Ġtrue čĊĠĠĠ Ġm Refresh Loading Error Ġ= Ġ"" čĊčĊĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") čĊĠĠĠ Ġval Ġtask Ġ= ĠColumn Task _ Refresh ( this , Ġb Sil ent , Ġb Bottom , Ġposted Status Id , Ġrefresh After To ot ) čĊĠĠĠ Ġthis . last Task Ġ= Ġtask čĊĠĠĠ Ġtask . start () čĊĠĠĠ Ġfire Show Column Status () č Ċ } čĊč Ċ fun ĠColumn . start Refresh For Post ( čĊĠĠĠ Ġrefresh After Post : ĠInt , čĊĠĠĠ Ġposted Status Id : ĠEntity Id , čĊĠĠĠ Ġposted Reply Id : ĠEntity Id ?, č Ċ ) Ġ{ čĊĠĠĠ Ġwhen Ġ( type ) Ġ{ čĊĠĠĠĠĠĠĠ ĠColumn Type . HOME , čĊĠĠĠĠĠĠĠ ĠColumn Type . LOCAL , čĊĠĠĠĠĠĠĠ ĠColumn Type . F ED ER ATE , čĊĠĠĠĠĠĠĠ ĠColumn Type . DIRECT _ MESSAGES , čĊĠĠĠĠĠĠĠ ĠColumn Type . MIS S KEY _ HY BR ID , čĊĠĠĠĠĠĠĠ Ġ-> Ġstart Refresh ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġb Sil ent Ġ= Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġb Bottom Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġposted Status Id Ġ= Ġposted Status Id , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh After To ot Ġ= Ġrefresh After Post čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ ĠColumn Type . PROFILE Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( profile Tab Ġ== ĠProfile Tab . Status Ġ&& Ġprofile Id Ġ== Ġaccess Info . login Account ?. id ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Refresh ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Sil ent Ġ= Ġtrue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Bottom Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposted Status Id Ġ= Ġposted Status Id , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh After To ot Ġ= Ġrefresh After Post čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠColumn Type . CONVER S ATION Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¼ļ è© ± ãģ¸ãģ® è¿Ķ ä¿¡ ãģĮ è¡Į ãĤı ãĤĮ ãģŁ ãģª ãĤī ä¼ļ è© ± ãĤĴ æĽ´æĸ° ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( posted Reply Id Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġlist Data ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġis ĠT oot Status Ġ&& Ġitem . id Ġ== Ġposted Reply Id ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Loading () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠThrowable ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUnit čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun ĠColumn . start Gap ( gap : ĠTimeline Item ?, Ġis Head : ĠBoolean ) Ġ{ čĊčĊĠĠĠ Ġif Ġ( gap Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠ Ġcontext . show Toast ( true , Ġ" gap Ġis Ġnull ") čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġif Ġ( last Task Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠ Ġcontext . show Toast ( true , ĠR . string . column _ is _ busy ) čĊĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Suppress (" UN NE C ESS ARY _ SAFE _ CALL ") čĊĠĠĠ ĠviewHolder ?. refresh Layout ?. is Refresh ing Ġ= Ġtrue čĊčĊĠĠĠ Ġb Refresh Loading Ġ= Ġtrue čĊĠĠĠ Ġm Refresh Loading Error Ġ= Ġ"" čĊčĊĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") čĊĠĠĠ Ġval Ġtask Ġ= ĠColumn Task _ Gap ( this , Ġgap , Ġis Head Ġ= Ġis Head ) čĊĠĠĠ Ġthis . last Task Ġ= Ġtask čĊĠĠĠ Ġtask . start () čĊĠĠĠ Ġfire Show Column Status () č Ċ } čĊ