package Ġio . st ip op . data Ċ Ċ import Ġio . st ip op . api . St ip op Api Ċ import Ġio . st ip op . models . body . Init Sdk Body Ċ import Ġio . st ip op . models . body . UserId Body Ċ import Ġio . st ip op . models . response . St ip op Response Ċ Ċ internal Ġclass ĠConfig Repository ( private Ġval Ġapi Service : ĠSt ip op Api ) Ġ: ĠBase Repository () Ġ{ ĊĊĠĠĠ Ġvar Ġis Configured Ġ= Ġfalse ĊĠĠĠ Ġvar Ġis Initialized Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcurrent UserId : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġsuspend Ġfun Ġpost Init Sdk ( init Sdk Body : ĠInit Sdk Body , ĠonSuccess : Ġ(( data : ĠAny ) Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Sdk Body . userId ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current UserId Ġ== Ġit Ġ|| Ġis Initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ?. let Ġ{ Ġit ( Unit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent UserId Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsafe Call ( call Ġ= Ġ{ Ġapi Service . init Sdk ( init Sdk Body ) Ġ}, Ġon Comp letable Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ?. let Ġ{ Ġit ( Unit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Initialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġkotlin . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ?. let Ġ{ Ġit ( Unit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġpost Config Sdk () Ġ= ĊĠĠĠĠĠĠĠ Ġsafe Call ( call Ġ= Ġ{ Ġapi Service . track Config ( UserId Body ()) Ġ}, Ġon Comp letable Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġsuspend Ġfun Ġpost Track Using St icker ( ĊĠĠĠĠĠĠĠ Ġst icker Id : ĠString , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġquery : ĠString ?, ĊĠĠĠĠĠĠĠ Ġcountry Code : ĠString , ĊĠĠĠĠĠĠĠ Ġlang : ĠString , ĊĠĠĠĠĠĠĠ Ġevent Point : ĠString ?, ĊĠĠĠĠĠĠĠ ĠonSuccess : Ġ( data : ĠSt ip op Response ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsafe Call ( call Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Service . track Using St icker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġst icker Id Ġ= Ġst icker Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġquery , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Code Ġ= Ġcountry Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlang Ġ= Ġlang , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Point Ġ= Ġevent Point ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, Ġon Comp letable Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let ( on Success ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }