package Ġcn . edu . s du . online . is du . ui . fragments . message Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġcn . edu . s du . online . is du . R Ċ import Ġcn . edu . s du . online . is du . bean . Post Ċ import Ġcn . edu . s du . online . is du . interfaces . Post View able Ċ import Ġcn . edu . s du . online . is du . ui . activity . Post Detail Activity Ċ import Ġcn . edu . s du . online . is du . util . Weak References Ċ import Ġjava . lang . ref . Weak Reference ĊĊ Ċ class ĠMessage Fragment Ġ: ĠFragment (), ĠPost View able Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġdata List : ĠMutable List < Post > Ġ= Ġarray ListOf () ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠMy Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġloading Layout : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġre cyclerView : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġblank View : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Load Complete Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ message , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠĠĠĠĠ Ġinit RecyclerView () ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView !!. layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMy Adapter ( data List ) ĊĠĠĠĠĠĠĠ Ġre cyclerView !!. adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Layout Ġ= Ġview . findViewById ( R . id . loading _ layout ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġview . findViewById ( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠ Ġblank View Ġ= Ġview . findViewById ( R . id . blank _ view ) ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġis Load Complete (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠ Ġreturn Ġis Load Complete ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠĠ Ġon Loading () ĊĠĠĠĠĠĠĠ Ġis Load Complete Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpublish Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Item ( item : ĠAny ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdata List . remove ( item Ġas ĠPost ) Ċ // ĠĠĠĠĠĠĠ Ġadapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpublish Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( data List . size != Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Layout !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblank View !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Layout !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblank View !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( adapter != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Loading (){ ĊĠĠĠĠĠĠĠ Ġre cyclerView !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġloading Layout !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġblank View !!. visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĠĠĠ Ġinner Ġclass ĠMy Adapter ( m DataList : ĠList < Post >) Ġ: ĠRecyclerView . Adapter < My Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm DataList Ġ= Ġm DataList ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . post _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġm DataList . size ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Ġ= Ġm DataList [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item Layout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeak References . post View able Weak Reference Ġ= ĠWeak Reference ( this @ Message Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. startActivity ( Intent ( activity , ĠPost Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra (" tag ", ĠTAG )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title _ flag . text Ġ= Ġpost . title _ flag Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title View . text Ġ= Ġpost . title Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . user _ name . text Ġ= Ġpost . userName Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . comments _ number . text Ġ= Ġpost . comments _ numbers . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Delta : Long Ġ= ĠSystem . currentTimeMillis ()- post . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ((( time Delta / 1 0 0 0 / 6 0 ). toInt ()) < 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . release _ time . text Ġ=" åĪļ åĪļ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif (( time Delta / 1 0 0 0 / 6 0 )< 6 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . release _ time . text Ġ= ((( time Delta / 1 0 0 0 / 6 0 ). toInt ()). toString ()+" åĪĨ éĴŁ åīį ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif (( time Delta / 1 0 0 0 / 6 0 / 6 0 )< 2 4 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . release _ time . text Ġ= ((( time Delta / 1 0 0 0 / 6 0 / 6 0 ). toInt ()). toString () Ġ+ Ġ" å°ı æĹ¶ åīį ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif (( time Delta / 1 0 0 0 / 6 0 / 6 0 / 2 4 )< 3 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . release _ time . text Ġ= ((( time Delta / 1 0 0 0 / 6 0 / 6 0 / 2 4 ). toInt ()). toString () Ġ+ Ġ" å¤© åīį ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif (( time Delta / 1 0 0 0 / 6 0 / 6 0 / 2 4 / 3 0 )< 1 2 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . release _ time . text Ġ= ((( time Delta / 1 0 0 0 / 6 0 / 6 0 / 2 4 / 3 0 ). toInt ()). toString () Ġ+ Ġ" æľĪ åīį ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . release _ time . text Ġ= ((( time Delta / 1 0 0 0 / 6 0 / 6 0 / 2 4 / 3 6 5 ). toInt ()). toString () Ġ+ Ġ" å¹´ åīį ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Layout : ĠFrame Layout Ġ= Ġview . findViewById ( R . id . card _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtitle _ flag : ĠTextView Ġ= Ġview . findViewById ( R . id . title _ flag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle View : ĠTextView Ġ= Ġview . findViewById ( R . id . title _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Layout : ĠLinearLayout Ġ= Ġview . findViewById ( R . id . content _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġuser _ name : ĠTextView Ġ= Ġview . findViewById ( R . id . user _ name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcomments _ number : ĠTextView Ġ= Ġview . findViewById ( R . id . comments _ number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrelease _ time : ĠTextView Ġ= Ġview . findViewById ( R . id . release _ time ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Message Fragment " ĊĠĠĠ Ġ} Ċ }