/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 , ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . se ch nick . m ile age _ auto tracker . tri ptr acker Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Button Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġcom . se ch nick . m ile age _ auto tracker .* Ċ import Ġcom . se ch nick . m ile age _ auto tracker . database . Re corded Trip Ċ import Ġjava . text . Decimal Format ĊĊ Ċ @ Binding Adapter (" trip Duration ") Ċ fun ĠTextView . set Trip Duration ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġconvert Duration To Formatted ( item . startTime Milli , Ġitem . endTime Milli , Ġcontext . resources ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" trip Quality String ") Ċ fun ĠTextView . set Trip Quality String ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġconvert Numeric Quality ToString ( item . vehicle Id , Ġcontext . resources ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ Ċ @ Binding Adapter (" trip Image ") Ċ fun ĠImageView . set Trip Image ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġset Image Resource ( when Ġ( item . vehicle Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠR . drawable . ic _ sleep _ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠR . drawable . ic _ sleep _ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠR . drawable . ic _ sleep _ 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠR . drawable . ic _ sleep _ 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> ĠR . drawable . ic _ sleep _ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> ĠR . drawable . ic _ sleep _ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . drawable . ic _ sleep _ active ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" custom Enabled ") Ċ fun ĠButton . set Custom Enabled ( item : ĠBoolean ) Ġ{ ĊĠĠĠ ĠLog . d (" data Ġbinding ", Ġ" button Ġvisibility Ġ=$ item ") ĊĠĠĠ Ġis Enabled Ġ= Ġitem Ċ } ĊĊ Ċ @ Binding Adapter (" trip Business Personal ") Ċ fun ĠTextView . set Trip Business or Personal ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( it . business Trip ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Business " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Personal " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ @ Binding Adapter (" trip Date ") Ċ fun ĠTextView . set Trip Date ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġconvert Long ToDate String ( it . startTime Milli ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" trip StartTime ") Ċ fun ĠTextView . set Trip StartTime ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġconvert Long To Time String ( it . startTime Milli ) Ġ+ Ġ"-" Ġ+ Ġconvert Long To Time String ( it . endTime Milli ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" trip Distance ") Ċ fun ĠTextView . set Trip Distance ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġval Ġdf Ġ= ĠDecimal Format (" #### ") ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġdf . format ( it . calculated Distance ) Ġ+ Ġ" Ġm iles " ĊĠĠĠ Ġ} Ċ } ĊĊĊ Ċ @ Binding Adapter (" trip Locations ") Ċ fun ĠTextView . set Trip Locations ( item : ĠRe corded Trip ?) Ġ{ ĊĠĠĠ Ġvar Ġcombined Text Ġ= Ġ"" ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . start Address Ġ!= Ġ""){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcombined Text Ġ= Ġ" Start ĠAddress " Ġ+ System . line Separator ()+ Ġit . start Address Ġ+ ĠSystem . line Separator ()+ ĠSystem . line Separator () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( it . start Address Ġ!= Ġ""){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcombined Text Ġ= Ġ" End ĠAddress " Ġ+ System . line Separator ()+ Ġit . end Address Ġ+ ĠSystem . line Separator () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( combined Text Ġ== Ġ""){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġcombined Text ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }