/* Ċ Ġ* ĠCopyright Ġ( C ) Ġby ĠM inter Team . Ġ 2 0 2 0 Ċ Ġ* Ġ@ link Ġ< a Ġhref =" https :// github . com / M inter Team "> Org ĠGithub </ a > Ċ Ġ* Ġ@ link Ġ< a Ġhref =" https :// github . com / ed ward stock "> Maint ainer ĠGithub </ a > Ċ Ġ* Ċ Ġ* ĠThe ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġnetwork . min ter . bip wallet . internal . dialogs Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . view . animation . Accel erate De cel erate Interpolator Ċ import Ġandroid . view . animation . Accel erate Interpolator Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . core . view . post On Animation Delayed Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġnetwork . min ter . bip wallet . internal . Base M vp Bottom Sheet Dialog Fragment Ċ import Ġnetwork . min ter . bip wallet . internal . helpers . Keyboard Helper Ċ import Ġtim ber . log . Tim ber Ċ Ċ type alias ĠActionListener Ġ= Ġ() Ġ-> ĠUnit Ċ Ċ abstract Ġclass ĠBase Bottom Sheet Dialog Fragment Ġ: ĠBase M vp Bottom Sheet Dialog Fragment () Ġ{ ĊĠĠĠ Ġvar ĠonSubmit Listener : ĠActionListener ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġon Dismiss Listener : ĠActionListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsheet Was Expanded : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġroot View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠmaxHeight : ĠFloat Ġ= Ġ 0 f ĊĠĠĠ Ġprotected Ġvar Ġwallet Dialog : ĠWallet Dialog ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġvar Ġwallet Dialog Fragment : ĠWallet Dialog Fragment ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġval Ġbehavior : ĠBottom Sheet Behavior < Frame Layout >? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ( dialog Ġas ĠBottom Sheet Dialog ?) ?. behavior ĊĊĠĠĠ Ġoverride Ġfun Ġon Dismiss ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Dismiss ( dialog ) ĊĠĠĠĠĠĠĠ Ġif Ġ( on Dismiss Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dismiss Listener !!. invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġview ĊĠĠĠĠĠĠĠ Ġexpand ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġsuper . onCreate Dialog ( savedInstanceState ) Ġas ĠBottom Sheet Dialog ĊĠĠĠĠĠĠĠ Ġd . request Window Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠ Ġd . behavior . add Bottom Sheet Callback ( object Ġ: ĠBottom Sheet Behavior . Bottom Sheet Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Slide ( bottom Sheet : ĠView , Ġslide Offset : ĠFloat ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon StateChanged ( bottom Sheet : ĠView , ĠnewState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxHeight Ġ= ĠmaxHeight . coerce At Least ( root !!. height . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġd . behavior . state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĊĠĠĠĠĠĠĠ Ġif Ġ( d . window Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġd . window !!. attributes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . width Ġ= ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . height Ġ= ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . window !!. attributes Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . window !!. set Gravity ( Gravity . BOTTOM Ġor ĠGr avity . CENTER _ HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . window !!. set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ ADJ UST _ RE SIZE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . window !!. status Bar Color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġd ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġvar Ġinternal State Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĊĠĠĠ Ġprotected Ġval Ġroot : ĠViewGroup ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview ?. parent Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġcollapse () Ġ{ ĊĠĠĠĠĠĠĠ Ġcollapse ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġcollapse ( animate : ĠBoolean Ġ= Ġtrue , Ġon Collapsed : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Sheet ĠCOL LAP SE ( anim =% b )", Ġanimate ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( internal State Ġ!= ĠBottom Sheet Behavior . STATE _ EXP AN DED Ġ|| Ġroot Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Collapsed ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinternal State Ġ= ĠBottom Sheet Behavior . STATE _ COLL AP SED ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! animate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot !!. translation Y Ġ+= ĠmaxHeight . coerce At Least ( root !!. height . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal State Ġ= ĠBottom Sheet Behavior . STATE _ COLL AP SED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Collapsed ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠKeyboard Helper . hide Keyboard ( this ) ĊĊĠĠĠĠĠĠĠ Ġroot !!. animate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( 1 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( Accel erate Interpolator ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( object Ġ: ĠAn imator . Animator Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAn imator ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Collapsed ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () Ċ Ċ // ĠĠĠĠĠĠĠ Ġroot !!. animate () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translation Y By ( max Height . coerce At Least ( root !!. height . toFloat ())) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( 1 0 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( Accel erate De cel erate Interpolator ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( object Ġ: ĠAn imator . Animator Listener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAn imator ?) Ġ{} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ?) Ġ{} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAn imator ?) Ġ{} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Collapsed ?. invoke () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġexpand ( force : ĠBoolean Ġ= Ġfalse , Ġon Expanded : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( internal State Ġ!= ĠBottom Sheet Behavior . STATE _ COLL AP SED Ġ|| Ġroot Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Expanded ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinternal State Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED Ċ // ĠĠĠĠĠĠĠ Ġroot !!. animate () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translation Y By (- root !!. translation Y ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( 1 0 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( Accel erate De cel erate Interpolator ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( object Ġ: ĠAn imator . Animator Listener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAn imator ?) Ġ{} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ?) Ġ{} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAn imator ?) Ġ{} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Expanded ?. invoke () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠĠĠĠĠ Ġroot !!. animate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( 1 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( Accel erate De cel erate Interpolator ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( object Ġ: ĠAn imator . Animator Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAn imator ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Expanded ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġpost Root ( r : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( view ?. parent Ġas ĠViewGroup ?) ?. post ( r ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġpost Root On Animation ( r : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( view ?. parent Ġas ĠViewGroup ?) ?. post On Animation ( r ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġpost Delayed Root On Animation ( delay : ĠLong , Ġr : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( view ?. parent Ġas ĠViewGroup ?) ?. post On Animation Delayed ( delay , Ġr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġstart Dialog Fragment ( executor : ĠDialog Fragment Executor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcollapse ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisable Ġparent Ġdis missing Ġif Ġwe 're Ġopening Ġsecond Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wallet Dialog Fragment . isVisible ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet Dialog Fragment !!. remove On Dismiss Listener ( nested Dialog Parent Expand Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwallet Dialog Fragment Ġ= ĠWallet Dialog Fragment . switch Dialog With Executor ( this , Ġwallet Dialog Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġexecutor ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . fix B link Child Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . add On Dismiss Listener ( nested Dialog Parent Expand Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġnested Dialog Parent Expand Handler Ġ= ĠDialog Interface . On Dismiss Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġexpand () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġstart Dialog ( executor : ĠDialog Executor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcollapse ( true ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisable Ġparent Ġdis missing Ġif Ġwe 're Ġopening Ġsecond Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wallet Dialog . isVisible ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet Dialog !!. remove On Dismiss Listener ( nested Dialog Parent Expand Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwallet Dialog Ġ= ĠWallet Dialog . switch Dialog With Executor ( this , Ġwallet Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġexecutor ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . window ?. clear Flags ( WindowManager . LayoutParams . FLAG _ DIM _ BE H IND ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . window ?. setWindow Animations ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . add On Dismiss Listener ( nested Dialog Parent Expand Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġ< T Ġ: ĠBase Bottom Sheet Dialog Fragment > ĠT . fix Nested Dialog Background s (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog !!. window ?. clear Flags ( WindowManager . LayoutParams . FLAG _ DIM _ BE H IND ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog !!. window ?. setWindow Animations ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġ< T Ġ: ĠDialog > ĠT . fix Nested Dialog Background s (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow ?. clear Flags ( WindowManager . LayoutParams . FLAG _ DIM _ BE H IND ) ĊĠĠĠĠĠĠĠ Ġwindow ?. setWindow Animations ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġcollapse () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġis ĠWallet Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Dismiss Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Dismiss Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ }