package Ġcom . cle ver o ad . blur _ tutorial . ex plan ator . base Ċ Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup . LayoutParams . MATCH _ PARENT Ċ import Ġandroid . widget . Popup Window Ċ import Ġcom . cle ver o ad . blur _ tutorial . Highlight Type Ċ import Ġcom . cle ver o ad . blur _ tutorial . R Ċ import Ġcom . cle ver o ad . blur _ tutorial . ex plan ator . Ex plan ator Ċ import Ġcom . cle ver o ad . blur _ tutorial . ex plan ator . Ex plan ator Callback Ċ import Ġcom . cle ver o ad . blur _ tutorial . ext . screen Height Ċ import Ġcom . cle ver o ad . blur _ tutorial . ext . screen Width Ċ import Ġcom . cle ver o ad . blur _ tutorial . state . Tutorial Config Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ internal Ġabstract Ġclass ĠBase Ex plan ator ( internal Ġvar Ġconfig : ĠTutorial Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex plan ator Callback : ĠEx plan ator Callback ) Ġ: ĠEx plan ator Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNO _ SIZE Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSTART Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTOP Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcallback Ref Ġ= ĠWeak Reference ( ex plan ator Callback ) ĊĊĠĠĠ Ġprotected Ġval Ġinflater : ĠLayoutInflater ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠLayoutInflater . from ( context ) ĊĊĠĠĠ Ġprotected Ġval Ġparent ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . parent Ġ?: Ġthrow ĠIllegalStateException (" Parent Ġshould Ġnot Ġbe Ġnull !") ĊĊĠĠĠ Ġprotected Ġval Ġcontext ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . parent ?. context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" Parent Ġshould Ġnot Ġbe Ġnull !") ĊĊĠĠĠ Ġprotected Ġval Ġheight ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . parent ?. height Ġ?: ĠNO _ SIZE ĊĊĠĠĠ Ġprotected Ġval Ġwidth ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . parent ?. width Ġ?: ĠNO _ SIZE ĊĊĠĠĠ Ġprotected Ġval Ġscreen Width ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . parent ?. screen Width Ġ?: ĠNO _ SIZE ĊĊĠĠĠ Ġprotected Ġval Ġscreen Height ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . parent ?. screen Height Ġ?: ĠNO _ SIZE ĊĊĠĠĠ Ġprotected Ġval Ġresources ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . parent ?. resources ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnimation Ġresource Ġof Ġpopup Ġappearing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup Ap pear Animation Res : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup Ap pear Animation ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnimation Ġresource Ġof Ġpopup Ġdis appear ing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup Dis appear Animation Res : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup Dis appear Animation ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn imator Ġresource Ġof Ġpopup Ġappearing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup Ap pear Animator Res : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup Ap pear Animator ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn imator Ġresource Ġof Ġpopup Ġdis appear ing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup Dis appear Animator Res : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup Dis appear Animator ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠY Ġoffset Ġof Ġpopup Ġ( in Ġpixels ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup Y Offset : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup Y Offset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠX Ġoffset Ġof Ġpopup Ġ( in Ġpixels ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup X Offset : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup X Offset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCor ner Ġradius Ġof Ġpopup . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup Corner Radius : ĠFloat ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup Corner Radius ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLayout Ġof Ġpopup . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġpopup Layout : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . popup Layout ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRadius Ġof Ġblur . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġblur Radius : ĠFloat ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . blur Radius ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠType Ġof Ġview Ġhighlighting . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġhighlight Type : ĠHighlight Type ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . highlight Type ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠColor Ġof Ġhighlight Ġoverlay ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġval Ġoverlay Color : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconfig . overlay Color ĊĊĠĠĠ Ġprotected Ġvar Ġforeground : ĠDrawable ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . parent ?. post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setBounds ( START , ĠTOP , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . parent ?. overlay ?. add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfield ?. let Ġ{ Ġconfig . parent ?. overlay ?. remove ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġcur tain Popup : ĠPopup Window ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġvar Ġmenu : ĠMenu ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġfun Ġshow Cur tain () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cur tain Popup Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur tain Popup Ġ= ĠPopup Window ( in flater . inflate ( R . layout . popup _ cur tain , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMATCH _ PARENT , ĠMATCH _ PARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġshow At Location ( parent , ĠGr avity . CENTER , Ġ 0 , Ġ 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġhide Cur tain () Ġ{ ĊĠĠĠĠĠĠĠ Ġcur tain Popup ?. dismiss () ĊĠĠĠĠĠĠĠ Ġcur tain Popup Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġinvalidate () Ġ{ ĊĠĠĠĠĠĠĠ Ġconfig . parent ?. invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġpost ( action : Ġ() Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . parent ?. post ( action ) ĊĊĠĠĠ Ġprotected Ġfun Ġdispatch Error ( err Message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback Ref . get ()?. onError ( err Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġdispatch Popup In fl ated ( popup View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback Ref . get ()?. on Popup In fl ated ( popup View ) ĊĠĠĠ Ġ} Ċ }