package Ġcom . github . pre mn irm al . ticker . analytics Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġcom . github . pre mn irm al . ticker . components . Injector Ċ import Ġcom . github . pre mn irm al . ticker . model . IS to cks Provider Ċ import Ġcom . github . pre mn irm al . ticker . widget . Widget DataProvider Ċ import Ġjavax . inject . Inject Ċ Ċ interface ĠAnalytics Ġ{ ĊĠ Ġfun Ġinitialize ( context : ĠContext ) Ġ{} ĊĠ Ġfun Ġtrack Screen View ( screen Name : ĠString , Ġactivity : ĠActivity ) Ġ{} ĊĠ Ġfun Ġtrack Click Event ( event : ĠClick Event ) Ġ{} ĊĠ Ġfun Ġtrack General Event ( event : ĠGeneral Event ) Ġ{} Ċ } Ċ Ċ sealed Ġclass ĠAnalytics Event ( val Ġname : ĠString ) Ġ{ ĊĊĠ Ġval Ġproperties : ĠMap < String , ĠString > ĊĠĠĠ Ġget () Ġ= Ġ_ properties ĊĠ Ġprivate Ġval Ġ_ properties Ġ= ĠHashMap < String , ĠString >() ĊĊĠ Ġopen Ġfun Ġadd Property ( key : ĠString , Ġvalue : ĠString ) Ġ= Ġapply Ġ{ ĊĠĠĠ Ġ_ properties [ key ] Ġ= Ġvalue ĊĠ Ġ} Ċ } Ċ Ċ class ĠGeneral Event ( name : ĠString ): ĠAnalytics Event ( name ) Ġ{ ĊĠ Ġoverride Ġfun Ġadd Property ( key : ĠString , Ġvalue : ĠString ) Ġ= Ġapply Ġ{ ĊĠĠĠ Ġsuper . addProperty ( key , Ġvalue ) ĊĠ Ġ} Ċ } Ċ Ċ class ĠClick Event ( name : ĠString ): ĠAnalytics Event ( name ) Ġ{ ĊĠ Ġoverride Ġfun Ġadd Property ( key : ĠString , Ġvalue : ĠString ) Ġ= Ġapply Ġ{ ĊĠĠĠ Ġsuper . addProperty ( key , Ġvalue ) ĊĠ Ġ} Ċ } Ċ Ċ class ĠGeneral Properties Ġ{ ĊĊĠ Ġ@ Inject Ġlateinit Ġvar Ġwidget DataProvider : ĠWidget DataProvider ĊĠ Ġ@ Inject Ġlateinit Ġvar Ġstock s Provider : ĠI Sto cks Provider ĊĊĠ Ġinit Ġ{ ĊĠĠĠ ĠInject or . app Component . inject ( this ) ĊĠ Ġ} ĊĊĠ Ġval Ġwidget Count : ĠInt ĊĠĠĠ Ġget () Ġ= Ġwidget DataProvider . getApp Widget Ids (). size ĊĠ Ġval Ġticker Count : ĠInt ĊĠĠĠ Ġget () Ġ= Ġstock s Provider . get Tick ers (). size Ċ Ċ }