package Ġcom . hyper track . android . ui . screens . vis its _ management . tabs . places Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . hyper track . android . deleg ates . Ge ofence Name Delegate Ċ import Ġcom . hyper track . android . ui . base . Base Adapter Ċ import Ġcom . hyper track . android . ui . common . deleg ates . Ge ofence Address Delegate Ċ import Ġcom . hyper track . android . ui . common . util . format Ċ import Ġcom . hyper track . android . ui . screens . place _ details . Place Vis its Adapter Ċ import Ġcom . hyper track . android . ui . screens . vis its _ management . tabs . history . Time Distance Formatter Ċ import Ġcom . hyper track . android . utils . Os Utils Provider Ċ import Ġcom . hyper track . android . utils . format ters . Datetime Formatter Ċ import Ġcom . hyper track . android . utils . format ters . Distance Formatter Ċ import Ġcom . hyper track . android . utils . format ters . Time Formatter Ċ Ċ import Ġcom . hyper track . logistics . android . github . R Ċ import Ġkotlinx . android . synt hetic . main . item _ day . view .* Ċ import Ġkotlinx . android . synt hetic . main . item _ place . view . tv Title Ċ import Ġkotlinx . android . synt hetic . main . item _ place _ visit _ all _ places . view .* ĊĊ Ċ class ĠAll Places Vis its Adapter ( ĊĠĠĠ Ġprivate Ġval Ġos Utils Provider : ĠOs Utils Provider , ĊĠĠĠ Ġprivate Ġval Ġdatetime Formatter : ĠDate time Formatter , ĊĠĠĠ Ġprivate Ġval Ġdistance Formatter : ĠDistance Formatter , ĊĠĠĠ Ġprivate Ġval Ġtime Formatter : ĠTime Formatter , ĊĠĠĠ Ġprivate Ġval Ġon Copy ClickListener : Ġ(( String ) Ġ-> ĠUnit ) Ċ ) Ġ: ĠBase Adapter < Visit Item , ĠBase Adapter . Base Vh < Visit Item >>() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtime Distance Formatter Ġ= ĠTime Distance Formatter ( ĊĠĠĠĠĠĠĠ Ġdatetime Formatter , Ġdistance Formatter ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġname Delegate Ġ= ĠGe ofence Name Delegate ( os Utils Provider , Ġdatetime Formatter ) ĊĠĠĠ Ġprivate Ġval Ġaddress Delegate Ġ= ĠGe ofence Address Delegate ( os Utils Provider ) ĊĊĠĠĠ Ġoverride Ġval Ġitem Layout Resource : ĠInt Ġ= ĠR . layout . item _ place _ visit _ all _ places ĊĊĠĠĠ Ġprivate Ġvar Ġvis its Data : ĠVis its Data Ġ= ĠVis its Data ( listOf (), Ġmap Of ()) ĊĊĠĠĠ Ġfun Ġupdate Data (_ vis its Data : ĠVis its Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvis its Data Ġ= Ġ_ vis its Data ĊĠĠĠĠĠĠĠ Ġupdate Items ( vis its Data . adapter Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( items [ position ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDay Ġ-> ĠDay :: class . java . hashCode () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠVisit Ġ-> ĠVisit :: class . java . hashCode () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMonth Item Ġ-> ĠMonth Item :: class . java . hashCode () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBase Vh < Visit Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDay :: class . java . hashCode () Ġ-> ĠR . layout . item _ day ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVisit :: class . java . hashCode () Ġ-> Ġitem Layout Resource Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMonth Item :: class . java . hashCode () Ġ-> ĠR . layout . item _ month ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" view Type Ġ${ view Type }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( items [ position ] Ġis ĠVisit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener ?. invoke ( items [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠĠĠ Ġbase ClickListener : Ġ( Int ) Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠBase Adapter . Base Vh < Visit Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠBase Container Vh < Visit Item >( view , Ġbase ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠVisit Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDay Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer View . tv Title . text Ġ= Ġdatetime Formatter . format Date ( item . date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer View . tv Total . text Ġ= Ġvis its Data . day Stats [ item . date ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Distance Formatter . format Distance ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġos Utils Provider . string From Resource ( R . string . places _ vis its _ loading ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠVisit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlace Vis its Adapter . bind Visit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . visit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Formatter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Distance Formatter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġos Utils Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Copy ClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer View . tv Place Name . text Ġ= Ġname Delegate . getName ( item . visit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer View . tv Place Address . text Ġ= Ġaddress Delegate . short Address ( item . visit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMonth Item Ġ-> Ġ{ Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v ( Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hyper track - verbose ", Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" adapter Ġ$ item Ġ${ vis its Data . month Stats } Ġ${ vis its Data . month Stats }" Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Total Ġ= Ġvis its Data . month Stats [ item . month ]?. let Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Distance Formatter . format Distance ( it ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer View . tv Title . text Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . month . get DisplayName ( TextStyle . FULL , ĠLocale . getDefault ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer View . tv Total . text Ġ= Ġmonth Total Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġos Utils Provider . string From Resource ( R . string . places _ vis its _ loading ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊĊĊ