/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠNew ĠVector ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġim . vector . app . features . home . room . detail . timeline . item Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View Stub Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . annotation . Call Super Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . core . view . update LayoutParams Ċ import Ġcom . air bnb . e po xy . E po xy Attribute Ċ import Ġim . vector . app . R Ċ import Ġim . vector . app . core . e po xy . Vector E po xy Holder Ċ import Ġim . vector . app . core . e po xy . Vector E po xy Model Ċ import Ġim . vector . app . core . platform . Check ableView Ċ import Ġim . vector . app . core . ui . views . Bubble Dependent View Ċ import Ġim . vector . app . features . home . room . detail . timeline . style . Timeline Message Layout Ċ Ċ /** Ċ Ġ* ĠChildren Ġmust Ġoverride Ġget ViewType () Ċ Ġ*/ Ċ abstract Ġclass ĠBase Event Item < H Ġ: ĠBase Event Item . Base Holder > Ġ: ĠVector E po xy Model < H >(), ĠItem With Events , ĠB ubble Dependent View < H > Ġ{ ĊĊĠĠĠ Ġ// ĠTo Ġuse Ġfor Ġinstance Ġwhen Ġopening Ġa Ġper malink Ġwith Ġan Ġevent Id ĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġhighlighted : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġopen Ġvar Ġleft Guide line : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġget ViewType (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġmakes Ġsure Ġwe Ġhave Ġa Ġunique Ġinteger Ġfor Ġthe Ġcombination Ġof Ġlayout Ġand ĠView Stub Id . ĊĠĠĠĠĠĠĠ Ġval Ġpair ing Result Ġ= Ġpair ing Function ( layout . to Long (), Ġget View Stub Id (). to Long ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġ( pair ing Result Ġ- ĠInt . MAX _ VALUE ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġget View Stub Id (): ĠInt ĊĊĠĠĠ Ġ// ĠS z ud z ik Ġfunction ĊĠĠĠ Ġprivate Ġfun Ġpair ing Function ( a : ĠLong , Ġb : ĠLong ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( a Ġ>= Ġb ) Ġa Ġ* Ġa Ġ+ Ġa Ġ+ Ġb Ġelse Ġa Ġ+ Ġb Ġ* Ġb ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġbind ( holder : ĠH ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . bind ( holder ) ĊĠĠĠĠĠĠĠ Ġholder . left Guide line . update LayoutParams < Relative Layout . LayoutParams > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ignore Message Guide line ( holder . left Guide line . context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . margin Start Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . margin Start Ġ= Ġleft Guide line ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . check able Background . isChecked Ġ= Ġhighlighted ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġclass ĠBase Holder (@ Id Res Ġval Ġstub Id : ĠInt ) Ġ: ĠVector E po xy Holder () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Guide line Ġby Ġbind < View >( R . id . message Start Guide line ) ĊĠĠĠĠĠĠĠ Ġval Ġcontent Container Ġby Ġbind < View >( R . id . view Stub Container ) ĊĠĠĠĠĠĠĠ Ġval Ġcheck able Background Ġby Ġbind < Check ableView >( R . id . message Selected Background ) ĊĠĠĠĠĠĠĠ Ġval Ġview Stub Container Ġby Ġbind < Frame Layout >( R . id . view Stub Container ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind View ( item View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . bind View ( item View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinf late Stub () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinf late Stub () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View Stub >( stub Id ). inflate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġignore Message Guide line ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ