package Ġio . put me 2 your heart . bio metric Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġkotlinx . android . synt hetic . main . dialog _ bio metric _ prompt .* ĊĊ Ċ internal Ġclass ĠBio metric Prompt Compat Dialog ( context : ĠContext ) Ġ: ĠDialog ( ĊĠĠĠ Ġcontext , ĊĠĠĠ Ġfind Theme Res Id ( context ) Ċ ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow ?. setLayout ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġwindow ?. set Gravity ( Gravity . BOTTOM ) ĊĊĠĠĠĠĠĠĠ Ġset Canceled On Touch Outside ( true ) ĊĠĠĠĠĠĠĠ Ġset Cancel able ( true ) ĊĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= ĠLayoutInflater . from ( getContext ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . dialog _ bio metric _ prompt , Ġnull ) ĊĠĠĠĠĠĠĠ Ġadd ContentView ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View , ĠViewGroup . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġfingerprint _ dialog _ layout . dialog Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġset Bio metric Prompt Compat Dialog Width () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Configuration Changed Callback () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Bio metric Prompt Compat Dialog Width () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Bio metric Prompt Compat Dialog Width () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwindow Params Ġ= Ġwindow ?. attributes ĊĠĠĠĠĠĠĠ Ġwindow Params ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . width Ġ= ĠMath . min ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. window Manager ?. default Display ?. width Ġ?: Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. window Manager ?. default Display ?. height Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . width Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. attributes Ġ= Ġwindow Params ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Title (): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtv _ title ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Subtitle (): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtv _ subtitle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetDescription (): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtv _ description ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetStatus (): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtv _ status ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Negative Button (): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtv _ negative ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Fingerprint Icon (): ĠF ingerprint Icon View Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġiv _ fingerprint _ icon ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun ĠsetState ( state : ĠInt , Ġhelp String : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTATE _ NORMAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ status . text Ġ= Ġcontext . getString ( R . string . text _ bio metric _ description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTATE _ FAILED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( help String )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ status . text Ġ= Ġhelp String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTATE _ ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( help String )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ status . text Ġ= Ġhelp String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTATE _ SU CCE ED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠSTATE _ NORMAL Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠSTATE _ FAILED Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠSTATE _ ERROR Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠSTATE _ SU CCE ED Ġ= Ġ 4 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġfind Theme Res Id ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġta Ġ= Ġcontext . obtain Styled Attributes ( int ArrayOf ( R . attr . bio metric Prompt Dialog Theme )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Id Ġ= Ġta . getResource Id ( 0 , ĠR . style . Theme _ Bio metric Prompt Dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġta . recycle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġres Id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }