package Ġcom . ly . gen jid ialog Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Style Res Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view .* Ċ import Ġcom . ly . gen jid ialog . extensions . Animator Listener Ex Ċ import Ġcom . ly . gen jid ialog . extensions . Utils Extension . Companion . get Screen Height Ċ import Ġcom . ly . gen jid ialog . extensions . Utils Extension . Companion . get Screen Height Over StatusBar Ċ import Ġcom . ly . gen jid ialog . extensions . Utils Extension . Companion . get Screen Width Ċ import Ġcom . ly . gen jid ialog . listener . On Key Listener Ċ import Ġcom . ly . gen jid ialog . other . Dialog Gravity Ċ import Ġcom . ly . gen jid ialog . other . Dialog Options Ċ import Ġcom . ly . gen jid ialog . other . ViewHolder Ċ import Ġcom . trello . rx lifecycle 2 . components . support . Rx Dialog Fragment Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ Ċ /* ä¸ºäºĨ æĸ¹ä¾¿ æŁ¥çľĭ ï¼Į æĪĳ å°Ĩ æ¯ı ä¸Ģä¸ª æĸ¹æ³ķ åĴĮ åħ¶ æīĢ éľĢ çļĦ å¯¹åºĶ å±ŀæĢ§ æĶ¾åľ¨ ä¸Ģèµ· */ Ċ open Ġclass ĠGen ji Dialog Ġ: ĠRx Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġ/* æł¹ å¸ĥå±Ģ */ ĊĠĠĠ Ġlateinit Ġvar Ġroot View : ĠView ĊĊĠĠĠ Ġ/* ç»ĳ å®ļçļĦ activity */ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Activity : ĠAppCompatActivity ĊĊĠĠĠ Ġfun Ġget My Activity (): ĠAppCompatActivity Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Activity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæī§è¡Į é¡ºåºı ï¼ļ 2 ĊĠĠĠĠ Ġ* Ġ ç»ĳå®ļ activity ï¼Į ä¸į å»ºè®® ä½¿çĶ¨ fragment éĩĮéĿ¢ èĩª å¸¦ çļĦ getActivity () ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġm Activity Ġ= Ġcontext Ġas ĠAppCompatActivity ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ å·²ç»ı dismiss ï¼Į éģ¿åħį ä¸» åĬ¨ è°ĥçĶ¨ dismiss çļĦæĹ¶åĢĻ ä¸İ on Stop ä¸Ń è§¦åıĳ ä¸¤ æ¬¡ çĽ¸åĲĮ äºĭä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġdis missed Ġ= ĠAtomic Boolean ( false ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¿ĿåŃĺ UI çĬ¶æĢģ çļĦ æłĩçŃ¾ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġoptions Ġ= Ġ" options " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdialog éħįç½® , æīĢæľī éħįç½® éĥ½ åĨĻ åľ¨ éĩĮéĿ¢ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdialog Options : ĠDialog Options Ġ= ĠDialog Options () ĊĊĠĠĠ Ġfun Ġset Dialog Options ( dialog Options : ĠDialog Options ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . dialog Options Ġ= Ġdialog Options ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Dialog Options (): ĠDialog Options Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdialog Options ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* æ ĩĴ åĬłè½½ ï¼Į æł¹æį® dialog Options . duration æĿ¥ å»¶ è¿ Ł åĬłè½½ å®ŀçİ° æ ĩĴ åĬłè½½ ï¼Ī æĽ² çº¿ æķ ĳ åĽ½ ï¼ī */ ĊĠĠĠ Ġprivate Ġfun Ġon Lazy () Ġ{ ĊĠĠĠĠĠĠĠ ĠconvertView ( ViewHolder ( root View ), Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæī§è¡Į é¡ºåºı ï¼ļ 3 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æĺ¯ ç»§æī¿ äºĨ Gen ji Dialog ï¼Į éĤ£ä¹Ī å°±ä¼ļ éĩį åĨĻ extends Options () æĸ¹æ³ķ ĊĠĠĠĠĠĠĠ Ġ// æīĢä»¥ åħĪ æ£ĢæŁ¥ æĺ¯åĲ¦ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ï¼Į å¦Ĥæŀľ éĩį åĨĻ äºĨ ï¼Į å°± ä½¿çĶ¨ è¯¥ æĸ¹æ³ķ è¿ĶåĽŀ çļĦ dialog Options ĊĠĠĠĠĠĠĠ Ġextends Options ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog æł·å¼ı ĊĠĠĠĠĠĠĠ Ġset Style ( dialog Options . dialog Style , Ġdialog Options . dialog Theme Fun . invoke ( this )) ĊĠĠĠĠĠĠĠ Ġ// æģ ¢å¤į ä¿ĿåŃĺ çļĦ éħįç½® ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options Ġ= ĠsavedInstanceState . get Parcelable ( options ) !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæī§è¡Į é¡ºåºı ï¼ļ 4 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// åĬłè½½ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġinflater . inflate ( dialog Options . layout Id , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// un Display View Size ( view ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! dialog Options . is Lazy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView ( ViewHolder ( root View ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ ĩĴ åĬłè½½ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Lazy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġdialog Options . duration ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæķ°æį® ç»ĳå®ļ åĪ° è§ĨåĽ¾ / è§ĨåĽ¾ æİ§ä»¶ çĽĳåĲ¬ çŃī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠconvertView ( holder : ĠViewHolder , Ġdialog : ĠGen ji Dialog ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Options . convert Listener ?. convert View ( holder , Ġdialog ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġæī§è¡Į é¡ºåºı ï¼ļ 5 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ éħįç½® ĊĠĠĠĠĠĠĠ Ġinit Params () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå½ĵ ç»§æī¿ Gen ji Dialog æĹ¶ ï¼Į éľĢè¦ģ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ï¼Į è¯¦ è§ģ AAA ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġextends Options (): ĠDialog Options ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å±ı å¹ķ æĹ ĭ è½¬ çŃī å¯¼èĩ´ Dialog Fragment éĶĢ æ¯ ģ åĲİ éĩį å»º æĹ¶ ä¿ĿåŃĺ æķ°æį® ĊĠĠĠĠ Ġ* Ġï¼Ī ä¸»è¦ģ ä¿ĿåŃĺ dialog Options ä¸ŃçļĦ ä¸ĢäºĽ éħįç½® å±ŀæĢ§ åĴĮ çĽĳåĲ¬ ï¼Į æķ°æį®çļĦ ä¿ĿåŃĺ è¿ĺ éľĢ èĩªå·± æīĭåĬ¨ æĿ¥ ï¼ī ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġout State ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Parcelable ( options , Ġdialog Options ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸» åĬ¨ dismiss æĹ¶ ä¼ļ åľ¨ on Stop åīį è°ĥçĶ¨ ï¼Ī å½ĵ éĩĩçĶ¨ çī¹æ®Ĭ çļĦ view åĬ¨çĶ» æĹ¶ ï¼Į éľĢè¦ģ ä¸» åĬ¨ è°ĥçĶ¨ dismiss ï¼Į æīįèĥ½ çĶŁ æķĪ éĢĢåĩº åĬ¨çĶ» ï¼ī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdismiss () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Options . exit Animator . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æ²¡ èĩªå®ļä¹ī çļĦ view åĬ¨çĶ» ï¼Į éĤ£ä¹Ī çĽ´æİ¥ æī§è¡Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æ²¡æľī æī§è¡Į è¿ĩ çĽĳåĲ¬ æĵįä½ľ æīį æī§è¡Į ï¼Į å¹¶ä¸Ķ æĬĬ çĽĳåĲ¬ è®¾ ä¸º å·² æī§è¡Į çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dis missed . compare AndSet ( false , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Dismiss Listener () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{// å¦Ĥæŀľ æľī åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĽ´æİ¥ æī§è¡Į åĬ¨çĶ» ï¼Į è¯¥ åĬ¨çĶ» å·²ç»ı è®¾ç½® è¿ĩ çĽĳåĲ¬ ï¼Į å°Ĩ ä¼ļ åľ¨ ç»ĵæĿŁ åĬ¨çĶ» æĹ¶ è°ĥçĶ¨ super . dismiss () æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ ä¸įæĺ¯ ä¸» åĬ¨ dismiss ï¼Į èĢĮ æĺ¯ çĤ¹åĩ» å±ı å¹ķ æĪĸèĢħ è¿ĶåĽŀ éĶ® ï¼Į ĊĠĠĠĠ Ġ* Ġ å°± ä¸įä¼ļ è°ĥçĶ¨ dismiss æĸ¹æ³ķ ï¼Į çĽ´æİ¥ èµ° on Stop ĊĠĠĠĠ Ġ* Ġ æīĢä»¥ éľĢè¦ģ åľ¨ è¿ĻéĩĮ ä¹Ł è°ĥçĶ¨ dismiss çļĦ çĽĳåĲ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġ// åĪ¤æĸŃ æĹ¶åĢĻ å·²ç»ı æī§è¡Į è¿ĩ dismiss çļĦ çĽĳåĲ¬ æĵįä½ľ ï¼Į å¦Ĥæŀľ å·² æī§è¡Į è¿ĩ ï¼Į éĤ£ä¹Ī éĩįæĸ° è®¾ ä¸º æľª æī§è¡Į çĽĳåĲ¬ çĬ¶æĢģ ĊĠĠĠĠĠĠĠ Ġif Ġ( dis missed . compare AndSet ( true , Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecute Dismiss Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæī§è¡Į show æĹ¶åĢĻ çļĦ çĽĳåĲ¬ æĵįä½ľ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġexecute Show Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġdialog Options . show Dismiss Map . entries ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry . value . enable Execute Show Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry . value . on Dialog Show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæī§è¡Į dim iss æĹ¶åĢĻ çļĦ çĽĳåĲ¬ æĵįä½ľ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġexecute Dismiss Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġdialog Options . show Dismiss Map . entries ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry . value . enable Execute Dismiss Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry . value . on Dialog Dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* è¿Ľåħ¥ åĬ¨çĶ» çļĦ listener */ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġanim ator Enter Listener : ĠAn imator Listener Ex ĊĠĠĠ Ġ/* éĢĢåĩº åĬ¨çĶ» çļĦ listener */ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġanim ator Exit Listener : ĠAn imator Listener Ex ĊĊĠĠĠ Ġ/* åĪĿå§ĭåĮĸ è¿Ľåħ¥ åĬ¨çĶ» çļĦ listener */ ĊĠĠĠ Ġprivate Ġfun Ġinit Animator Enter Listener (): ĠAn imator Listener Ex Ġ{ ĊĠĠĠĠĠĠĠ Ġanim ator Enter Listener Ġ= ĠAn imator Listener Ex (). on Animator Start Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . can Click Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ}. on Animator End Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . can Click Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġanim ator Enter Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* åĪĿå§ĭåĮĸ éĢĢåĩº åĬ¨çĶ» çļĦ listener */ ĊĠĠĠ Ġprivate Ġfun Ġinit Animator Exit Listener (): ĠAn imator Listener Ex Ġ{ ĊĠĠĠĠĠĠĠ Ġanim ator Exit Listener Ġ= ĠAn imator Listener Ex (). on Animator Start Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . can Click Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ}. on Animator End Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// éĢĢåĩº åĬ¨çĶ» ç»ĵæĿŁ æĹ¶ è°ĥçĶ¨ super . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dis missed . compare AndSet ( false , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Dismiss Listener () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . can Click Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġanim ator Exit Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ éħįç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Params () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog çļĦ åĪĿå§ĭåĮĸ æķ°æį® ĊĠĠĠĠĠĠĠ Ġdialog . window ?. let Ġ{ Ġwindow Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog æĺ¾ç¤º æĹ¶ ï¼Į å¸ĥå±Ģ ä¸Ń view çļĦ èĩªå®ļä¹ī åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . set Enter Animator Fun ?. invoke ( window . decor View . findViewById ( android . R . id . content )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . addListener ( init Animator Enter Listener ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . enter Animator Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog éļĲèĹı æĹ¶ ï¼Į å¸ĥå±Ģ ä¸Ń view çļĦ èĩªå®ļä¹ī åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . set Exit Animator Fun ?. invoke ( window . decor View . findViewById ( android . R . id . content )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . addListener ( init Animator Exit Listener ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . exit Animator Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog çļĦ status Bar Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= Ġdialog Options . dialog StatusBar Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog çļĦ status Bar çļĦ æĺ¾ç¤º æ¨¡å¼ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . setStatus Bar Mode Fun . invoke ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® å±ŀæĢ§ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . attributes Ġ= Ġwindow . attributes ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è°ĥ èĬĤ çģ ° èī² èĥĮæĻ¯ éĢı æĺİ åº¦ [ 0 - 1 ] ï¼Į é»ĺè®¤ 0 . 3 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdim Amount Ġ= Ġdialog Options . dim Amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog å®½åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġif Ġ( dialog Options . width Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog é«ĺåº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġif Ġ( dialog Options . height Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å½ĵ å·¦ åı³ åįł æ»¡ æĹ¶ ï¼Į è®¾ç½® å·¦ åı³ ä¸¤ è¾¹ çļĦ å¹³åĿĩ è¾¹ è·Ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dialog Options . is Full Horizontal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Margin Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġget Screen Width ( resources ) Ġ- Ġ 2 Ġ* Ġdialog Options . full Horizontal Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ²¡æľī åįł æ»¡ çļĦæĹ¶åĢĻ ï¼Į è®¾ç½® æ°´ å¹³ æĸ¹åĲĳ çļĦ çĽ¸ å¯¹ è¾¹ è·Ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Margin Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . horizontal Margin Ġ< Ġ 0 Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . horizontal Margin Ġin Ġ 0 .. 1 Ġ-> Ġdialog Options . horizontal Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdialog Options . horizontal Margin Ġ/ Ġget Screen Width ( resources ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ï¼Ī ä¸į åĮħåĲ« status Bar ï¼ī å½ĵ ä¸Ĭä¸ĭ åįł æ»¡ æĹ¶ ï¼Į è®¾ç½® ä¸Ĭ ä¸ĭçļĦ å¹³åĿĩ è¾¹ è·Ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dialog Options . is Full Vertical ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Margin Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġget Screen Height ( resources ) Ġ- Ġ 2 Ġ* Ġdialog Options . full Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ²¡æľī åįł æ»¡ çļĦæĹ¶åĢĻ ï¼Į è®¾ç½® æ°´ å¹³ æĸ¹åĲĳ çļĦ çĽ¸ å¯¹ è¾¹ è·Ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Margin Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . vertical Margin Ġ< Ġ 0 Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . vertical Margin Ġin Ġ 0 .. 1 Ġ-> Ġdialog Options . vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdialog Options . vertical Margin Ġ/ Ġget Screen Height ( resources ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ï¼Ī åĮħåĲ« StatusBar ï¼ī çľŁ æŃ£ çļĦ åħ¨ å±ı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dialog Options . is Full Vertical Over StatusBar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Margin Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġget Screen Height Over StatusBar ( m Activity ) Ġ- Ġ 2 Ġ* Ġdialog Options . full Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® ä½įç½® ( å¦Ĥæŀľ è®¾ç½® äºĨ as View , éĤ£ä¹Ī gravity åĪĻ æ°¸ è¿ľ ä¸º LEFT _ TOP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= Ġdialog Options . gravity . index ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ è®¾ç½® äºĨ as View ï¼Į éĤ£ä¹Ī è®¾ç½® dialog çļĦ x ï¼Į y åĢ¼ ï¼Į å°Ĩ dialog æĺ¾ç¤º åľ¨ view éĻĦ è¿ĳ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dialog Options . is As View ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= Ġdialog Options . dialog View X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= Ġdialog Options . dialog View Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® dialog è¿Ľåħ¥ æĹ¶ åĨħéĥ¨ view çļĦ åĬ¨çĶ» , å¦Ĥæŀľ anim ator åĬ¨çĶ» ä¸į ä¸ºç©º ï¼Į éĤ£ä¹Ī æī§è¡Į anim ator åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . enter Animator ?. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĲ¦åĪĻ æī§è¡Į animation åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . anim Style ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . setWindow Animations ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æĺ¯åĲ¦ çĤ¹åĩ» å¤ĸéĥ¨ ä¸į æ¶Ī å¤± ĊĠĠĠĠĠĠĠ Ġis Cancel able Ġ= Ġdialog Options . out Cancel ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æĺ¯åĲ¦ çĤ¹åĩ» å±ı å¹ķ åĮºåŁŁ ä¸į æ¶Ī å¤± ï¼Ī çĤ¹åĩ» è¿ĶåĽŀ éĶ® åı¯ æ¶Ī å¤± ï¼ī ĊĠĠĠĠĠĠĠ Ġdialog . set Canceled On Touch Outside ( dialog Options . touch Cancel ) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æĮī éĶ® æĭ ¦ æĪª äºĭä»¶ ï¼Į ä¸ĢèĪ¬ åľ¨ åħ¨ å±ı æĺ¾ç¤º éľĢè¦ģ éĩį åĨĻ è¿ĶåĽŀ éĶ® æĹ¶ çĶ¨ åĪ° ĊĠĠĠĠĠĠĠ Ġset On Key Listener () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĩį åĨĻ æĮīéĴ® çĽĳåĲ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset On Key Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* if Ġ( fragment Manager Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog Options . on Key Listener Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠĠĠĠĠ Ġ// boolean Ġb Ġ= Ġget FragmentManager (). execute Pending Transactions (); ĊĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ è®¾ç½® è¿ĩ çī¹æ®Ĭ çļĦ åĬ¨çĶ» ï¼Į å¹¶ä¸Ķ æ²¡æľī è®¾ç½® è¿ĶåĽŀ å»º çļĦ çĽĳåĲ¬ ï¼Į éĤ£ä¹Ī é»ĺè®¤ è®¾ç½® ä¸Ģä¸ª è¿ĶåĽŀ éĶ® çļĦ çĽĳåĲ¬ ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog Options . exit Animator Ġ!= Ġnull Ġ&& Ġdialog Options . on Key Listener Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġon Key Ġ= Ġobject Ġ: ĠOn Key Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Key ( dialog : ĠDialog Interface , ĠkeyCode : ĠInt , Ġevent : ĠKeyEvent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( keyCode Ġ== ĠKeyEvent . KEYCODE _ BACK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( get Dialog Options (). can Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . setOn Key Listener ( on Key ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{// å¦Ĥæŀľ ä¸įæĺ¯ çī¹æ®Ĭ åĬ¨çĶ» ï¼Į æĪĸèĢħ çĶ¨æĪ· èĩªå®ļä¹ī äºĨ On Key Listener ï¼Į éĤ£ä¹Ī çĽ´æİ¥ å°Ĩ on Key Listener è®¾ç½® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . on Key Listener ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . setOn Key Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ æĺ¯ ä¸º java åĩĨå¤ĩ çļĦä¸Ģä¸ª åıĤæķ° çļĦ show On Window æĸ¹æ³ķ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On Window ( manager : ĠFragment Manager ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . gravity Ġ= Ġdialog Options . gravity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anim Style Ġ= Ġdialog Options . anim Style ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove As View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Anim () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ æĺ¯ ä¸º java åĩĨå¤ĩ çļĦ ä¸¤ä¸ª åıĤæķ° çļĦ show On Window æĸ¹æ³ķ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity Ġdialog çĽ¸ å¯¹äºİ å±ı å¹ķ çļĦ ä½įç½® ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ ä½įç½® ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On Window ( manager : ĠFragment Manager , Ġgravity : ĠDialog Gravity Ġ= Ġdialog Options . gravity ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . gravity Ġ= Ġgravity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anim Style Ġ= Ġdialog Options . anim Style ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove As View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Anim () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġshow æĸ¹æ³ķ çļĦ æī§è¡Į é¡ºåºı Ġ ï¼ļ 1 ĊĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ java ä¸Ń ä¸º ä¸ī åıĤ ï¼Į kotlin ä¸º éĢļ çĶ¨ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity Ġdialog çĽ¸ å¯¹äºİ å±ı å¹ķ çļĦ ä½įç½® ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ ä½įç½® ) ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Anim Ġ æĸ°çļĦ åĬ¨çĶ» ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ åĬ¨çĶ» ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On Window ( manager : ĠFragment Manager , Ġgravity : ĠDialog Gravity Ġ= Ġdialog Options . gravity , Ġ@ Style Res Ġnew Anim : ĠInt ? Ġ= Ġdialog Options . anim Style ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . gravity Ġ= Ġgravity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anim Style Ġ= Ġnew Anim ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove As View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Anim () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ java ä¸Ń ä¸º åĽĽ åıĤ ï¼Į kotlin ä¸º éĢļ çĶ¨ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity Ġdialog çĽ¸ å¯¹äºİ å±ı å¹ķ çļĦ ä½įç½® ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ ä½įç½® ) ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Anim Ġ æĸ°çļĦ åĬ¨çĶ» ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ åĬ¨çĶ» ) ĊĠĠĠĠ Ġ* Ġ@ param Ġtag ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On Window ( manager : ĠFragment Manager , Ġgravity : ĠDialog Gravity Ġ= Ġdialog Options . gravity , Ġ@ Style Res Ġnew Anim : ĠInt ? Ġ= Ġdialog Options . anim Style , Ġtag : ĠString ?): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . gravity Ġ= Ġgravity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anim Style Ġ= Ġnew Anim ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove As View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Anim () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , Ġtag ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity Ġdialog çĽ¸ å¯¹äºİ å±ı å¹ķ çļĦ ä½įç½® ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ ä½įç½® ) ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Anim Ġ æĸ°çļĦ åĬ¨çĶ» ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ åĬ¨çĶ» ) ĊĠĠĠĠ Ġ* Ġ@ param Ġtag ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Now On Window ( manager : ĠFragment Manager , Ġgravity : ĠDialog Gravity Ġ= Ġdialog Options . gravity , Ġ@ Style Res Ġnew Anim : ĠInt ? Ġ= Ġdialog Options . anim Style , Ġtag : ĠString ?): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . gravity Ġ= Ġgravity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anim Style Ġ= Ġnew Anim ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove As View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Anim () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . show Now ( manager , Ġtag ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ dialog æĺ¾ç¤º åľ¨ view éĻĦ è¿ĳ ĊĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ æĺ¯ ä¸º java åĩĨå¤ĩ çļĦ ä¸¤ä¸ª åıĤæķ° çļĦ show On View æĸ¹æ³ķ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġview Ġ è¢« ä¾Ŀèµĸ çļĦ view ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On View ( manager : ĠFragment Manager , Ġview : ĠView ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . dialog As View ( view , Ġdialog Options . gravity As View , Ġdialog Options . anim Style , Ġdialog Options . offset X , Ġdialog Options . offset Y ) ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ dialog æĺ¾ç¤º åľ¨ view éĻĦ è¿ĳ ĊĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ æĺ¯ ä¸º java åĩĨå¤ĩ çļĦ ä¸īä¸ª åıĤæķ° çļĦ show On View æĸ¹æ³ķ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġview Ġ è¢« ä¾Ŀèµĸ çļĦ view ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity As View Ġ çĽ¸ å¯¹äºİ è¯¥ view çļĦ ä½įç½® ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ ä½įç½® ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On View ( manager : ĠFragment Manager , Ġview : ĠView , Ġgravity As View : ĠDialog Gravity Ġ= Ġdialog Options . gravity As View ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . dialog As View ( view , Ġgravity As View , Ġdialog Options . anim Style , Ġdialog Options . offset X , Ġdialog Options . offset Y ) ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ dialog æĺ¾ç¤º åľ¨ view éĻĦ è¿ĳ ĊĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ æĺ¯ ä¸º java åĩĨå¤ĩ çļĦ åīį åĽĽ ä¸ª åıĤæķ° çļĦ show On View æĸ¹æ³ķ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġview Ġ è¢« ä¾Ŀèµĸ çļĦ view ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity As View Ġ çĽ¸ å¯¹äºİ è¯¥ view çļĦ ä½įç½® ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ ä½įç½® ) ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Anim Ġ æĸ°çļĦ åĬ¨çĶ» ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ çļĦ åĬ¨çĶ» æķĪæŀľ ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On View ( manager : ĠFragment Manager , Ġview : ĠView , Ġgravity As View : ĠDialog Gravity Ġ= Ġdialog Options . gravity As View , Ġ@ Style Res Ġnew Anim : ĠInt ? Ġ= Ġdialog Options . anim Style ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . dialog As View ( view , Ġgravity As View , Ġnew Anim , Ġdialog Options . offset X , Ġdialog Options . offset Y ) ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ dialog æĺ¾ç¤º åľ¨ view éĻĦ è¿ĳ ĊĠĠĠĠ Ġ* Ġ@ param Ġmanager ĊĠĠĠĠ Ġ* Ġ@ param Ġview Ġ è¢« ä¾Ŀèµĸ çļĦ view ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity As View Ġ çĽ¸ å¯¹äºİ è¯¥ view çļĦ ä½įç½® ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® çļĦ ä½įç½® ) ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Anim Ġ æĸ°çļĦ åĬ¨çĶ» ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ çļĦ åĬ¨çĶ» æķĪæŀľ ) ĊĠĠĠĠ Ġ* Ġ@ param Ġoffset X Ġx è½´ çļĦ åģı ç§» éĩı ï¼Į ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® è¿ĩ çļĦ åģı ç§» éĩı ) ĊĠĠĠĠ Ġ* Ġ åģı ç§» éĩı çļĦ å®ļä¹ī è¯· çľĭ {@ link ĠDialog Options # dialog As View ( View , Dialog Gravity , Int , Int , Int ) ĠDialog Options . dialog As View } ĊĠĠĠĠ Ġ* Ġ@ param Ġoffset Y Ġy è½´ çļĦ åģı ç§» éĩı ï¼Į ( é»ĺè®¤ä¸º ä¸Ĭ ä¸Ģæ¬¡ è®¾ç½® è¿ĩ çļĦ åģı ç§» éĩı ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow On View ( manager : ĠFragment Manager , Ġview : ĠView , Ġgravity As View : ĠDialog Gravity Ġ= Ġdialog Options . gravity As View , Ġ@ Style Res Ġnew Anim : ĠInt ? Ġ= Ġdialog Options . anim Style , Ġoffset X : ĠInt Ġ= Ġdialog Options . offset X , Ġoffset Y : ĠInt Ġ= Ġdialog Options . offset Y ): ĠGen ji Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Show Listener () ĊĠĠĠĠĠĠĠ Ġdialog Options . dialog As View ( view , Ġgravity As View , Ġnew Anim , Ġoffset X , Ġoffset Y ) ĊĠĠĠĠĠĠĠ Ġsuper . show ( manager , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ Ċ }