package Ġcom . p mm . ui . core . dialog Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment ĊĊ Ċ type alias ĠDialog Callback Ġ= Ġ( Base Dialog ) Ġ-> ĠUnit Ċ Ċ /** Ċ Ġ* ĠAuthor : ä½ł éľĢè¦ģ ä¸Ģ åı° æ°¸ åĬ¨ æľº Ċ Ġ* ĠDate : 2 0 1 9 / 4 / 9 Ġ 2 3 : 2 6 Ċ Ġ* ĠDescription : ä¸ĵ éĹ¨ å¤ĦçĲĨ å¼¹ çªĹ å¼ı Dialog Ċ Ġ*/ Ċ abstract Ġclass ĠBase Dialog Ġ: ĠDialog Fragment () Ġ{ ĊĠĠĠ Ġvar Ġpositive Callback : ĠDialog Callback ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnegative Callback : ĠDialog Callback ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġcancel Callback : ĠDialog Callback ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdismiss Callback : ĠDialog Callback ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget TagName (): ĠString Ġ= Ġthis :: class . java . simple Name ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget Layout Res ID (): ĠInt ĊĊĠĠĠ Ġ// ä¿®æĶ¹ å®½åº¦ ä½¿çĶ¨ è¿Ļä¸ª æĸ¹æ³ķ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget View Width () Ġ= ĠWindow Manager . LayoutParams . MATCH _ PARENT ĊĊĠĠĠ Ġ// è®¾ç½® é«ĺåº¦ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget View Height () Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĊĠĠĠ Ġ// è®¾ç½® window æĺ¾ç¤º çļĦ åĬ¨çĶ» ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Window Animation () Ġ= Ġ- 1 // å¼¹ çªĹ åĬ¨çĶ» ĊĊĠĠĠ Ġ// è®¾ç½® gravity ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Gravity () Ġ= ĠGr avity . NO _ GR AV ITY ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġdialog ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġthis . window ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow !!. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Params Ġ= Ġwindow . attributes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow Params . gravity Ġ= Ġget Gravity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow Params . width Ġ= Ġget View Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow Params . height Ġ= Ġget View Height () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( getWindow Animation () Ġ!= Ġ- 1 ) Ġwindow Params . window Animations Ġ= Ġget Window Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// window Params . dim Amount Ġ= Ġ 0 . 0 f ;// è®¾ç½® Dialog å¤ĸ åħ¶ä»ĸ åĮºåŁŁ çļĦ alpha åĢ¼ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . attributes Ġ= Ġwindow Params ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfinal Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® è§ĨåĽ¾ ĊĠĠĠĠĠĠĠ Ġreturn ĠLayoutInflater . from ( context ). inflate ( get Layout Res ID (), Ġcontainer , Ġfalse ) Ġas ĠView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ä½¿çĶ¨ Fragment ĊĠĠĠ Ġfun Ġshow ( fragment : ĠFragment ): ĠBase Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġshow ( fragment . child FragmentManager , Ġget TagName ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ä½¿çĶ¨ Activity ĊĠĠĠ Ġfun Ġshow ( activity : ĠAppCompatActivity ): ĠBase Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġshow ( activity . support FragmentManager , Ġget TagName ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ä½¿çĶ¨ ä¸Ĭä¸ĭ æĸĩ æĺ¾ç¤º ĊĠĠĠ Ġfun Ġshow ( context : ĠContext ): ĠBase Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠAppCompatActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( context ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" invalid Ġcontext ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġ// å±ı èĶ ½ Dialog Fragment çļĦæĸ¹æ³ķ Ċ // ĠĠĠ Ġfinal Ġoverride Ġfun Ġshow ( manager : ĠFragment Manager , Ġtag : ĠString ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġsuper . show ( manager , Ġtag ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ// å±ı èĶ ½ Dialog Fragment çļĦæĸ¹æ³ķ Ċ // ĠĠĠ Ġfinal Ġoverride Ġfun Ġshow ( transaction : ĠFragment Transaction , Ġtag : ĠString ?): ĠInt Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġsuper . show ( transaction , Ġtag ) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æī§è¡Į positive çļĦ æĵįä½ľ ĊĠĠĠ Ġprotected Ġfun Ġaction Positive Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġpositive Callback ?. invoke ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æī§è¡Į negative çļĦ æĵįä½ľ ĊĠĠĠ Ġprotected Ġfun Ġaction Negative Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġnegative Callback ?. invoke ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cancel ( dialog ) ĊĠĠĠĠĠĠĠ Ġcancel Callback ?. invoke ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dismiss ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Dismiss ( dialog ) ĊĠĠĠĠĠĠĠ Ġdismiss Callback ?. invoke ( this ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ