package Ġnic . go i . aar og y ase tu . utility Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . google . firebase . analytics . Firebase Analytics Ċ import Ġnic . go i . aar og y ase tu . Build Config Ċ import Ġnic . go i . aar og y ase tu . Cor ona Application Ċ import Ġnic . go i . aar og y ase tu . analytics . Event Params Ċ import Ġnic . go i . aar og y ase tu . localization . Locale Manager Ċ import Ġnic . go i . aar og y ase tu . prefs . Shared Pref Ċ import Ġnic . go i . aar og y ase tu . prefs . Shared Prefs Constants Ċ import Ġjava . lang . Exception Ċ import Ġkotlin . concurrent . thread Ċ Ċ /** Ċ Ġ* Ġ@ author ĠA man Ġkap o or Ċ Ġ*/ Ċ object ĠAnalytics Utils Ġ{ ĊĊĠĠĠ Ġobject ĠUser Traits Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTR A ITS _ IS _ LOG GED _ IN Ġ= Ġ" is _ logged in " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTR A ITS _ VERSION _ CODE Ġ= Ġ" version _ code " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTR A ITS _ LANGUAGE Ġ= Ġ" lang " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINSTALL _ SOURCE Ġ= Ġ" install _ source " ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġupdate User Traits () Ġ{ ĊĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirebase Analytics Ġ= ĠFirebase Analytics . getInstance ( Cor ona Application . instance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunique Id Ġ= ĠShared Pref . getString Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCor ona Application . getInstance (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Prefs Constants . UNIQUE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstall Data Ġ= ĠCor Utility . get Install Times () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Traits . TRA ITS _ IS _ LOG GED _ IN , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Auth Utility . is Signed In () }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Traits . TRA ITS _ VERSION _ CODE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Build Config . VERSION _ CODE }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Traits . TRA ITS _ LANGUAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocale Manager . get Language ( Cor ona Application . instance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Traits . INSTALL _ SOURCE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCor ona Application . instance . package Manager . get Installer PackageName ( Build Config . APPLICATION _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġsend Basic Event ( ĊĠĠĠĠĠĠĠ ĠeventName : ĠString , ĊĠĠĠĠĠĠĠ Ġscreen Name : ĠString , ĊĠĠĠĠĠĠĠ Ġerror : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġextras : ĠBundle ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġbundle . putString ( Event Params . PROP _ SCREEN _ NAME , Ġscreen Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! error . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( Event Params . PROP _ ERROR , Ġerror ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( extras Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put All ( extras ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirebase Analytics Ġ= ĠFirebase Analytics . getInstance ( Cor ona Application . instance ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . log Event ( eventName , Ġbundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġsend Event ( eventName : ĠString , Ġbundle : ĠBundle ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirebase Analytics Ġ= ĠFirebase Analytics . getInstance ( Cor ona Application . instance ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . log Event ( eventName , Ġbundle ) ĊĠĠĠ Ġ} Ċ Ċ }