package Ġcom . example . android . un scr amble ĊĊ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast ĊĊ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . bio metric . Bio metric Manager . Auth entic ators .* Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġkotlinx . android . synt hetic . main . activity _ auth .* Ċ import Ġjava . util . concurrent . Executor ĊĊĊ Ċ class ĠAuth Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġexecutor : ĠExecutor ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbio metric Prompt : Ġandroidx . bio metric . Bio metric Prompt ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprompt Info : Ġandroidx . bio metric . Bio metric Prompt . Prompt Info ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ auth ) ĊĊĠĠĠĠĠĠĠ Ġexecutor Ġ= ĠContext Compat . get Main Executor ( this ) ĊĠĠĠĠĠĠĠ Ġbio metric Prompt Ġ= Ġandroidx . bio metric . Bio metric Prompt ( this @ Auth Activity , Ġexecutor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: Ġandroidx . bio metric . Bio metric Prompt . Authentication Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Authentication Error ( errorCode : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerr String : ĠCharSequence ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Authentication Error ( errorCode , Ġerr String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Authentication Ġerror : Ġ$ err String ", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Authentication Succeeded ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult : Ġandroidx . bio metric . Bio metric Prompt . Authentication Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Authentication Succeeded ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Authentication Ġsucceeded !", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent = ĠIntent ( this @ Auth Activity , MainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Authentication Failed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Authentication Failed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ" Authentication Ġfailed ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġprompt Info Ġ= Ġandroidx . bio metric . Bio metric Prompt . Prompt Info . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" Bio metric Ġlogin Ġfor Ġmy Ġapp ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Subtitle (" Log Ġin Ġusing ĠF inger Print Ġor ĠFace Id ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative ButtonText (" Cancel ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ but Auth . setOnClickListener Ġ{ ĊĠĠĠ Ġbio metric Prompt . authenticate ( prompt Info ) Ċ } ĊĊĊĊ ĊĊĠĠĠ Ġ} ĊĊ Ċ }