package Ġcom . f phoenix cor ne ae . jet pack mv vm . compose . base . dialog Ċ Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Mutable State Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . platform . Compose View Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . f phoenix cor ne ae . jet pack mv vm . R Ċ import Ġcom . f phoenix cor ne ae . jet pack mv vm . compose . theme . Compose Theme Ċ import Ġcom . f phoenix cor ne ae . jet pack mv vm . compose . theme . System Ui Controller Ċ import Ġcom . f phoenix cor ne ae . jet pack mv vm . compose . theme . Theme State Ċ import Ġkotlinx . coroutines . delay Ċ Ċ /** Ċ Ġ* Ġ@ desc ï¼ļ Dialog Ġ åŁº ç±» Ċ Ġ* Ġ@ date ï¼ļ 2 0 2 1 / 0 8 / 2 0 Ġ 1 7 : 3 6 Ċ Ġ*/ Ċ abstract Ġclass ĠBase Dialog Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġ/** Ġæĺ¯åĲ¦ ç¬¬ ä¸Ģæ¬¡ åĬłè½½ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġis First : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ/** Ġ è·Ł è§ĨåĽ¾ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Root View : ĠCompose View ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** Ġ è§£ æķ£ çĽĳåĲ¬ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm On Dismiss Listener : Ġ(( DialogInterface ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġm Root View Ġ= ĠCompose View ( require Context ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġm Root View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġis First Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġinit Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġdialog ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæĺ¯åĲ¦ åı¯ çĤ¹åĩ» å¤ĸéĥ¨ æ¶Ī å¤± ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Canceled On Touch Outside ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæĺ¯åĲ¦ åı¯ åıĸæ¶Ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åİ» æİī Ġdialog Ġé»ĺè®¤ çļĦ Ġpadding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . set Padding ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Background Drawable ( get Background ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Gravity ( get Gravity ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Layout ( getWidth (), Ġget Height ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= Ġattributes ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow Animations Ġ= Ġget Window Animations () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdim Amount Ġ= Ġget Dim Amount () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġon Visible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ éľĢè¦ģ æ ĩĴ åĬłè½½ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Visible () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ å»¶ è¿ Ł åĬłè½½ Ġ éĺ² æŃ¢ Ġ åĪĩæį¢ åĬ¨çĶ» è¿ĺ æ²¡ æī§è¡Į å®Į æ¯ķ æĹ¶ æķ°æį® å°± å·²ç»ı åĬłè½½ å¥½ äºĨ ï¼Į è¿Ļ æĹ¶ é¡µéĿ¢ ä¼ļ æľī æ¸²æŁĵ åį¡ é¡ ¿ ĊĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( lazy Load Time ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å»¶ è¿ Ł åĬłè½½ Ġ éĺ² æŃ¢ Ġ åĪĩæį¢ åĬ¨çĶ» è¿ĺ æ²¡ æī§è¡Į å®Į æ¯ķ æĹ¶ æķ°æį® å°± å·²ç»ı åĬłè½½ å¥½ äºĨ ï¼Į è¿Ļ æĹ¶ é¡µéĿ¢ ä¼ļ æľī æ¸²æŁĵ åį¡ é¡ ¿ Ġ Ġbug ĊĠĠĠĠ Ġ* Ġ è¿ĻéĩĮ ä¼łåħ¥ ä½ł æĥ³è¦ģ å»¶ è¿ Ł çļĦæĹ¶éĹ´ ï¼Į å»¶ è¿ Ł æĹ¶éĹ´ åı¯ä»¥ è®¾ç½® æ¯Ķ è½¬ åľº åĬ¨çĶ» æĹ¶éĹ´ éķ¿ ä¸Ģ çĤ¹ Ġ åįķä½į ï¼ļ Ġæ¯ « ç§Ĵ ĊĠĠĠĠ Ġ* Ġä¸į ä¼ł é»ĺè®¤ Ġ 3 0 0 æ¯ « ç§Ĵ ĊĠĠĠĠ Ġ* Ġ@ return ĠLong ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġlazy Load Time (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 3 0 0 ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Real Content ( content : Ġ@ Composable Ġ( Mutable State < Theme State >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Root View ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtheme State Ġ= Ġremember Ġ{ Ġmutable State Of ( Theme State ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsystem Ui Controller Ġ= Ġremember Ġ{ ĠSystem Ui Controller ( require Activity (). window ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoot View ( theme State . value , Ġsystem Ui Controller ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent ( theme State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġinit View () ĊĊĠĠĠ Ġabstract Ġfun Ġinit Listener () ĊĊĠĠĠ Ġabstract Ġfun Ġinit Data () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĭ¥ è¦ģ ä¿®æĶ¹ èĥĮæĻ¯ åı¯ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Background (): ĠDrawable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠColor Drawable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĭ¥ è¦ģ ä¿®æĶ¹ éĩį åĬĽ æĸ¹åĲĳ åı¯ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Gravity (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGr avity . CENTER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĭ¥ è¦ģ ä¿®æĶ¹ å¼¹ çªĹ åĬ¨çĶ» åı¯ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Window Animations (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . style . Dialog Animation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĭ¥ è¦ģ ä¿®æĶ¹ å®½åº¦ åı¯ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Width (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWR AP _ CONTENT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĭ¥ è¦ģ ä¿®æĶ¹ é«ĺåº¦ åı¯ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Height (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWR AP _ CONTENT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĭ¥ è¦ģ ä¿®æĶ¹ æ¨¡ ç³ Ĭ åº¦ åı¯ éĩį åĨĻ è¯¥ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Dim Amount (): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 . 4 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow ( activity : ĠFragment Activity , Ġtag : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . show ( activity . support FragmentManager , Ġtag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow ( fragment : ĠFragment , Ġtag : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . show ( fragment . child FragmentManager , Ġtag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dismiss ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Dismiss ( dialog ) ĊĠĠĠĠĠĠĠ Ġm On Dismiss Listener ?. invoke ( dialog ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Dismiss Listener ( on Dismiss Listener : Ġ( DialogInterface ) Ġ-> ĠUnit ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġm On Dismiss Listener Ġ= Ġon Dismiss Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠRoot View ( ĊĠĠĠĠĠĠĠ Ġtheme State : ĠTheme State , ĊĠĠĠĠĠĠĠ Ġsystem Ui Controller : ĠSystem Ui Controller ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsystem Ui Controller ?. setStatus Bar Color ( color Ġ= Ġtheme State . status Bar Color , Ġdark Icons Ġ= Ġtheme State . dark Theme ) ĊĠĠĠĠĠĠĠ ĠCompose Theme ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdark Theme Ġ= Ġtheme State . dark Theme , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdark Colors Ġ= Ġtheme State . dark Colors , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlight Colors Ġ= Ġtheme State . light Colors ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun Ġget Local Context () Ġ= ĠLocal Context . current ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMATCH _ PARENT Ġ= ĠWindow Manager . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWR AP _ CONTENT Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĠĠĠ Ġ} Ċ }