package Ġcom . h jq . base Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application . Activity Lifecycle Callbacks Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Sparse Array Ċ import Ġandroid . view .* Ċ import Ġandroid . widget .* Ċ import Ġandroidx . annotation .* Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . widget . Popup Window Compat Ċ import Ġcom . h jq . base . action .* Ċ import Ġjava . lang . ref . Soft Reference Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠĠĠ Ġauthor Ġ: ĠAndroid Ġ è½® åŃĲ åĵ ¥ Ċ Ġ* ĠĠĠ Ġgithub Ġ: Ġhttps :// github . com / getActivity / Android Project - Kotlin Ċ Ġ* ĠĠĠ Ġtime ĠĠ Ġ: Ġ 2 0 1 9 / 0 9 / 1 6 Ċ Ġ* ĠĠĠ Ġdesc ĠĠ Ġ: ĠPopup Window ĠæĬ Ģ æľ¯ åŁº ç±» Ċ Ġ*/ Ċ open Ġclass ĠBase Popup Window Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ: ĠPopup Window ( context ), ĠActivity Action , ĊĠĠĠ ĠHandler Action , ĠClick Action , ĠAnim Action , ĠKeyboard Action , ĠPopup Window . On Dismiss Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpopup Background : ĠPopup Background ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġshow Listeners : ĠMutable List < On Show Listener ?> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdismiss Listeners : ĠMutable List < On Dismiss Listener ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠgetContext (): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® ä¸Ģä¸ª éĶĢ æ¯ ģ çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠĠĠĠĠĠ Ġ éĶĢ æ¯ ģ çĽĳåĲ¬ åĻ¨ å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Deprecated (" è¯· ä½¿çĶ¨ Ġ{@ link Ġ# add On Dismiss Listener ( Base Popup Window . On Dismiss Listener )} ") ĊĠĠĠ Ġoverride Ġfun Ġset On Dismiss Listener ( listener : ĠPopup Window . On Dismiss Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( listener Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd On Dismiss Listener ( Dismiss Listener Wrapper ( listener )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ·»åĬł ä¸Ģä¸ª æĺ¾ç¤º çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠĠĠĠĠ Ġ çĽĳåĲ¬ åĻ¨ å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġadd On Show Listener ( listener : ĠOn Show Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( show Listeners Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Listeners Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Listeners !!. add ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ·»åĬł ä¸Ģä¸ª éĶĢ æ¯ ģ çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠĠĠĠĠ Ġ çĽĳåĲ¬ åĻ¨ å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġadd On Dismiss Listener ( listener : ĠOn Dismiss Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dismiss Listeners Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Listeners Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . setOn Dismiss Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdismiss Listeners !!. add ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç§»éĻ¤ ä¸Ģä¸ª æĺ¾ç¤º çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠĠĠĠĠ Ġ çĽĳåĲ¬ åĻ¨ å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġremove On Show Listener ( listener : ĠOn Show Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Listeners ?. remove ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç§»éĻ¤ ä¸Ģä¸ª éĶĢ æ¯ ģ çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠĠĠĠĠ Ġ çĽĳåĲ¬ åĻ¨ å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġremove On Dismiss Listener ( listener : ĠOn Dismiss Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss Listeners ?. remove ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĺ¾ç¤º çĽĳåĲ¬ åĻ¨ éĽĨåĲĪ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset On Show Listeners ( listeners : ĠMutable List < On Show Listener ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Listeners Ġ= Ġlisteners ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® éĶĢ æ¯ ģ çĽĳåĲ¬ åĻ¨ éĽĨåĲĪ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset On Dismiss Listeners ( listeners : ĠMutable List < On Dismiss Listener ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setOn Dismiss Listener ( this ) ĊĠĠĠĠĠĠĠ Ġdismiss Listeners Ġ= Ġlisteners ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ[ Popup Window . On Dismiss Listener ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Dismiss () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dismiss Listeners Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( listener : ĠOn Dismiss Listener ? Ġin Ġdismiss Listeners !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Dismiss ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow As DropDown ( anchor : ĠView ?, Ġx Off : ĠInt , Ġy Off : ĠInt , Ġgravity : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Showing Ġ|| Ġcontent View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( show Listeners Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( listener : ĠOn Show Listener ? Ġin Ġshow Listeners !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Show ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . show As DropDown ( anchor , Ġx Off , Ġy Off , Ġgravity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow At Location ( parent : ĠView ?, Ġgravity : ĠInt , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Showing Ġ|| Ġcontent View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( show Listeners Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( listener : ĠOn Show Listener ? Ġin Ġshow Listeners !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Show ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . show At Location ( parent , Ġgravity , Ġx , Ġy ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdismiss () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . dismiss () ĊĠĠĠĠĠĠĠ Ġremove Callbacks () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠView ?> ĠfindViewById (@ Id Res Ġid : ĠInt ): ĠV ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontent View . findViewById ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Window Layout Type ( type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . setWindow Layout Type ( type ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPopup Window Compat . setWindow Layout Type ( this , Ġtype ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Window Layout Type (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . getWindow Layout Type () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPopup Window Compat . getWindow Layout Type ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Overlap Anchor ( overlap Anchor : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . set Overlap Anchor ( overlap Anchor ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPopup Window Compat . set Overlap Anchor ( this , Ġoverlap Anchor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® èĥĮæĻ¯ éģ ® çĽĸ å±Ĥ çļĦ éĢı æĺİ åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġset Background Dim Amount (@ Float Range ( from Ġ= Ġ 0 . 0 , Ġto Ġ= Ġ 1 . 0 ) Ġdim Amount : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalpha : ĠFloat Ġ= Ġ 1 Ġ- Ġdim Amount ĊĠĠĠĠĠĠĠ Ġif Ġ( is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Activity Alpha ( alpha ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( popup Background Ġ== Ġnull Ġ&& Ġalpha Ġ!= Ġ 1 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Background Ġ= ĠPopup Background () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Show Listener ( popup Background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Dismiss Listener ( popup Background ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( popup Background Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Background ?. set Alpha ( alpha ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® ĠActivity Ġ çªĹåı£ éĢı æĺİ åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Activity Alpha ( alpha : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity : ĠActivity Ġ= ĠgetActivity () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġparams : ĠWindow Manager . LayoutParams Ġ= Ġactivity . window . attributes ĊĠĠĠĠĠĠĠ Ġval Ġanim ator : ĠValue Animator Ġ= ĠValue Animator . of Float ( params . alpha , Ġalpha ) ĊĠĠĠĠĠĠĠ Ġanim ator . duration Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠ Ġanim ator . add Update Listener Ġ{ Ġanimation : ĠValue Animator Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue : ĠFloat Ġ= Ġanimation . animated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġparams . alpha ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . alpha Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . attributes Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanim ator . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġopen Ġclass ĠBuilder < B Ġ: ĠBuilder < B >> Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontext : ĠContext ĊĠĠĠ Ġ) Ġ: ĠActivity Action , ĠResources Action , ĠClick Action , ĠKeyboard Action Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ ANCHO RED _ GR AV ITY : ĠInt Ġ= ĠGr avity . TOP Ġor ĠGr avity . START ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ/** ĠPopup Window Ġå¯¹è±¡ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpopup Window : ĠBase Popup Window ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĠPopup Window Ġ å¸ĥå±Ģ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcontent View : ĠView ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ åĬ¨çĶ» æł·å¼ı Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġanim Style : ĠInt Ġ= ĠAnim Action . ANIM _ DEFAULT ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ å®½åº¦ åĴĮ é«ĺåº¦ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġwidth : ĠInt Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġheight : ĠInt Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ éĩį å¿ĥ ä½įç½® Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġgravity : ĠInt Ġ= ĠDEFAULT _ ANCHO RED _ GR AV ITY ĊĊĠĠĠĠĠĠĠ Ġ/** Ġæ ° ´ å¹³ åģı ç§» Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġx Offset : ĠInt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ åŀ Ĥ çĽ´ åģı ç§» Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġy Offset : ĠInt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ/** Ġæĺ¯åĲ¦ åı¯ è§¦ æĳ ¸ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtouch able : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ/** Ġæĺ¯åĲ¦ æľī çĦ ¦ çĤ¹ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġfocus able : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ/** Ġæĺ¯åĲ¦ å¤ĸ å±Ĥ åı¯ è§¦ æĳ ¸ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġoutside Touchable : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ èĥĮæĻ¯ éģ ® çĽĸ å±Ĥ éĢı æĺİ åº¦ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġbackground Dim Amount : ĠFloat Ġ= Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġ/** ĠPopup Window ĠåĪĽå»º çĽĳåĲ¬ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcreate Listener : ĠOn Create Listener ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĠPopup Window Ġ æĺ¾ç¤º çĽĳåĲ¬ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġshow Listeners : ĠMutable List < On Show Listener ?> Ġby Ġlazy Ġ{ ĠArrayList () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĠPopup Window Ġ éĶĢ æ¯ ģ çĽĳåĲ¬ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdismiss Listeners : ĠMutable List < On Dismiss Listener ?> Ġby Ġlazy Ġ{ ĠArrayList () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ çĤ¹åĩ» äºĭä»¶ éĽĨåĲĪ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġclick Array : ĠSparse Array < OnClickListener < View >> ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun ĠsetContentView (@ Layout Res Ġid : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¿ĻéĩĮ è§£éĩĬ ä¸Ģä¸ĭ ï¼Į ä¸ºä»Ģä¹Ī è¦ģ ä¼ł Ġnew ĠFrame Layout ï¼Į åĽłä¸º å¦Ĥæŀľ ä¸į ä¼ł çļĦè¯Ŀ ï¼Į XML ĠçļĦ æł¹ å¸ĥå±Ģ èİ·åıĸ åĪ°çļĦ ĠLayout Params Ġå¯¹è±¡ ä¼ļ ä¸ºç©º ï¼Į ä¹Ł å°±ä¼ļ å¯¼èĩ´ å®½ é«ĺ è§£æŀĲ ä¸į åĩºæĿ¥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠsetContentView ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( id , ĠFrame Layout ( context ), Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġopen Ġfun ĠsetContentView ( view : ĠView ?): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¯· ä¸įè¦ģ ä¼łåħ¥ ç©º çļĦ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" are Ġyou Ġok ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View Ġ= Ġview ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. content View Ġ= Ġview ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params : ĠViewGroup . LayoutParams ? Ġ= Ġcontent View !!. layout Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( layout Params Ġ!= Ġnull ) Ġ&& Ġ( width Ġ== ĠViewGroup . LayoutParams . WRAP _ CONTENT ) Ġ&& Ġ( height Ġ== ĠViewGroup . LayoutParams . WRAP _ CONTENT )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ å½ĵåīį ĠPopup Window ĠçļĦ å®½ é«ĺ è®¾ç½® äºĨ èĩª éĢĤ åºĶ ï¼Į å°± ä»¥ å¸ĥå±Ģ ä¸Ń è®¾ç½® çļĦ å®½ é«ĺ ä¸º ä¸» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Width ( layout Params . width ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Height ( layout Params . height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ å½ĵåīį æ²¡æľī è®¾ç½® éĩį å¿ĥ ï¼Į å°± èĩªåĬ¨ èİ·åıĸ å¸ĥå±Ģ éĩį å¿ĥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gravity Ġ== ĠDEFAULT _ ANCHO RED _ GR AV ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( layout Params Ġis ĠFrame Layout . LayoutParams ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgravity : ĠInt Ġ= Ġlayout Params . gravity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gravity Ġ!= ĠFrame Layout . LayoutParams . UNSPECIFIED _ GR AV ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Gravity ( gravity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( layout Params Ġis ĠLinearLayout . LayoutParams ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgravity : ĠInt Ġ= Ġlayout Params . gravity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gravity Ġ!= ĠGr avity . NO _ GR AV ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Gravity ( gravity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gravity Ġ== ĠGr avity . NO _ GR AV ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġé»ĺè®¤ éĩį å¿ĥ æĺ¯ å±ħ ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Gravity ( Gravity . CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® åĬ¨çĶ» ï¼Į å·²ç»ı å°ģè£ħ å¥½ åĩł ç§į æł·å¼ı ï¼Į åħ·ä½ĵ åı¯ è§ģ [ Anim Action ] ç±» ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Anim Style (@ Style Res Ġid : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim Style Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. animation Style Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® å®½åº¦ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Width ( width : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams : ĠViewGroup . LayoutParams ? Ġ= Ġcontent View ?. layout Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( params Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View ?. layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® é«ĺåº¦ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Height ( height : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. height Ġ= Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¿ĻéĩĮ è§£éĩĬ ä¸Ģä¸ĭ ä¸ºä»Ģä¹Ī è¦ģ éĩįæĸ° è®¾ç½® ĠLayout Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĽłä¸º å¦Ĥæŀľ ä¸į è¿Ļæł· è®¾ç½® çļĦè¯Ŀ ï¼Į ç¬¬ ä¸Ģæ¬¡ æĺ¾ç¤º çļĦæĹ¶åĢĻ ä¼ļ æĮīçħ§ ĠPopup Window Ġ å®½ é«ĺ æĺ¾ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä½Ĩæĺ¯ ĠLayout Ġ åĨħå®¹ åıĺ æĽ´ ä¹ĭåĲİ å°± ä¸įä¼ļ æĮīçħ§ ä¹ĭåīį çļĦ è®¾ç½® å®½ é«ĺ æĿ¥ æĺ¾ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æīĢä»¥ è¿ĻéĩĮ æĪĳä»¬ éľĢè¦ģ å¯¹ ĠView ĠçļĦ ĠLayout Params Ġ ä¹Ł è¿Ľè¡Į è®¾ç½® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams : ĠViewGroup . LayoutParams ? Ġ= Ġcontent View ?. layout Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( params Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . height Ġ= Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View ?. layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® éĩį å¿ĥ ä½įç½® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Gravity ( gravity : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĢĤ éħį å¸ĥå±Ģ åıį æĸ¹åĲĳ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . gravity Ġ= ĠGr avity . get Absolute Gravity ( gravity , Ġget Resources (). configuration . layout Direction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® æ°´ å¹³ åģı ç§» éĩı ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset X Offset ( offset : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Offset Ġ= Ġoffset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® åŀ Ĥ çĽ´ åģı ç§» éĩı ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Y Offset ( offset : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Offset Ġ= Ġoffset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ åı¯ è§¦ æĳ ¸ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Touchable ( touch able : ĠBoolean ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . touch able Ġ= Ġtouch able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. is Touchable Ġ= Ġtouch able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ æľī çĦ ¦ çĤ¹ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Focus able ( focus able : ĠBoolean ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . focus able Ġ= Ġfocus able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. is Focus able Ġ= Ġfocus able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ å¤ĸ å±Ĥ åı¯ è§¦ æĳ ¸ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Outside Touchable ( outside Touchable : ĠBoolean ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . outside Touchable Ġ= Ġoutside Touchable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. is Outside Touchable Ġ= Ġoutside Touchable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® èĥĮæĻ¯ éģ ® çĽĸ å±Ĥ çļĦ éĢı æĺİ åº¦ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Background Dim Amount (@ Float Range ( from Ġ= Ġ 0 . 0 , Ġto Ġ= Ġ 1 . 0 ) Ġdim Amount : ĠFloat ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Dim Amount Ġ= Ġdim Amount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. setBackground Dim Amount ( dim Amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® åĪĽå»º çĽĳåĲ¬ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset On Create Listener ( listener : ĠOn Create Listener ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ·»åĬł æĺ¾ç¤º çĽĳåĲ¬ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġadd On Show Listener ( listener : ĠOn Show Listener ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Listeners . add ( listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ·»åĬł éĶĢ æ¯ ģ çĽĳåĲ¬ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġadd On Dismiss Listener ( listener : ĠOn Dismiss Listener ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Listeners . add ( listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® æĸĩæľ¬ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Text (@ Id Res Ġview Id : ĠInt , Ġ@ String Res Ġstring Id : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġset Text ( view Id , ĠgetString ( string Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Text (@ Id Res Ġid : ĠInt , Ġtext : ĠCharSequence ?): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( findViewById < View ? >( id ) Ġas ĠTextView ?) ?. text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® æĸĩæľ¬ é¢ľèī² ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset TextColor (@ Id Res Ġid : ĠInt , Ġ@ Color Int Ġcolor : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( findViewById < View ? >( id ) Ġas ĠTextView ?) ?. setTextColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® æıĲç¤º ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Hint (@ Id Res Ġview Id : ĠInt , Ġ@ String Res Ġstring Id : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġset Hint ( view Id , ĠgetString ( string Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Hint (@ Id Res Ġid : ĠInt , Ġtext : ĠCharSequence ?): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( findViewById < View ? >( id ) Ġas ĠTextView ?) ?. hint Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® åı¯ è§ģ çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Visibility (@ Id Res Ġid : ĠInt , Ġvisibility : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < View ? >( id )?. visibility Ġ= Ġvisibility ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® èĥĮæĻ¯ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Background (@ Id Res Ġview Id : ĠInt , Ġ@ Drawable Res Ġdrawable Id : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġset Background ( view Id , ĠContext Compat . get Drawable ( context , Ġdrawable Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Background (@ Id Res Ġid : ĠInt , Ġdrawable : ĠDrawable ?): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < View ? >( id )?. background Ġ= Ġdrawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® åĽ¾çīĩ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Image Drawable (@ Id Res Ġview Id : ĠInt , Ġ@ Drawable Res Ġdrawable Id : ĠInt ): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġset Background ( view Id , ĠContext Compat . get Drawable ( context , Ġdrawable Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset Image Drawable (@ Id Res Ġid : ĠInt , Ġdrawable : ĠDrawable ?): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( findViewById < View ? >( id ) Ġas ĠImageView ?) ?. setImage Drawable ( drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® çĤ¹åĩ» äºĭä»¶ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġset OnClickListener (@ Id Res Ġid : ĠInt , Ġlistener : ĠOn ClickListener < out ĠView >): ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( click Array Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Array Ġ= ĠSparse Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Array !!. put ( id , Ġlistener Ġas ĠOn ClickListener < View >) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. findViewById < View ? >( id )?. setOnClickListener ( View Click Wrapper ( popup Window , Ġlistener )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠB ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠåĪĽå»º ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" R tl Hard coded ") ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġcreate (): ĠBase Popup Window Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ å¸ĥå±Ģ æĺ¯åĲ¦ ä¸ºç©º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" are Ġyou Ġok ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ å½ĵåīį æŃ£åľ¨ æĺ¾ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Showing ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ å½ĵåīį æ²¡æľī è®¾ç½® éĩį å¿ĥ ï¼Į å°± è®¾ç½® ä¸Ģä¸ª é»ĺè®¤ çļĦ éĩį å¿ĥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gravity Ġ== ĠDEFAULT _ ANCHO RED _ GR AV ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ å½ĵåīį æ²¡æľī è®¾ç½® åĬ¨çĶ» æķĪæŀľ ï¼Į å°± è®¾ç½® ä¸Ģä¸ª é»ĺè®¤ çļĦ åĬ¨çĶ» æķĪæŀľ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( anim Style Ġ== ĠAnim Action . ANIM _ DEFAULT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim Style Ġ= Ġwhen Ġ( gravity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . TOP Ġ-> ĠAnim Action . ANIM _ TOP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . BOTTOM Ġ-> ĠAnim Action . ANIM _ BOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . LEFT Ġ-> ĠAnim Action . ANIM _ LEFT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . RIGHT Ġ-> ĠAnim Action . ANIM _ RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAnim Action . ANIM _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window Ġ= Ġcreate Popup Window ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. let Ġ{ Ġpopup Window Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . content View Ġ= Ġcontent View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . height Ġ= Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . animation Style Ġ= Ġanim Style ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . is Focus able Ġ= Ġfocus able ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . is Touchable Ġ= Ġtouch able ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . is Outside Touchable Ġ= Ġoutside Touchable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . setOn Show Listeners ( show Listeners ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . setOn Dismiss Listeners ( dismiss Listeners ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . setBackground Dim Amount ( background Dim Amount ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Array ?. let Ġ{ Ġarray Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġarray . size ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View !!. findViewById < View ? >( array . key At ( i )) ?. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener ( View Click Wrapper ( popup Window , Ġarray . value At ( i ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå°Ĩ ĠPopup Window ĠçļĦ çĶŁåĳ½ åĳ¨æľŁ åĴĮ ĠActivity Ġ ç»ĳå®ļ åľ¨ ä¸Ģèµ· ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity ()?. let Ġ{ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPopup Window Lifecycle . with ( activity , Ġpopup Window ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Listener ?. onCreate ( popup Window ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpopup Window !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ æĺ¾ç¤º ä¸º ä¸ĭ æĭī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġshow As DropDown ( anchor : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Finish ing Ġ|| Ġit . is Destroyed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. show As DropDown ( anchor , Ġx Offset , Ġy Offset , Ġgravity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ æĺ¾ç¤º åľ¨ æĮĩå®ļ ä½įç½® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġshow At Location ( parent : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Finish ing Ġ|| Ġit . is Destroyed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Created ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. show At Location ( parent , Ġgravity , Ġx Offset , Ġy Offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContext (): ĠContext Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå½ĵåīį ĠPopup Window Ġæĺ¯åĲ¦ åĪĽå»º äºĨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġis Created (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpopup Window Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå½ĵåīį ĠPopup Window Ġæĺ¯åĲ¦ æĺ¾ç¤º äºĨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġis Showing (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġis Created () Ġ&& Ġpopup Window !!. is Showing ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ éĶĢ æ¯ ģ å½ĵåīį ĠPopup Window ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġdismiss () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Finish ing Ġ|| Ġit . is Destroyed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠåĪĽå»º ĠPopup Window Ġå¯¹è±¡ ï¼Ī åŃĲ ç±» åı¯ä»¥ éĩį åĨĻ æŃ¤ æĸ¹æ³ķ æĿ¥ æĶ¹åıĺ ĠPopup Window Ġ ç±»åŀĭ ï¼ī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprotected Ġopen Ġfun Ġcreate Popup Window ( context : ĠContext ): ĠBase Popup Window Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBase Popup Window ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġèİ·åıĸ ĠPopup Window ĠçļĦ æł¹ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġget ContentView (): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontent View ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæł¹æį® Ġid ĠæŁ¥ æī¾ ĠView ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠView ?> ĠfindViewById (@ Id Res Ġid : ĠInt ): ĠV ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæ ² ¡ æľī ĠsetContentView Ġ å°± æĥ³ ĠfindViewById Ġ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" are Ġyou Ġok ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontent View !!. findViewById ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį ĠPopup Window Ġå¯¹è±¡ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġget Popup Window (): ĠBase Popup Window ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpopup Window ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å»¶ è¿ Ł æī§è¡Į ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġpost ( run nable : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Showing ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. post ( run nable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Show Listener ( Show Post Wrapper ( run nable )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å»¶ è¿ Ł ä¸Ģ æ®µ æĹ¶éĹ´ æī§è¡Į ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġpost Delayed ( run nable : ĠRunnable , Ġdelay Millis : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Showing ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. post Delayed ( run nable , Ġdelay Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Show Listener ( Show Post Delayed Wrapper ( run nable , Ġdelay Millis )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġåľ¨ æĮĩå®ļ çļĦæĹ¶éĹ´ æī§è¡Į ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġpost At Time ( run nable : ĠRunnable , Ġu ptime Millis : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Showing ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window !!. post At Time ( run nable , Ġu ptime Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Show Listener ( Show Post At Time Wrapper ( run nable , Ġu ptime Millis )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPopup Window Ġ çĶŁåĳ½ åĳ¨æľŁ ç»ĳå®ļ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠPopup Window Lifecycle Ġconstructor ( private Ġvar Ġactivity : ĠActivity ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpopup Window : ĠBase Popup Window ?) Ġ: ĊĠĠĠĠĠĠĠ ĠActivity Lifecycle Callbacks , ĠOn Show Listener , ĠOn Dismiss Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwith ( activity : ĠActivity , Ġpopup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPopup Window Lifecycle ( activity , Ġpopup Window ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. add On Show Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. add On Dismiss Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Created ( activity : ĠActivity , ĠsavedInstanceState : ĠBundle ?) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Started ( activity : ĠActivity ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Res umed ( activity : ĠActivity ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Paused ( activity : ĠActivity ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Stopped ( activity : ĠActivity ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Save InstanceState ( activity : ĠActivity , Ġout State : ĠBundle ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . activity Ġ!== Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunregister Activity Lifecycle Callbacks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . activity Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . popup Window Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . popup Window !!. remove On Show Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . popup Window !!. remove On Dismiss Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . popup Window !!. is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . popup Window !!. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . popup Window Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Show ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . popup Window Ġ= Ġpopup Window ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Activity Lifecycle Callbacks () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dismiss ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . popup Window Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunregister Activity Lifecycle Callbacks () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ æ³¨åĨĮ ĠActivity Ġ çĶŁåĳ½ åĳ¨æľŁ çĽĳåĲ¬ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġregister Activity Lifecycle Callbacks () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . Q ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . register Activity Lifecycle Callbacks ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . application . register Activity Lifecycle Callbacks ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ åıį æ³¨åĨĮ ĠActivity Ġ çĶŁåĳ½ åĳ¨æľŁ çĽĳåĲ¬ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġunregister Activity Lifecycle Callbacks () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . Q ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . unregister Activity Lifecycle Callbacks ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . application . unregister Activity Lifecycle Callbacks ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPopup Window Ġ èĥĮæĻ¯ éģ ® çĽĸ å±Ĥ å®ŀçİ° ç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠPopup Background Ġ: ĠOn Show Listener , ĠOn Dismiss Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġalpha : ĠFloat Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġfun Ġset Alpha ( alpha : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . alpha Ġ= Ġalpha ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Show ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. set Activity Alpha ( alpha ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dismiss ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. set Activity Alpha ( 1 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĶĢ æ¯ ģ çĽĳåĲ¬ åĮħ è£ħ ç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠDis miss Listener Wrapper Ġconstructor ( refer ent : ĠPopup Window . On Dismiss Listener ?) Ġ: ĊĠĠĠĠĠĠĠ ĠSoft Reference < Popup Window . On Dismiss Listener ? >( refer ent ), ĠOn Dismiss Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dismiss ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåľ¨ æ¨ ª ç« ĸ å±ı åĪĩæį¢ åĲİ çĽĳåĲ¬ å¯¹è±¡ ä¼ļ ä¸ºç©º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ()?. on Dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĤ¹åĩ» äºĭä»¶ åĮħ è£ħ ç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠView Click Wrapper Ġconstructor ( ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpopup Window : ĠBase Popup Window ?, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlistener : ĠOn ClickListener < View > ?) Ġ: ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. onClick ( popup Window , Ġview ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpost Ġ ä»»åĬ¡ åĮħ è£ħ ç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠShow Post Wrapper Ġconstructor ( val Ġrunnable : ĠRunnable ) Ġ: ĠOn Show Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Show ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. remove On Show Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. post ( run nable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpost Delayed Ġ ä»»åĬ¡ åĮħ è£ħ ç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠShow Post Delayed Wrapper Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrunnable : ĠRunnable , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdelay Millis : ĠLong ) Ġ: ĠOn Show Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Show ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. remove On Show Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. post Delayed ( run nable , Ġdelay Millis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpost At Time Ġ ä»»åĬ¡ åĮħ è£ħ ç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠShow Post At Time Wrapper Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrunnable : ĠRunnable , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġu ptime Millis : ĠLong ) Ġ: ĠOn Show Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Show ( popup Window : ĠBase Popup Window ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. remove On Show Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window ?. post At Time ( run nable , Ġu ptime Millis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĤ¹åĩ» çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn ClickListener < V Ġ: ĠView > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ çĤ¹åĩ» äºĭä»¶ è§¦åıĳ äºĨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( popup Window : ĠBase Popup Window ?, Ġview : ĠV ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Create Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠPopup Window ĠåĪĽå»º äºĨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠonCreate ( popup Window : ĠBase Popup Window ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Show Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠPopup Window Ġ æĺ¾ç¤º äºĨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġon Show ( popup Window : ĠBase Popup Window ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĶĢ æ¯ ģ çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Dismiss Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠPopup Window Ġ éĶĢ æ¯ ģ äºĨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġon Dismiss ( popup Window : ĠBase Popup Window ?) ĊĠĠĠ Ġ} Ċ }