package Ġmo e . f eng . support . bio metric prompt Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Listener Adapter Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . IN VISIBLE Ċ import Ġandroid . view . View . Measure Spec . AT _ MO ST Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . ViewGroup . LayoutParams . MATCH _ PARENT Ċ import Ġandroid . view . ViewGroup . LayoutParams . WRAP _ CONTENT Ċ import Ġandroid . view . Window Insets Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . animation . Accel erate Interpolator Ċ import Ġandroid . view . animation . De cel erate Interpolator Ċ import Ġandroid . widget . Frame Layout Ċ Ċ class ĠBio metric Prompt Dialog ( context : ĠContext , Ġprivate Ġval Ġfocus able : ĠBoolean ) Ġ: ĠDialog ( context , ĠR . style . Transparent Dialog ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġstart Animation Runnable : ĠRunnable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcur Sheet Animation : ĠAn imator Set ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Dis missed Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġlast Insets : ĠWindow Insets ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġcontainer : ĠContainer View Ġby Ġlazy Ġ{ ĠContainer View ( context ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġsheet Container : ĠFrame Layout Ġby Ġlazy Ġ{ ĠFrame Layout ( context ) Ġ} ĊĠĠĠ Ġprivate Ġvar Ġcustom View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcustom View Height : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġspeed Ġ= Ġcontext . dip ( 0 . 5 f ) ĊĊĠĠĠ Ġprivate Ġval Ġback Drawable Ġ= ĠColor Drawable (- 0 x 1 0 0 0 0 0 0 ) ĊĊĠĠĠ Ġprivate Ġvar Ġbottom Sheet Listener : ĠBottom Sheet Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġfull Screen Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠContainer View ( context : ĠContext ) Ġ: ĠFrame Layout ( context ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Touch Event ( ev : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ev Ġ!= Ġnull Ġ&& Ġ( ev . action Ġ== ĠMotion Event . ACTION _ DOWN Ġ|| Ġev . action Ġ== ĠMotion Event . ACTION _ MOVE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart X Ġ= Ġev . x . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Y Ġ= Ġev . y . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Y Ġ< Ġsheet Container . top Ġ|| Ġstart X Ġ< Ġsheet Container . left Ġ|| Ġstart X Ġ> Ġsheet Container . right ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Touch Event ( ev ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠView . Measure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheight Ġ= ĠView . Measure Spec . getSize ( height Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( last Insets Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ-= Ġlast Insets !!. system Window Inset Bottom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Measured Dimension ( width , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Por trait Ġ= Ġwidth Ġ< Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Spec Ġ= ĠView . Measure Spec . make Measure Spec ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Por trait ) Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠMath . max ( width Ġ* Ġ 0 . 8 f , Ġmin Of ( context . dip ( 4 8 0 f ), Ġwidth ). toFloat ()). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . EX ACT LY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Container . measure ( width Spec , ĠView . Measure Spec . make Measure Spec ( height , ĠView . Measure Spec . AT _ MO ST )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠBottom Sheet Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Open Animation Start () ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Open Animation End () ĊĊĠĠĠĠĠĠĠ Ġfun Ġcan Dismiss (): ĠBoolean ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġclass ĠBottom Sheet Listener Adapter Ġ: ĠBottom Sheet Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Open Animation Start () Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Open Animation End () Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Dismiss () Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ LAYOUT _ IN SET _ DE COR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠWindow Manager . LayoutParams . FLAG _ LAYOUT _ IN _ SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠWindow Manager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠ Ġcontainer . background Ġ= Ġback Drawable ĊĠĠĠĠĠĠĠ Ġcontainer . fits System Windows Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcontainer . setOn Apply Window Insets Listener Ġ{ Ġv , Ġin sets Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( last Insets Ġ== Ġnull Ġ&& Ġcustom View Ġ!= Ġnull Ġ&& Ġ! full Screen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġcustom View !!. layout Params Ġas ĠFrame Layout . LayoutParams ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . top Margin Ġ= Ġin sets . system Window Inset Top ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom View !!. layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Insets Ġ= Ġin sets ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . request Layout () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin sets . consume System Window Insets () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontainer . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN ĊĠĠĠĠĠĠĠ Ġback Drawable . alpha Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġwindow . setWindow Animations ( R . style . Dialog No Animation ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ NAV IG ATION _ BAR Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetContentView ( container , ĠViewGroup . LayoutParams ( MATCH _ PARENT , ĠMATCH _ PARENT )) ĊĊĠĠĠĠĠĠĠ Ġsheet Container . fits System Windows Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsheet Container . visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠ Ġcontainer . addView ( sheet Container , ĠFrame Layout . LayoutParams ( MATCH _ PARENT , ĠWR AP _ CONTENT , ĠGr avity . BOTTOM )) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( custom View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( custom View !!. parent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( custom View !!. parent Ġas ĠViewGroup ). remove View ( custom View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Container . addView ( custom View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams ( MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( custom View Height Ġ> Ġ 0 ) Ġcustom View Height Ġelse ĠWR AP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . START Ġor ĠGr avity . TOP )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġwindow . attributes ĊĠĠĠĠĠĠĠ Ġparams . width Ġ= ĠMATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġparams . height Ġ= ĠMATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġparams . gravity Ġ= ĠGr avity . START Ġor ĠGr avity . TOP ĊĠĠĠĠĠĠĠ Ġparams . dim Amount Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġparams . flags Ġ= Ġparams . flags Ġand ĠWindow Manager . LayoutParams . FLAG _ DIM _ BE H IND . inv () ĊĠĠĠĠĠĠĠ Ġif Ġ(! focus able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . flags Ġ= Ġparams . flags Ġor ĠWindow Manager . LayoutParams . FLAG _ ALT _ FOCUS ABLE _ IM ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwindow . attributes Ġ= Ġparams ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . show () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( focus able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ ADJ UST _ RE SIZE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis Dis missed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġcancel Sheet Animation () ĊĠĠĠĠĠĠĠ Ġsheet Container . measure ( View . Measure Spec . make Measure Spec ( context . resources . display Metrics . width Pixels , ĠAT _ MO ST ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . make Measure Spec ( context . resources . display Metrics . height Pixels , ĠAT _ MO ST )) ĊĠĠĠĠĠĠĠ Ġback Drawable . alpha Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġsheet Container . translation Y Ġ= Ġsheet Container . meas ured Height . toFloat () ĊĠĠĠĠĠĠĠ Ġstart Animation Runnable Ġ= Ġobject Ġ: ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Animation Runnable Ġ!= Ġthis Ġ|| Ġis Dis missed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Animation Runnable Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Open Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsheet Container . post ( start Animation Runnable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Open Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Dis missed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsheet Container . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġcontainer . set Layer Type ( View . LAYER _ TYPE _ HARD WARE , Ġnull ) ĊĠĠĠĠĠĠĠ Ġsheet Container . translation Y Ġ= Ġsheet Container . meas ured Height . toFloat () ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Set Ġ= ĠAn imator Set () ĊĠĠĠĠĠĠĠ Ġanim ator Set . play To gether ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Float ( sheet Container , Ġ" translation Y ", Ġ 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Int ( back Drawable , Ġ" alpha ", Ġ 5 1 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġanim ator Set . duration Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġanim ator Set . start Delay Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠ Ġanim ator Set . interpol ator Ġ= ĠDec el erate Interpolator () ĊĠĠĠĠĠĠĠ Ġanim ator Set . addListener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cur Sheet Animation Ġ!= Ġnull Ġ&& Ġcur Sheet Animation Ġ== Ġanimation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Sheet Animation Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Listener ?. on Open Animation End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . set Layer Type ( View . LAYER _ TYPE _ NONE , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cur Sheet Animation Ġ!= Ġnull Ġ&& Ġcur Sheet Animation Ġ== Ġanimation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Sheet Animation Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġanim ator Set . start () ĊĠĠĠĠĠĠĠ Ġcur Sheet Animation Ġ= Ġanim ator Set ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdismiss () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Dis missed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis Dis missed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġfake Dismiss ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfake Dismiss ( fake : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcancel Sheet Animation () ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Set Ġ= ĠAn imator Set () ĊĠĠĠĠĠĠĠ Ġanim ator Set . play To gether ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Float ( sheet Container , Ġ" translation Y ", Ġsheet Container . meas ured Height . toFloat ()), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Int ( back Drawable , Ġ" alpha ", Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġanim ator Set . duration Ġ= Ġ 1 8 0 ĊĠĠĠĠĠĠĠ Ġanim ator Set . interpol ator Ġ= ĠAccel erate Interpolator () ĊĠĠĠĠĠĠĠ Ġanim ator Set . addListener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cur Sheet Animation Ġ!= Ġnull Ġ&& Ġcur Sheet Animation Ġ== Ġanimation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Sheet Animation Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Container . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! fake ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Internal () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cur Sheet Animation Ġ!= Ġnull Ġ&& Ġcur Sheet Animation Ġ== Ġanimation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Sheet Animation Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġanim ator Set . start () ĊĠĠĠĠĠĠĠ Ġcur Sheet Animation Ġ= Ġanim ator Set ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : ĠBottom Sheet Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Custom View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcustom View Ġ= Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Custom View () Ġ= Ġcustom View ĊĊĠĠĠ Ġprivate Ġfun Ġcancel Sheet Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġcur Sheet Animation ?. cancel () ĊĠĠĠĠĠĠĠ Ġcur Sheet Animation Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdismiss Internal () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . dismiss () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġbottom Sheet : ĠBio metric Prompt Dialog ĊĊĠĠĠĠĠĠĠ Ġconstructor ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Ġ= ĠBio metric Prompt Dialog ( context , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( context : ĠContext , Ġneed Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Ġ= ĠBio metric Prompt Dialog ( context , Ġneed Focus ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Custom View ( view : ĠView ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet . custom View Ġ= Ġview ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Listener ( bottom Sheet Listener : ĠBottom Sheet Listener ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet . bottom Sheet Listener Ġ= Ġbottom Sheet Listener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate (): ĠBio metric Prompt Dialog Ġ= Ġbottom Sheet ĊĊĠĠĠĠĠĠĠ Ġfun Ġshow (): ĠBio metric Prompt Dialog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbottom Sheet ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠContext . dip ( value : ĠFloat ): ĠInt Ġ= Ġ( value Ġ* Ġresources . display Metrics . density ). toInt () Ċ