package Ġcom . tut pro . ba res ip Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . Card View Ċ import Ġandroid . text . format . Date Utils . is Today Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ Ċ import Ġjava . util .* Ċ import Ġjava . text . DateFormat Ċ Ċ class ĠChat ListAdapter ( private Ġval Ġc xt : ĠContext , Ġprivate Ġvar Ġrows : ĠArrayList < Message >) Ġ: ĊĠĠĠĠĠĠĠ ĠArray Adapter < Message >( c xt , ĠR . layout . message , Ġrows ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġrows [ position ] ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġcontext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĠĠĠĠĠĠĠ Ġval Ġrow View Ġ= Ġinflater . inflate ( R . layout . chat _ row , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġtext Avatar View Ġ= Ġrow View . findViewById ( R . id . Text Avatar ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġcard Avatar View Ġ= Ġrow View . findViewById ( R . id . Card Avatar ) Ġas ĠCard View ĊĠĠĠĠĠĠĠ Ġval Ġcard Image Avatar View Ġ= Ġrow View . findViewById ( R . id . Image Avatar ) Ġas ĠImageView ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= Ġrow View . findViewById ( R . id . chat ) Ġas ĠLinearLayout ĊĠĠĠĠĠĠĠ Ġval Ġcontact Ġ= ĠContact s Activity . find Contact ( message . peer Uri ) ĊĠĠĠĠĠĠĠ Ġval Ġpeer : ĠString ĊĠĠĠĠĠĠĠ Ġif Ġ( contact Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpeer Ġ= Ġcontact . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavatar Image Ġ= Ġcontact . avatar Image ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( avatar Image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Avatar View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard Avatar View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard Image Avatar View . setImage Bitmap ( avatar Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Avatar View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard Avatar View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( text Avatar View . background Ġas ĠGradient Drawable ). setColor ( contact . color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Avatar View . text Ġ= Ġ"${ peer [ 0 ]}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpeer Ġ= ĠUtils . friendly Uri ( message . peer Uri , Ġmessage . a or ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Avatar View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard Avatar View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Avatar View . setBackground Resource ( R . drawable . person _ image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(( message . direction Ġ== ĠR . drawable . arrow _ down _ green ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( message . direction Ġ== ĠR . drawable . arrow _ down _ red )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout . setBackground Resource ( R . drawable . message _ in _ bg ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout . setBackground Resource ( R . drawable . message _ out _ bg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpeer View Ġ= Ġrow View . findViewById ( R . id . peer ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġpeer View . setText ( peer ) ĊĠĠĠĠĠĠĠ Ġval Ġinfo View Ġ= Ġrow View . findViewById ( R . id . info ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠG regorian Calendar () ĊĠĠĠĠĠĠĠ Ġcal . time In Millis Ġ= Ġmessage . time Stamp ĊĠĠĠĠĠĠĠ Ġval Ġfmt : ĠDate Format ĊĠĠĠĠĠĠĠ Ġif Ġ( is Today ( message . time Stamp )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfmt Ġ= ĠDate Format . getTime Instance ( DateFormat . SHORT ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfmt Ġ= ĠDate Format . getDate Instance ( DateFormat . SHORT ) ĊĠĠĠĠĠĠĠ Ġinfo View . text Ġ= Ġfmt . format ( cal . time ) ĊĠĠĠĠĠĠĠ Ġif Ġ( message . direction Ġ== ĠR . drawable . arrow _ up _ red ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message . response Code Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= Ġ"${ info View . text } Ġ- Ġ${ c xt . getString ( R . string . message _ failed )} : Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ message . response Code } Ġ${ message . response Reason }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= Ġ"${ info View . text } Ġ- Ġ${ c xt . getString ( R . string . sending _ failed )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo View . text Ġ= Ġinfo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo View . setTextColor ( Context Compat . getColor ( c xt , ĠR . color . color Accent )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġrow View . findViewById ( R . id . text ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġmessage . message ĊĠĠĠĠĠĠĠ Ġif Ġ( message . new ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setType face ( null , ĠType face . BOLD ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrow View ĊĠĠĠ Ġ} Ċ Ċ } Ċ