/************************************************************************ *** Ċ Ġ* ĠThis Ġsource Ġfile Ġis Ġpart Ġof Ġthe Ġkotlin - log - analytics - firebase ĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġopen Ġsource Ġproject . ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 - present , ĠIn Motion ĠSoftware Ġand Ġthe Ġproject Ġauthors ĠĠ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠMIT ĠLicense ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠSee ĠLICENSE . txt Ġfor Ġlicense Ġinformation ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ************************************************************************* **/ Ċ Ċ package Ġcom . in motion software . logging . analytics . firebase Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . google . firebase . analytics . Firebase Analytics Ċ import Ġcom . google . firebase . crash ly t ics . Firebase Crash ly t ics Ċ import Ġcom . in motion software . logging .* Ċ Ċ class ĠFirebase Analytics Log Handler ( ĊĠĠĠ Ġprivate Ġval Ġlabel : ĠString , ĊĠĠĠ Ġprivate Ġval Ġfirebase Analytics : ĠFirebase Analytics , ĊĠĠĠ Ġprivate Ġval Ġfirebase Crash ly t ics : ĠFirebase Crash ly t ics Ċ ) Ġ: ĠLog Handler Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġlog Level : ĠLogger Level Ġ= ĠLogger Level . Info ĊĊĠĠĠ Ġoverride Ġvar Ġmetadata : ĠLogger Metadata Ġ= ĠLogger Metadata () ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġget ( metadata Key : ĠString ): ĠLogger Metadata Value ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . metadata [ metadata Key ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġset ( metadata Key : ĠString , Ġvalue : ĠLogger Metadata Value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . metadata [ metadata Key ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlog ( ĊĠĠĠĠĠĠĠ Ġlevel : ĠLogger Level , ĊĠĠĠĠĠĠĠ Ġmessage : ĠLogger Message , ĊĠĠĠĠĠĠĠ Ġmetadata : ĠLogger Metadata ?, ĊĠĠĠĠĠĠĠ Ġsource : ĠString ?, ĊĠĠĠĠĠĠĠ Ġfile : ĠString ?, ĊĠĠĠĠĠĠĠ Ġfunction : ĠString ?, ĊĠĠĠĠĠĠĠ Ġline : ĠInt ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠLogger (" Firebase Analytics Log Handler ") ĊĠĠĠĠĠĠĠ Ġif Ġ( source ?. is Source Analytics Event Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . log Event ( message . toString (), Ġmetadata ?. as Bundle ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( source ?. is Source Analytics Screen Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Analytics Screen : Ġ${ message . toString () }", Ġ{ metadata }) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . log Event ( Firebase Analytics . Event . SCREEN _ VIEW , Ġmetadata ?. as Bundle ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( source ?. is Source Analytics Error Ġ== Ġtrue Ġ|| Ġlevel Ġ== ĠLogger Level . Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Analytics Error : Ġ${ message . toString () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Crash ly t ics . log ( message . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /// Ċ /// ĠLogger Metadata + Bundle Ċ /// Ċ Ċ private Ġfun ĠLogger Metadata . as Bundle (): ĠBundle Ġ{ ĊĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠ Ġthis . entries . forEach Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen ( val Ġvalue Ġ= Ġentry . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLogger Metadata Value . String Ġ-> Ġbundle . putString ( entry . key , Ġvalue . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġbundle Ċ } Ċ