package Ġru . o zh . android . recycler . decorator . sample . chat . decor Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġru . o zh . android . recycler . decorator . lib . Decorator Ċ import Ġru . o zh . android . recycler . decorator . sample . R Ċ import Ġru . o zh . android . recycler . decorator . sample . px Ċ Ċ class ĠMessage Time Decor ( private Ġval Ġcontext : ĠContext ) Ġ: ĠDecor ator . ViewHolder Decor Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠContext Compat . getColor ( context , Ġandroid . R . color . dark er _ gray ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas , Ġview : ĠView , Ġre cyclerView : ĠRecyclerView , Ġstate : ĠRecyclerView . State ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtime View Ġ= Ġview . findViewById < TextView >( R . id . time _ tv ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Rect Area Origin Ġ= ĠRect () ĊĊĠĠĠĠĠĠĠ Ġtime View . paint . getText Bounds ( time View . text . toString (), Ġ 0 , Ġtime View . text . length , Ġtext Rect Area Origin ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtext With Ġ= Ġtext Rect Area Origin . width () ĊĠĠĠĠĠĠĠ Ġval Ġtext Height Ġ= Ġtext Rect Area Origin . height () ĊĊĠĠĠĠĠĠĠ Ġval Ġview Cy Ġ= Ġ( time View . y Ġ+ Ġtime View . meas ured Height Ġ/ Ġ 2 ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġview Cx Ġ= Ġtime View . meas ured Width Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġ// map Ġtext Ġcoordinates Ġto Ġcanvas Ġarea ĊĠĠĠĠĠĠĠ Ġval Ġtext Rect Area Mapped Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( view Cx Ġ- Ġtext With Ġ/ Ġ 2 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( view Cy Ġ- Ġtext Height Ġ/ Ġ 2 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( view Cx Ġ+ Ġtext With Ġ/ Ġ 2 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( view Cy Ġ+ Ġtext Height Ġ/ Ġ 2 ). toFloat () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġscale Value Ġ= Ġtext Height Ġ* Ġ 0 . 4 5 F ĊĊĠĠĠĠĠĠĠ Ġtext Rect Area Mapped . in set (- scale Value , Ġ- scale Value ) ĊĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( text Rect Area Mapped , Ġ 1 0 . px . toFloat (), Ġ 1 0 . px . toFloat (), Ġpaint ) ĊĠĠĠ Ġ} Ċ }