package Ġme . v icky ch ij w ani . kot link o ans . analytics Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġcom . google . firebase . analytics . Firebase Analytics Ċ import Ġme . v icky ch ij w ani . kot link o ans . data . Ko an Ċ import Ġme . v icky ch ij w ani . kot link o ans . data . Ko an Metadata Ċ import Ġme . v icky ch ij w ani . kot link o ans . data . Run Status Ċ Ċ object ĠAnalytics Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġm Firebase : ĠFirebase Analytics ĊĊĠĠĠ Ġfun Ġinitialize ( ctx : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Firebase Ġ= ĠFirebase Analytics . getInstance ( ctx . application Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Ko an View ed ( ko an : ĠKo an ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( Event (" ko an _ view ed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an ", Ġko an . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an _ id ", Ġko an . id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Run Status ( ko an : ĠKo an , Ġstatus : ĠRun Status ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( Event (" run _ status ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an ", Ġko an . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an _ id ", Ġko an . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" status ", Ġstatus . ui Label ) ĠĠĠĠ Ġ// Ġstatus . ui Label Ġcould Ġchange Ġover Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" status _ id ", Ġstatus . id )) ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġstatus . id Ġwill Ġnever Ġchange ĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== ĠRun Status . OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog ( Event (" passed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an ", Ġko an . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an _ id ", Ġko an . id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Next Ko an Btn Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( Event (" next _ ko an _ btn _ clicked ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Ko an Selected From List ( ko an Metadata : ĠKo an Metadata ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( Event (" ko an _ selected _ from _ list ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an ", Ġko an Metadata . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an _ id ", Ġko an Metadata . id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Answer Shown ( ko an : ĠKo an ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( Event (" answer _ shown ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an ", Ġko an . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an _ id ", Ġko an . id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Re vert Code Clicked ( ko an : ĠKo an ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( Event (" revert _ code _ clicked ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an ", Ġko an . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an _ id ", Ġko an . id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Code Re verted ( ko an : ĠKo an ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ( Event (" code _ re verted ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an ", Ġko an . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" ko an _ id ", Ġko an . id )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġprivate Ġmethods ĊĠĠĠ Ġprivate Ġfun Ġlog ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Firebase . log Event ( event . eventName , Ġevent . bundle ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġprivate ĠBundle Ġextension Ġmethods Ġfor Ġa Ġfluent ĠAPI ĊĠĠĠ Ġprivate Ġclass ĠEvent ( val ĠeventName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġfun Ġwith ( key : ĠString , Ġvalue : ĠBoolean ): ĠEvent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Boolean ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġwith ( key : ĠString , Ġvalue : ĠInt ): ĠEvent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Int ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġwith ( key : ĠString , Ġvalue : ĠFloat ): ĠEvent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Float ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġwith ( key : ĠString , Ġvalue : ĠString ): ĠEvent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ