package Ġai . prom oted Ċ Ċ import Ġai . prom oted . proto . event . ActionType Ċ import Ġcom . facebook . react . bridge .* Ċ Ċ class ĠProm oted Metrics Module ( ĊĠ Ġconfig Dependencies : ĠProm oted Metrics Package . Config Dependencies ?, ĊĠ Ġreact Context : ĠReact ApplicationContext Ċ ) Ġ: ĊĠ ĠReact Context Base Java Module ( react Context ) Ġ{ ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġconfig Dependencies ?. let Ġ{ ĠProm oted Ai . initialize ( it . application , Ġit . client Config ) Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ" Prom oted Metrics " ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġstart Session And Log User ( userId : ĠString ?) Ġ{ ĊĠĠĠ Ġval Ġnull Safe UserId Ġ= ĠuserId Ġ?: Ġ"" ĊĠĠĠ ĠProm oted Ai . start Session ( null Safe UserId ) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġstart Session And Log Signed Out User () Ġ{ ĊĠĠĠ ĠProm oted Ai . start Session () ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġlog Imp ression ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġ// ĠTODO : ĠSupport ĠImp ression Source Type Ġin Ġandroid - metrics - sdk ĊĠĠĠ ĠProm oted Ai . on Imp ression ( args . to Imp ression Data ()) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġlog Action ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġval Ġtype Ġ= Ġargs . action Type () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġname Ġ= Ġargs . destination Screen Name () Ġ?: Ġargs . action Name () Ġ?: Ġ"" ĊĠĠĠ Ġ// ĠTODO : ĠSupport ĠAuto View Ġin Ġandroid - metrics - sdk ĊĠĠĠ ĠProm oted Ai . on Action ( name , Ġtype , Ġargs . to Action Data ()) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġlog View ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġval Ġroute Name Ġ= Ġargs . route Name () Ġ?: Ġreturn ĊĠĠĠ ĠProm oted Ai . log View ( route Name ) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġlog Auto View ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġval Ġauto View Id Ġ= Ġargs . auto View Id () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġroute Name Ġ= Ġargs . route Name () Ġ?: Ġ"" ĊĠĠĠ Ġval Ġroute Key Ġ= Ġargs . route Key () Ġ?: Ġ"" ĊĠĠĠ ĠProm oted Ai . log Auto View ( auto View Id , Ġroute Name , Ġroute Key ) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġcollection Did Mount ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġval Ġid Ġ= Ġargs . collection Id () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġauto ViewState Ġ= ĠAuto ViewState ( ĊĠĠĠĠĠ Ġargs . auto View Id (), ĊĠĠĠĠĠ Ġargs . has Super imp osed Views () ĊĠĠĠ Ġ) ĊĠĠĠ Ġ// ĠTODO : ĠSupport ĠImp ression Source Type Ġin Ġandroid - metrics - sdk ĊĠĠĠ ĠProm oted Ai . on Collection Visible ( null , Ġid , Ġempty List (), Ġauto ViewState ) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġcollection DidChange ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġval Ġid Ġ= Ġargs . collection Id () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġvisible Content Ġ= Ġargs . visible Content () Ġ?: Ġreturn ĊĊĠĠĠ Ġval Ġvisible Content For Sdk Ġ= ĊĠĠĠĠĠ Ġvisible Content ĊĠĠĠĠĠĠĠ Ġ. to ArrayList () ĊĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġarray Item Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġarray Item . to Content () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġauto ViewState Ġ= ĠAuto ViewState ( ĊĠĠĠĠĠ Ġargs . auto View Id (), ĊĠĠĠĠĠ Ġargs . has Super imp osed Views () ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠProm oted Ai . on Collection Updated ( null , Ġid , Ġvisible Content For Sdk , Ġauto ViewState ) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġcollection Action Did Occ ur ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġ// ĠTODO : ĠUse Ġthe Ġcollection Id Ġto Ġread Ġimp ression Id ĊĠĠĠ Ġ// Ġfor Ġcontent Ġfrom Ġcollection Ġtracker . ĊĠĠĠ Ġ// Ġval Ġid Ġ= Ġargs . collection Id () Ġ?: Ġreturn ĊĠĠĠ Ġargs . content () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġtype Ġ= Ġargs . action Type () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġname Ġ= Ġargs . action Name () Ġ?: Ġ"" ĊĠĠĠ Ġ// ĠTODO : ĠSupport ĠAuto View Ġin Ġandroid - metrics - sdk ĊĠĠĠ ĠProm oted Ai . on Action ( name , Ġtype , Ġargs . to Action Data ()) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġcollection Will Unmount ( args : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġval Ġid Ġ= Ġargs . collection Id () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġauto ViewState Ġ= ĠAuto ViewState ( ĊĠĠĠĠĠ Ġargs . auto View Id (), ĊĠĠĠĠĠ Ġargs . has Super imp osed Views () ĊĠĠĠ Ġ) ĊĠĠĠ ĠProm oted Ai . on Collection Hidden ( null , Ġid , Ġauto ViewState ) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun ĠgetCurrent Or Pending Ancestor Ids ( promise : ĠPromise ) Ġ{ ĊĠĠĠ Ġpromise . resolve ( ĊĠĠĠĠĠ ĠArguments . create Map (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġput String (" log UserId ", ĠProm oted Ai . log UserId ) ĊĠĠĠĠĠĠĠ Ġput String (" sessionId ", ĠProm oted Ai . sessionId ) ĊĠĠĠĠĠĠĠ Ġput String (" view Id ", ĠProm oted Ai . view Id ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġfun Ġset Ancestor Ids ( ancestor Ids : ĠRead able Map ) Ġ{ ĊĠĠĠ Ġval Ġlog UserId Ġ= Ġancestor Ids . getString (" log UserId ") ĊĠĠĠ Ġif Ġ( log UserId Ġ!= Ġnull ) ĠProm oted Ai . log UserId Ġ= Ġlog UserId ĊĊĠĠĠ Ġval ĠsessionId Ġ= Ġancestor Ids . getString (" sessionId ") ĊĠĠĠ Ġif Ġ( sessionId Ġ!= Ġnull ) ĠProm oted Ai . sessionId Ġ= ĠsessionId ĊĊĠĠĠ Ġval Ġview Id Ġ= Ġancestor Ids . getString (" view Id ") ĊĠĠĠ Ġif Ġ( view Id Ġ!= Ġnull ) ĠProm oted Ai . view Id Ġ= Ġview Id ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConvert Ġa Ġ[ HashMap ] Ġto Ġan Ġ[ Abstract Content . Content ]. ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun ĠAny ?. to Content (): ĠAbstract Content . Content Ġ= ĠAbstract Content . Content ( ĊĠĠĠ Ġname Ġ= Ġname (), ĊĠĠĠ Ġinsertion Id Ġ= Ġinsertion Id (), ĊĠĠĠ Ġcontent Id Ġ= Ġcontent Id () ĊĠ Ġ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConvert Ġan ĠRN Ġ[ Readable Map ] Ġto Ġan Ġ[ Action Data ]. ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun ĠAny ?. to Action Data (): ĠAction Data Ġ{ ĊĠĠĠ Ġval Ġcontent Ġ= Ġcontent () ĊĠĠĠ Ġval Ġinsertion Id Ġ= Ġcontent ?. insertion Id () Ġ?: Ġinsertion Id () ĊĠĠĠ Ġval Ġcontent Id Ġ= Ġcontent ?. content Id () Ġ?: Ġcontent Id () ĊĠĠĠ Ġval Ġauto View Id Ġ= Ġauto View Id () ĊĠĠĠ Ġval Ġhas Super imp osed Views Ġ= Ġ Ġhas Super imp osed Views () ĊĠĠĠ Ġreturn ĠAction Data . Builder (). apply Ġ{ ĊĠĠĠĠĠ Ġthis . insertion Id Ġ= Ġinsertion Id ĊĠĠĠĠĠ Ġthis . content Id Ġ= Ġcontent Id ĊĠĠĠĠĠ Ġthis . auto View Id Ġ= Ġauto View Id ĊĠĠĠĠĠ Ġthis . has Super imp osed Views Ġ= Ġhas Super imp osed Views ĊĠĠĠ Ġ}. build ( null ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConvert Ġan ĠRN Ġ[ Readable Map ] Ġto Ġan Ġ[ Imp ression Data ]. ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun ĠAny ?. to Imp ression Data (): ĠImp ression Data Ġ{ ĊĠĠĠ Ġval Ġcontent Ġ= Ġcontent () ĊĠĠĠ Ġval Ġinsertion Id Ġ= Ġcontent ?. insertion Id () Ġ?: Ġinsertion Id () ĊĠĠĠ Ġval Ġcontent Id Ġ= Ġcontent ?. content Id () Ġ?: Ġcontent Id () ĊĠĠĠ Ġval Ġauto View Id Ġ= Ġauto View Id () ĊĠĠĠ Ġval Ġhas Super imp osed Views Ġ= Ġhas Super imp osed Views () ĊĠĠĠ Ġreturn ĠImp ression Data . Builder (). apply Ġ{ ĊĠĠĠĠĠ Ġthis . insertion Id Ġ= Ġinsertion Id ĊĠĠĠĠĠ Ġthis . content Id Ġ= Ġcontent Id ĊĠĠĠĠĠ Ġthis . auto View Id Ġ= Ġauto View Id ĊĠĠĠĠĠ Ġthis . has Super imp osed Views Ġ= Ġhas Super imp osed Views ĊĠĠĠ Ġ}. build ( null ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. name (): ĠString Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> ĠgetString (" name ") Ġ?: Ġ"" ĊĠĠĠ Ġis ĠMap < *, Ġ*> Ġ-> Ġthis [" name "] Ġas ? ĠString ? Ġ?: Ġ"" ĊĠĠĠ Ġelse Ġ-> Ġ"" ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. insertion Id (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> Ġ{ ĊĠĠĠĠĠ ĠgetString (" insertion _ id ") ĊĠĠĠĠĠĠĠ Ġ?: ĠgetString (" insertion - id ") ĊĠĠĠĠĠĠĠ Ġ?: ĠgetString (" insertion Id ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġis ĠMap < *, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠ Ġthis [" insertion _ id "] Ġas ? ĠString ? ĊĠĠĠĠĠĠĠ Ġ?: Ġthis [" insertion - id "] Ġas ? ĠString ? ĊĠĠĠĠĠĠĠ Ġ?: Ġthis [" insertion Id "] Ġas ? ĠString ? ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. content Id (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> Ġ{ ĊĠĠĠĠĠ ĠgetString (" content _ id ") ĊĠĠĠĠĠĠĠ Ġ?: ĠgetString (" content - id ") ĊĠĠĠĠĠĠĠ Ġ?: ĠgetString (" content Id ") ĊĠĠĠĠĠĠĠ Ġ?: ĠgetString ("_ id ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġis ĠMap < *, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠ Ġthis [" content _ id "] Ġas ? ĠString ? ĊĠĠĠĠĠĠĠ Ġ?: Ġthis [" content - id "] Ġas ? ĠString ? ĊĠĠĠĠĠĠĠ Ġ?: Ġthis [" content Id "] Ġas ? ĠString ? ĊĠĠĠĠĠĠĠ Ġ?: Ġthis [" _ id "] Ġas ? ĠString ? ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġ// ĠArgument Ġto Ġlogging Ġmethods ĊĊĠ Ġprivate Ġfun ĠAny ?. action Name (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> ĠgetString (" action Name ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. action Type (): ĠAction Type ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> Ġ{ ĊĠĠĠĠĠ Ġif Ġ( has Key (" action Type ")) ĊĠĠĠĠĠĠĠ ĠAction Type . for Number ( getInt (" action Type ")) ĊĠĠĠĠĠ Ġelse ĠAction Type . UNKNOWN _ ACTION _ TYPE ĊĠĠĠ Ġ} Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. auto View Id (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> ĠgetString (" auto View Id ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. collection Id (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> ĠgetString (" collection Id ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. content (): ĠRead able Map ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> Ġget Map (" content ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. destination Screen Name (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> ĠgetString (" destination Screen Name ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. has Super imp osed Views (): ĠBoolean Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> Ġ{ ĊĠĠĠĠĠ Ġif Ġ( has Key (" has Super imp osed Views ")) ĊĠĠĠĠĠĠĠ Ġget Boolean (" has Super imp osed Views ") ĊĠĠĠĠĠ Ġelse Ġfalse ĊĠĠĠ Ġ} Ġelse Ġ-> Ġfalse ĊĠ Ġ} ĊĊĠ Ġ// ĠTODO : ĠSupport ĠImp ression Source Type Ġin Ġandroid - metrics - sdk . ĊĠ Ġ// Ġprivate Ġfun ĠAny ?. imp ression Source Type (): ĠImp ression Source Type ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠ Ġ// ĠĠ Ġis ĠRead able Map Ġ-> Ġ{ ĊĠ Ġ// ĠĠĠĠ Ġif Ġ( has Key (" imp ression Source Type ")) ĊĠ Ġ// ĠĠĠĠĠĠ ĠImp ression Source Type . for Number ( getInt (" imp ression Source Type ")) ĊĠ Ġ// ĠĠĠĠ Ġelse ĠImp ression Source Type . UNKNOWN _ IMP RESS ION _ SOURCE _ TYPE ĊĠ Ġ// ĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ// Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. route Name (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> ĠgetString (" route Name ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. route Key (): ĠString ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> ĠgetString (" route Key ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠAny ?. visible Content (): ĠRead able Array ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠRead able Map Ġ-> Ġget Array (" visible Content ") ĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} Ċ } Ċ