package Ġcom . nodes agency . log viewer . screens . logs Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paged ListAdapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . nodes agency . log viewer . data . model . LogEntry Ċ import Ġcom . nodes agency . log viewer . screens . logs . utilities . Severity To Color Converter Ċ import Ġcom . nodes agency . log viewer . screens . logs . views . Log Item View Ċ Ċ internal Ġclass ĠLog Entries Adapter ( ĊĠĠĠ Ġprivate Ġval Ġseverity To Color Converter : ĠSeverity To Color Converter Ċ ) Ġ: ĠP aged ListAdapter < LogEntry , ĠLog Entries Adapter . ViewHolder >( Diff Callback ()) Ġ{ ĊĊĠĠĠ Ġclass ĠViewHolder ( val Ġlog Item View : ĠLog Item View ) Ġ: ĠRecyclerView . ViewHolder ( log Item View ) ĊĊĠĠĠ Ġvar Ġon Log Select Listener : ĠOn Log Select Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Item View Ġ= ĠLog Item View ( parent . context ) ĊĊĠĠĠĠĠĠĠ Ġlog Item View . layout Params Ġ= ĠViewGroup . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( log Item View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetItem ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( it , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠViewHolder . bind ( log Entry : ĠLog Entry , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog Item View . line Number Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġlog Item View . tag Ġ= Ġlog Entry . tag ĊĠĠĠĠĠĠĠ Ġlog Item View . message Ġ= Ġlog Entry . message ĊĠĠĠĠĠĠĠ Ġlog Item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( log Entry . id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Log Select Listener ?. on Log Selected ( log Entry . id , Ġlog Entry . severity Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġseverity To Color Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getColor For Severity Id ( log Entry . severity Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġlog Item View . severity Color Ġ= Ġit Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠDiff Callback Ġ: ĠDiff Util . Item Callback < LogEntry >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠLog Entry , Ġnew Item : ĠLog Entry ) Ġ= Ġold Item . id Ġ== Ġnew Item . id ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠLog Entry , Ġnew Item : ĠLog Entry ) Ġ= Ġold Item Ġ== Ġnew Item Ċ } Ċ