package Ġcom . dev . mon k . dog facts . domain . use case . ads Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . dev . mon k . dog facts . R Ċ import Ġcom . google . android . gms . ads . Ad Request Ċ import Ġcom . google . android . gms . ads . inter stitial . Inter stitial Ad Ċ import Ġcom . google . android . gms . ads . inter stitial . Inter stitial Ad Load Callback Ċ import Ġkotlinx . coroutines . flow . Mutable Shared Flow Ċ import Ġkotlinx . coroutines . flow . Shared Flow Ċ Ċ class ĠA ds Interactor ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġad Request : ĠAd Request Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPAGE _ THRESHOLD Ġ= Ġ 2 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġ_ inter Ad Flow : ĠMutable Shared Flow < Inter stitial Ad ?> Ġ= ĠMutable Shared Flow ( replay Ġ= Ġ 1 ) ĊĊĠĠĠ Ġval Ġinter Ad Flow : ĠShared Flow < Inter stitial Ad ?> Ġget () Ġ= Ġ_ inter Ad Flow ĊĊĠĠĠ Ġfun Ġon Fact s Page Changed ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 Ġ|| Ġposition Ġ% ĠPAGE _ THRESHOLD Ġ!= Ġ 0 ) Ġreturn ĊĊĠĠĠĠĠĠĠ ĠInter stitial Ad . load ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , Ġcontext . getString ( R . string . ad mob _ ad _ unit _ id ), Ġad Request , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠInter stitial Ad Load Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Loaded ( ad : ĠInter stitial Ad ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ inter Ad Flow . try Emit ( ad ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ