package Ġinfo . dv kr . screen stream . ui . fragment Ċ Ċ import Ġandroid . util . Display Metrics Ċ import Ġandroid . view . View Tree Observer Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . gms . ads . Ad Request Ċ import Ġcom . google . android . gms . ads . Ad Size Ċ import Ġcom . google . android . gms . ads . Ad View Ċ import Ġcom . google . android . gms . ads . Mobile Ads Ċ import Ġinfo . dv kr . screen stream . Build Config Ċ Ċ abstract Ġclass ĠAd Fragment (@ Layout Res Ġcontent Layout Id : ĠInt ) Ġ: ĠFragment ( content Layout Id ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġad View : ĠAd View ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġload Ad ( ad View Container : ĠFrame Layout ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMobile Ads . initialize ( require Context ()) Ġ{} ĊĠĠĠĠĠĠĠ Ġad View Ġ= ĠAd View ( require Context ()) ĊĠĠĠĠĠĠĠ Ġad View Container . addView ( ad View ) ĊĠĠĠĠĠĠĠ Ġad View Container . view Tree Observer . add On Global Layout Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġout Metrics Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisplay Metrics (). also Ġ{ Ġrequire Activity (). window Manager . default Display . get Metrics ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġad Width Pixels Ġ= Ġad View Container . width . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad Width Pixels Ġ== Ġ 0 f ) Ġad Width Pixels Ġ= Ġout Metrics . width Pixels . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġad Width Ġ= Ġ( ad Width Pixels Ġ/ Ġout Metrics . density ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġad Size Ġ= ĠAd Size . getCurrent Orientation An ch ored Adaptive Banner Ad Size ( require Context (), Ġad Width ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad View !!. ad Unit Id Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ" ca - app - pub - 3 9 4 0 2 5 6 0 9 9 9 4 2 5 4 4 / 6 3 0 0 9 7 8 1 1 1 " Ġelse ĠBuild Config . AD _ UNIT _ ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad View !!. ad Size Ġ= Ġad Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad View Container . minimum Height Ġ= Ġad Size . getHeight In Pixels ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad View !!. load Ad ( Ad Request . Builder (). build ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad View Container . view Tree Observer . remove On Global Layout Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġad View ?. pause () ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġad View ?. resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġad View ?. destroy () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} Ċ }