package Ġcom . example . android . polit ical prepared ness . election . adapter Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . constraint layout . widget . Group Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġcom . example . android . polit ical prepared ness . network . models . Address Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ @ Binding Adapter (" election Date ") Ċ fun ĠTextView . getDate ( date : ĠDate ?) Ġ{ ĊĠĠĠ Ġdate ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġday Ġ= ĠSimpleDateFormat (" dd - MMM - yyyy "). format ( date ) ĊĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġday ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" election Day ") Ċ fun ĠTextView . get Day ( date : ĠDate ?) Ġ{ ĊĠĠĠ Ġdate ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate String Ġ= ĠSimpleDateFormat (" EEEE "). format ( date ) ĊĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġdate String ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" address ") Ċ fun ĠTextView . getAddress ( address : ĠAddress ?) Ġ{ ĊĠĠĠ Ġaddress ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġaddress . line 1 . plus (", \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( address . line 2 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress . line 2 . plus (", \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress . city . plus (", \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( address . state ). plus (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( address . zip ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" group Visibility ") Ċ fun ĠGroup . check Group Visibility ( address : ĠAddress ?) Ġ= Ġif Ġ( address Ġ!= Ġnull ) Ġ{ ĊĠĠĠ Ġthis . visibility Ġ= ĠView . VISIBLE Ċ } Ġelse Ġ{ ĊĠĠĠ Ġthis . visibility Ġ= ĠView . GONE Ċ } Ċ