package Ġcom . analytics . blo tout . repository Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . analytics . blo tout . Dependency Injector Impl Ċ import Ġcom . analytics . blo tout . device info . device . DeviceInfo Ċ import Ġcom . analytics . blo tout . model . ErrorCode s . ERROR _ CODE _ MAN IFEST _ NOT _ AVAILABLE Ċ import Ġcom . analytics . blo tout . model . Internal Error Ċ import Ġcom . analytics . blo tout . model . Manifest Configuration Response Ċ import Ġcom . analytics . blo tout . model . Result Ċ import Ġcom . analytics . blo tout . model . Variable Option Ċ import Ġcom . analytics . blo tout . network . Api DataProvider Ċ import Ġcom . analytics . blo tout . repository . data . Configuration DataManager Ċ import Ġcom . analytics . blo tout . util . Constant Ċ import Ġcom . google . gson . Gson Ċ import Ġretrofit 2 . Call Ċ import Ġkotlin . coroutines . resume Ċ import Ġkotlin . coroutines . suspend Coroutine Ċ Ċ class ĠManifest Repository ( private Ġval Ġconfiguration DataManager : ĠConfiguration DataManager ) Ġ{ ĊĊ ĊĠĠĠĠ Ġvar Ġsdk Push System Events Ġ= Ġfalse ĊĠĠĠĠ Ġvar Ġsdk PI IP ublic Key : ĠString ? Ġ= Ġnull ĊĠĠĠĠ Ġvar Ġsdk PH IP ublic Key : ĠString ? Ġ= Ġnull ĊĠĠĠĠ Ġvar Ġsdk System E ev nt s Allowed Ġ: ĠList < Variable Option >? Ġ= Ġnull ĊĊĊĠĠĠ Ġsuspend Ġfun Ġfetch Manifest Configuration () Ġ: ĠResult < String >? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġresult Ġ= Ġconfiguration DataManager . download Manifest Configuration ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDependency Injector Impl . getInstance (). get Secure Storage Service () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. store String ( Gson (). toJson ( result . data ), ĠConstant . MAN IFEST _ DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . data ?. let Ġ{ Ġinit Manifest Configuration ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanifest Configuration Ġ= ĠGson (). fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDependency Injector Impl . getInstance (). get Secure Storage Service () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch String ( Constant . MAN IFEST _ DATA ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest Configuration Response :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest Configuration ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinit Manifest Configuration ( manifest Configuration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult . Error ( Internal Error ( code Ġ= ĠERROR _ CODE _ MAN IFEST _ NOT _ AVAILABLE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit Manifest Configuration ( manifest Configuration Response : ĠManifest Configuration Response ): Result < String > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfor ( manifest Data Ġin Ġmanifest Configuration Response . variables ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( manifest Data ?. variable Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstant . Event _ Push _ System _ Events Ġ-> Ġsdk Push System Events Ġ= Ġmanifest Data . value !!. to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstant . Event _ PI I _ Public _ Key Ġ-> Ġsdk PI IP ublic Key Ġ= Ġmanifest Data . value !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstant . Event _ PH I _ Public _ Key Ġ-> Ġsdk PH IP ublic Key Ġ= Ġmanifest Data . value !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstant . Event _ Push _ System _ Events _ Allowed Ġ-> Ġsdk System E ev nt s Allowed Ġ= Ġmanifest Data . variable Options ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResult . Success ("") ĊĠĠĠ Ġ} Ċ }