package Ġcom . k ido zh . dis cu zh ub . adapter Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Activity Options Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . text . Html Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Pair Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . Priority Ċ import Ġcom . bump tech . glide . integration . okhttp 3 . Ok Http Url Loader Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . model . G lide Url Ċ import Ġcom . bump tech . glide . load . model . Lazy Headers Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . google . android . material . image view . Shape able ImageView Ċ import Ġcom . k ido zh . dis cu zh ub . R Ċ import Ġcom . k ido zh . dis cu zh ub . activities . Thread Activity Ċ import Ġcom . k ido zh . dis cu zh ub . activities . UserProfile Activity Ċ import Ġcom . k ido zh . dis cu zh ub . da os . View History Dao Ċ import Ġcom . k ido zh . dis cu zh ub . database . View History Database . Companion . getInstance Ċ import Ġcom . k ido zh . dis cu zh ub . entities . Dis cu z Ċ import Ġcom . k ido zh . dis cu zh ub . entities . Thread Ċ import Ġcom . k ido zh . dis cu zh ub . entities . Thread . Companion . Thread Diff Callback Ċ import Ġcom . k ido zh . dis cu zh ub . entities . User Ċ import Ġcom . k ido zh . dis cu zh ub . results . Forum Result . Short Reply Ċ import Ġcom . k ido zh . dis cu zh ub . utilities .* Ċ import Ġcom . k ido zh . dis cu zh ub . utilities . Animation Utils . get Recycler view Animation Ċ import Ġcom . k ido zh . dis cu zh ub . utilities . Time Display Utils . Companion . getLocale Past Time String Ċ import Ġcom . k ido zh . dis cu zh ub . utilities . User Preference Utils . conc ise RecyclerView Ċ import Ġjava . io . InputStream Ċ import Ġjava . util .* Ċ Ċ class ĠThread Adapter ( var Ġthread Type : ĠMap < String , ĠString > ?, Ġvar Ġb bs Info : ĠDis cu z , Ġvar Ġuser Brief Info : ĠUser ?) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġthread List : ĠMutable List < Thread > Ġ= ĠArrayList () ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġignore Digest Style Ġ= Ġfalse ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġvar Ġview History Dao : ĠView History Dao ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthread List [ position ]. tid . to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate List ( new Thread List : ĠList < Thread > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( new Thread List Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG ," Update Ġnew Ġthreads Ġ"+ new Thread List . size ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDiff Util . calculate Diff ( Thread Diff Callback ( thread List , Ġnew Thread List )) ĊĠĠĠĠĠĠĠ Ġthis . thread List Ġ= Ġnew Thread List Ġas ĠMutable List < Thread > ĊĠĠĠĠĠĠĠ Ġresult . dispatch Updates To ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate List And Type ( new Thread List : ĠList < Thread > ?, Ġthread Type : ĠMap < String , ĠString >? ){ ĊĠĠĠĠĠĠĠ Ġthis . thread Type Ġ= Ġthread Type ĊĠĠĠĠĠĠĠ Ġupdate List ( new Thread List ) ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġfun Ġclear List () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġold Size Ġ= Ġthread List . size Ċ // ĠĠĠĠĠĠĠ Ġthread List . clear () Ċ // ĠĠĠĠĠĠĠ Ġnotify Item Range Removed ( 0 , Ġold Size ) Ċ // ĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġfun Ġadd Thread InfoList ( thread List : ĠList < Thread >, Ġthread Type : ĠMap < String , ĠString > ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġthis . thread Type Ġ= Ġthread Type Ċ // ĠĠĠĠĠĠĠ Ġval Ġold Size Ġ= Ġthis . thread List . size Ċ // ĠĠĠĠĠĠĠ Ġthis . thread List . addAll ( thread List ) Ċ // ĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Insert Ġto Ġthread Ġadapter Ġstarting Ġat Ġ" Ġ+ Ġold Size Ġ+ Ġ" Ġcount Ġ" Ġ+ Ġthread List . size ) Ċ // ĠĠĠĠĠĠĠ Ġnotify Item Range Inserted ( old Size , Ġthread List . size ) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Ġ= Ġthread List [ position ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( thread . display Order Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ thread ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ thread _ pinned ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġview History Dao Ġ= ĠgetInstance ( context ). dao ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġshould Attach To Parent Immediate ly Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! ignore Digest Style Ġ&& Ġview Type Ġ== ĠR . layout . item _ thread _ pinned ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . item _ thread _ pinned , Ġparent , Ġshould Attach To Parent Immediate ly ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPin ned ViewHolder ( view ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnormal Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! conc ise RecyclerView ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . item _ thread , Ġparent , Ġshould Attach To Parent Immediate ly ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread ViewHolder ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . item _ thread _ conc ise , Ġparent , Ġshould Attach To Parent Immediate ly ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCon c ise Thread ViewHolder ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder Raw : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Ġ= Ġthread List [ position ] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Raw Ġis ĠPin ned ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġholder Raw ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= ĠHtml . from Html ( thread . subject ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp ann able String Ġ= ĠSp ann able String ( sp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Title . setText ( span nable String , ĠTextView . Buffer Type . SPAN N ABLE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthread Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . display Order Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext Resource Ġ= ĠR . string . bbs _ forum _ pinned ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Resource Ġ= Ġwhen Ġ( thread . display Order ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠR . string . display _ order _ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠR . string . display _ order _ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠR . string . display _ order _ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> ĠR . string . display _ order _ n 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 2 Ġ-> ĠR . string . display _ order _ n 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 3 Ġ-> ĠR . string . display _ order _ n 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 4 Ġ-> ĠR . string . display _ order _ n 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . string . bbs _ forum _ pinned ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . setText ( text Resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// holder . m Thread Type . set BackgroundColor ( context . getColor ( R . color . color Accent )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread Type Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprovided Ġby Ġlabel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġthread Type ! ![ java . lang . String . valueOf ( thread . type Id )] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Sp anned Ġ= ĠHtml . from Html ( type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Sp ann able String Ġ= ĠSp ann able String ( thread Sp anned ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . text Ġ= Ġthread Sp ann able String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . setText ( R . string . bbs _ forum _ pinned ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Card view . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠThread Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ ENTITY _ KEY , Ġb bs Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ USER _ KEY , Ġuser Brief Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ THREAD _ KEY , Ġthread ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" F ID ", Ġthread . fid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" TID ", Ġthread . tid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" SUBJECT ", Ġthread . subject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV ibrate Utils . vi br ate For Click ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options . make Scene Transition Animation ( context Ġas ĠActivity ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . create ( holder . m Title , Ġ" bbs _ thread _ subject ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġoptions . to Bundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent , Ġbundle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( holder Raw Ġis ĠThread ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġholder Raw ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= ĠHtml . from Html ( thread . subject ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp ann able String Ġ= ĠSp ann able String ( sp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Title . setText ( span nable String , ĠTextView . Buffer Type . SPAN N ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread View Num . text Ġ= Ġnumber Format Utils . get Short Number Text ( thread . views ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Reply Num . text Ġ= Ġnumber Format Utils . get Short Number Text ( thread . replies ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Publish Date . text Ġ= Ġget Locale Past Time String ( context , Ġthread . publish At !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . display Order Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext Resource Ġ= ĠR . string . bbs _ forum _ pinned ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Resource Ġ= Ġwhen Ġ( thread . display Order ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠR . string . display _ order _ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠR . string . display _ order _ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠR . string . display _ order _ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> ĠR . string . display _ order _ n 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 2 Ġ-> ĠR . string . display _ order _ n 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 3 Ġ-> ĠR . string . display _ order _ n 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 4 Ġ-> ĠR . string . display _ order _ n 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . string . bbs _ forum _ pinned ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . setText ( text Resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// holder . m Thread Type . set BackgroundColor ( context . getColor ( R . color . color Accent )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread Type Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprovided Ġby Ġlabel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġthread Type ! ![ java . lang . String . valueOf ( thread . type Id )] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Sp anned Ġ= ĠHtml . from Html ( type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Sp ann able String Ġ= ĠSp ann able String ( thread Sp anned ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . text Ġ= Ġthread Sp ann able String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . text Ġ= ĠString . format ("% s ", Ġposition Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// holder . m Thread Type . set BackgroundColor ( context . getColor ( R . color . Thread Type BackgroundColor )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Publisher . text Ġ= Ġthread . author ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġavatar _ num Ġ= Ġthread . author Id Ġ% Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( avatar _ num Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar _ num Ġ= Ġ- avatar _ num ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavatar Resource Ġ= Ġcontext . resources . getIdentifier ( String . format (" avatar _% s ", Ġavatar _ num Ġ+ Ġ 1 ), Ġ" drawable ", Ġcontext . packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠOk Http Url Loader . Factory ( Network Utils . get Preferred Client ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . get ( context ). registry . replace ( G lide Url :: class . java , ĠInputStream :: class . java , Ġfactory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĠURL Utils . get Small Avatar Url By Uid ( thread . author Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( context . get Drawable ( avatar Resource )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( context . get Drawable ( avatar Resource )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. priority ( Priority . HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg lide Url Ġ= ĠG lide Url ( source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLazy Headers . Builder (). add Header (" refer er ", Ġb bs Info . base _ url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Network Utils . can Download Image Or File ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( glide Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . m Avatar Image view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( glide Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. only Retrieve From Cache ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . m Avatar Image view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġshort Ġreply ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . recommend Num Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Recommendation Number . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Recommendation Number . text Ġ= Ġnumber Format Utils . get Short Number Text ( thread . recommend Num ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Recommendation Number . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . read Perm Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Read Perm . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Read Perm . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Read Perm . text Ġ= Ġjava . lang . String . valueOf ( thread . read Perm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// holder . m Read Perm . setText ( number Format Utils . get Short Number Text ( thread Info . read Perm )); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Permission Val Ġ= Ġthread . read Perm ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Brief Info Ġ== Ġnull Ġ|| Ġuser Brief Info !!. read Perm Ġ< Ġread Permission Val ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Read Perm . setTextColor ( context . getColor ( R . color . color Warn )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Read Perm . setTextColor ( context . getColor ( R . color . color Text Default )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . attachment Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Attachment Icon . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Attachment Icon . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . attachment Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Attachment Icon . setImage Drawable ( context . get Drawable ( R . drawable . ic _ thread _ attachment _ 2 4 px )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Attachment Icon . setImage Drawable ( context . get Drawable ( R . drawable . ic _ image _ outlined _ 2 4 px )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . price Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Price Number . text Ġ= Ġjava . lang . String . valueOf ( thread . price ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Price Number . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġholder . m Price Number . setText ( String . valueOf ( thread Info . price )); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Price Number . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . short Reply List Ġ!= Ġnull Ġ&& Ġthread . short Reply List . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Reply Recycler view . is Focus able Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Reply Recycler view . is Nested Scrolling Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Reply Recycler view . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Reply Recycler view . is Clickable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠShort Post Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set Short Reply InfoList (( thread . short Reply List Ġas ĠList < Short Reply ?> )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Reply Recycler view . item Animator Ġ= Ġget Recycler view Animation ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Reply Recycler view . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Reply Recycler view . is Nested Scrolling Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Card view . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠThread Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ ENTITY _ KEY , Ġb bs Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ USER _ KEY , Ġuser Brief Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ THREAD _ KEY , Ġthread ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" F ID ", Ġthread . fid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" TID ", Ġthread . tid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" SUBJECT ", Ġthread . subject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV ibrate Utils . vi br ate For Click ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options . make Scene Transition Animation ( context Ġas ĠActivity ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . create ( holder . m Title , Ġ" bbs _ thread _ subject ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġoptions . to Bundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent , Ġbundle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Avatar Image view . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠUser Profile Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ ENTITY _ KEY , Ġb bs Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ USER _ KEY , Ġuser Brief Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" UID ", Ġthread . author Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. make Scene Transition Animation ( context Ġas ĠActivity ?, Ġholder . m Avatar Image view , Ġ" user _ info _ avatar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġoptions . to Bundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent , Ġbundle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( holder Raw Ġis ĠCon c ise Thread ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= Ġholder Raw ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= ĠHtml . from Html ( thread . subject ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp ann able String Ġ= ĠSp ann able String ( sp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Title . setText ( span nable String , ĠTextView . Buffer Type . SPAN N ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Reply Num . text Ġ= Ġnumber Format Utils . get Short Number Text ( thread . replies ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Publish Date . text Ġ= Ġget Locale Past Time String ( context , Ġthread . publish At !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// holder . m Publish Date . setText ( df . format ( thread Info . publish At )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thread . display Order Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext Resource Ġ= ĠR . string . bbs _ forum _ pinned ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Resource Ġ= Ġwhen Ġ( thread . display Order ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠR . string . display _ order _ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠR . string . display _ order _ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠR . string . display _ order _ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> ĠR . string . display _ order _ n 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 2 Ġ-> ĠR . string . display _ order _ n 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 3 Ġ-> ĠR . string . display _ order _ n 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 4 Ġ-> ĠR . string . display _ order _ n 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . string . bbs _ forum _ pinned ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . setText ( text Resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . setTextColor ( context . getColor ( R . color . color Accent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Type . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġavatar _ num Ġ= Ġthread . author Id Ġ% Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( avatar _ num Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar _ num Ġ= Ġ- avatar _ num ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavatar Resource Ġ= Ġcontext . resources . getIdentifier ( String . format (" avatar _% s ", Ġavatar _ num Ġ+ Ġ 1 ), Ġ" drawable ", Ġcontext . packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠOk Http Url Loader . Factory ( Network Utils . get Preferred Client ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . get ( context ). registry . replace ( G lide Url :: class . java , ĠInputStream :: class . java , Ġfactory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĠURL Utils . getDefault Avatar Url By Uid ( thread . author Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( context . get Drawable ( avatar Resource )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( context . get Drawable ( avatar Resource )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg lide Url Ġ= ĠG lide Url ( source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLazy Headers . Builder (). add Header (" refer er ", Ġb bs Info . base _ url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Network Utils . can Download Image Or File ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( glide Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . m Avatar Image view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( glide Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. only Retrieve From Cache ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . m Avatar Image view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Thread Publisher . text Ġ= Ġthread . author ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Card view . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠThread Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ ENTITY _ KEY , Ġb bs Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ BB S _ USER _ KEY , Ġuser Brief Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Const Utils . PASS _ THREAD _ KEY , Ġthread ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" F ID ", Ġthread . fid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" TID ", Ġthread . tid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" SUBJECT ", Ġthread . subject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV ibrate Utils . vi br ate For Click ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options . make Scene Transition Animation ( context Ġas ĠActivity ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . create ( holder . m Title , Ġ" bbs _ thread _ subject ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġoptions . to Bundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent , Ġbundle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthread List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠPin ned ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Title : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread Type : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Card view : ĠCard View ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Title Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread Type Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card view Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ card view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠThread ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread Publisher : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Publish Date : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Title : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread View Num : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread Reply Num : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread Type : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Avatar Image view : ĠShape able ImageView ĊĠĠĠĠĠĠĠ Ġvar Ġm Card view : ĠCard View ĊĠĠĠĠĠĠĠ Ġvar Ġm Reply Recycler view : ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġvar Ġm Recommendation Number : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Read Perm : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Attachment Icon : ĠImageView ĊĠĠĠĠĠĠĠ Ġvar Ġm Price Number : ĠTextView ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread Publisher Ġ= ĠitemView . findViewById ( R . id . bbs _ post _ publisher ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Publish Date Ġ= ĠitemView . findViewById ( R . id . bbs _ post _ publish _ date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Title Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ title ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread View Num Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ view _ text view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread Reply Num Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ reply _ number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread Type Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Avatar Image view Ġ= ĠitemView . findViewById ( R . id . bbs _ post _ avatar _ imageView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card view Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ card view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Reply Recycler view Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ short _ reply _ recyclerview ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Recommendation Number Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ recommend _ number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Read Perm Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ read _ perm _ number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Attachment Icon Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ attachment _ image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Price Number Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ price _ number ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠCon c ise Thread ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread Publisher : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Publish Date : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Title : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread Reply Num : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Thread Type : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġm Card view : ĠCard View ĊĠĠĠĠĠĠĠ Ġvar Ġm Avatar Image view : ĠShape able ImageView ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread Publisher Ġ= ĠitemView . findViewById ( R . id . bbs _ post _ publisher ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Publish Date Ġ= ĠitemView . findViewById ( R . id . bbs _ post _ publish _ date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Title Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread Reply Num Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ reply _ number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Thread Type Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Avatar Image view Ġ= ĠitemView . findViewById ( R . id . bbs _ post _ avatar _ imageView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card view Ġ= ĠitemView . findViewById ( R . id . bbs _ thread _ card view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠThread Adapter :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Stable Ids ( true ) ĊĠĠĠ Ġ} Ċ }