package Ġcom . br ins . music detail . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . alibaba . android . ar outer . facade . annotation . Autowired Ċ import Ġcom . alibaba . android . ar outer . facade . annotation . Route Ċ import Ġcom . br ins . base lib . activity . Base Mv vm Activity Ċ import Ġcom . br ins . base lib . config . KEY _ COMM END _ PATH Ċ import Ġcom . br ins . base lib . config . KEY _ ID Ċ import Ġcom . br ins . base lib . config . M US IC _ COMMENT . Companion . COMMENT _ TYPE _ M US IC Ċ import Ġcom . br ins . base lib . module . Base Data Ċ import Ġcom . br ins . base lib . module . ITEM _ HOME _ SINGLE _ TITLE Ċ import Ġcom . br ins . base lib . module . ITEM _ M US IC _ DETAIL _ COMMENT Ċ import Ġcom . br ins . base lib . mvp . I Model Ċ import Ġcom . br ins . base lib . mv vm . Base ViewModel Ċ import Ġcom . br ins . base lib . route . Router Hub . Companion . COMMENT SA CT IVITY Ċ import Ġcom . br ins . base lib . utils . Time Util Ċ import Ġcom . br ins . base lib . utils . UI Utils Ċ import Ġcom . br ins . base lib . utils . getStatus Bar Height Ċ import Ġcom . br ins . base lib . utils . glide helper . G lide Helper Ċ import Ġcom . br ins . base lib . widget . Common Header View Ċ import Ġcom . br ins . music detail . R Ċ import Ġcom . br ins . music detail . model . Single Title Data Ċ import Ġcom . br ins . music detail . view model . Music Comments ViewModel Ċ import Ġcom . br ins . network lib . helper . Api Helper . launch Ċ import Ġcom . br ins . network lib . model . comment . Comment Result Ċ import Ġcom . ch ad . library . adapter . base 2 . Base Multi Item Quick Adapter Ċ import Ġcom . ch ad . library . adapter . base 2 . Base Quick Adapter Ċ import Ġcom . ch ad . library . adapter . base 2 . view holder . Base ViewHolder Ċ import Ġkotlinx . android . synt hetic . main . activity _ comments .* Ċ Ċ @ Route ( path Ġ= ĠCOMMENT SA CT IVITY ) Ċ class ĠComments Activity Ġ: ĠBase Mv vm Activity < Music Comments ViewModel >() Ġ{ ĊĊĠĠĠ Ġ@ Autowired ( name Ġ= ĠKEY _ ID ) ĊĠĠĠ Ġlateinit Ġvar Ġid : ĠString ĊĊĠĠĠ Ġ@ Autowired ( name Ġ= ĠKEY _ COMM END _ PATH ) ĊĠĠĠ Ġlateinit Ġvar Ġpath : ĠString ĊĊĠĠĠ Ġprivate Ġvar Ġm Adapter : ĠBase Quick Adapter < Base Data , ĠBase ViewHolder >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Hot Comment Observer : ĠObserver < Mutable List < Comment Result . Comment >> ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget ViewModel (): ĠBase ViewModel < out ĠI Model >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMusic Comments ViewModel ( this . application ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ comments ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Loading () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġheader . set Padding ( 0 , Ġget StatusBar Height ( this ), Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġheader . setOn Back ClickListener ( object Ġ: ĠCommon Header View . On Back ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Back Click ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠComment Adapter () ĊĠĠĠĠĠĠĠ Ġre cycler . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġre cycler . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġ( m Adapter Ġas ĠComment Adapter ). setOn Like Comment Listener ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComment Adapter . on Like Comment Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Like Click ( t : ĠInt , Ġitem : ĠComment Result . Comment , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( this @ Comments Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel ?. like Or Un Like Music Comment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . comment Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCOMMENT _ TYPE _ M US IC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . lik ed Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . lik ed Count -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . lik ed Ġ= Ġ! item . lik ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter ?. notify Item Changed ( position ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Hot Comment Observer Ġ= ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader . init View ("${ UI Utils . getString ( R . string . comment )} (${ m ViewModel ?. get Comment Data ()?. total Ġ?: Ġ 0 }) ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < Base Data >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Single Title Data (). setTitle (" ç²¾ å½ © è¯Ħè®º ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Single Title Data (). setTitle (" æľĢæĸ° è¯Ħè®º ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( m ViewModel ?. get Mutable Comment Data ()?. value !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter !!. set New Data ( list ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm ViewModel ?. get Mutable Hot Comment Data ()?. observe ( this , Ġm Hot Comment Observer !! ) ĊĠĠĠĠĠĠĠ Ġlaunch ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel ?. load Comments ( path , Ġid ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . base _ activity _ page _ up _ enter , ĠR . anim . base _ activity _ page _ up _ exit ) ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠComment Adapter Ġ: ĠBase Multi Item Quick Adapter < Base Data , ĠBase ViewHolder >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġlistener : Ġon Like Comment Listener ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġinterface Ġon Like Comment Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġon Like Click ( t : ĠInt , Ġitem : ĠComment Result . Comment , Ġposition : ĠInt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ItemType ( ITEM _ M US IC _ DETAIL _ COMMENT , ĠR . layout . music _ detail _ item _ comment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ItemType ( ITEM _ HOME _ SINGLE _ TITLE , ĠR . layout . music _ detail _ item _ title ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset On Like Comment Listener ( listener : Ġon Like Comment Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconvert ( helper : ĠBase ViewHolder , Ġitem : ĠBase Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( helper . item ViewType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠITEM _ M US IC _ DETAIL _ COMMENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide Helper . set Circle Image Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . getView < ImageView >( R . id . iv _ avatar ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( item Ġas ĠComment Result . Comment ). user ?. avatar Url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . setText ( R . id . tv _ username , Ġitem . user ?. nickname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . setText ( R . id . tv _ publish _ time , ĠTime Util . getTime Standard Only Y MD ( item . time )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlike Count : ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . lik ed Count Ġ== Ġ 0 ) Ġ" çĤ¹ èµ ŀ " Ġelse Ġitem . lik ed Count . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . tv _ like _ count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlike Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . setText ( R . id . tv _ content , Ġitem ?. content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . lik ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . getView < ImageView >( R . id . iv _ like ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setImage Resource ( R . drawable . base _ shape _ comment _ like ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . getView < ImageView >( R . id . iv _ like ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĸæ¶Ī çĤ¹ èµ ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Like Click ( 0 , Ġitem , Ġhelper . adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . getView < ImageView >( R . id . iv _ like ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setImage Resource ( R . drawable . base _ shape _ comment _ un like ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . getView < ImageView >( R . id . iv _ like ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĤ¹ èµ ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Like Click ( 1 , Ġitem , Ġhelper . adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠITEM _ HOME _ SINGLE _ TITLE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . setText ( R . id . item _ text _ view , Ġ( item Ġas ĠSingle Title Data ). getTitle ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }