package Ġgithub . t orn aco . practice . h oney comb . locker . ui . verify Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . compose . animation . Animated Visibility Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . animation . core . Cubic Bezier E asing Ċ import Ġandroidx . compose . animation . core . t ween Ċ import Ġandroidx . compose . animation . slide In Vert ically Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġco il . bitmap . Bitmap Pool Ċ import Ġco il . compose . remember Image Painter Ċ import Ġco il . decode . DataSource Ċ import Ġco il . decode . Options Ċ import Ġco il . fetch . Drawable Result Ċ import Ġco il . fetch . Fetch Result Ċ import Ġco il . fetch . Fetcher Ċ import Ġco il . size . Size Ċ import Ġcom . el vis he w . x log . X Log Ċ import Ġcom . google . ac comp an ist . appcompat theme . AppCompatTheme Ċ import Ġgithub . t orn aco . android . than os . core . T Ċ import Ġgithub . t orn aco . android . than os . core . app . Than os Manager Ċ import Ġgithub . t orn aco . android . than os . core . app . activity . Verify Result Ċ import Ġgithub . t orn aco . android . than os . core . pm . App Info Ċ import Ġgithub . t orn aco . android . than os . theme . Theme Activity Ċ import Ġgithub . t orn aco . android . than os . util . App Icon Loader Util . load App Icon Drawable With Icon Pack Ċ Ċ class ĠVerify Activity Ġ: ĠTheme Activity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġrequest Code Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġapp Info : ĠApp Info ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( resolve Intent ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Verify Content () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Verify With Bio metrics ( app Info !! ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . e (" Verify Activity , Ġbad Ġintent .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresolve Intent (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpkg Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. getString Extra ( T . Actions . ACTION _ LOCK ER _ VERIFY _ EXTRA _ PACKAGE ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġrequest Code Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . getInt Extra ( T . Actions . ACTION _ LOCK ER _ VERIFY _ EXTRA _ REQUEST _ CODE , ĠInt . MIN _ VALUE ) ĊĠĠĠĠĠĠĠ Ġapp Info Ġ= ĠTh an os Manager . from ( this ). pkg Manager . getApp Info ( pkg ) ĊĠĠĠĠĠĠĠ Ġif Ġ( app Info Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Opt In ( Experimental Animation Api :: class ) ĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠApp Verify Content () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvisible Ġby Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠSurface ( modifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . background ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnimated Visibility ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisible Ġ= Ġvisible , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenter Ġ= Ġslide In Vert ically ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Offset Y Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- it ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Spec Ġ= Ġt ween ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Millis Ġ= Ġ 4 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeasing Ġ= ĠC ubic Bezier E asing ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 1 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBox Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . fill MaxSize (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Top , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height ( fraction Ġ= Ġ 0 . 3 f )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Icon ( modifier Ġ= ĠModifier . size ( 7 2 . dp ), Ġapp Info !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLa unched Effect ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Opt In ( Experimental Co il Api :: class ) ĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠApp Icon ( modifier : ĠModifier , Ġapp Info : ĠApp Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠLocal Context . current ĊĠĠĠĠĠĠĠ Ġ// ĠAdvanced ĊĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġremember Image Painter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġapp Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch er ( object Ġ: ĠFetch er < App Info > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpool : ĠBitmap Pool , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠApp Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize : ĠSize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions : ĠOptions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠFetch Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDrawable Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Ġ= Ġload App Icon Drawable With Icon Pack ( context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Info . pkg Name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sample d Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Ġ= ĠDataSource . MEMORY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġkey ( data : ĠApp Info ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdata . pkg Name Ġ+ Ġdata . version Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandles ( data : ĠApp Info ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġapp Info . app Label ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Verify With Bio metrics ( app Info : ĠApp Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthan ox Ġ= ĠTh an os Manager . from ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Bio metric Ready ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthan ox . activity Stack Supervisor . set Verify Result ( request Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . ALLOW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . REASON _ USER _ KEY _ NOT _ SET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDisable Ġapp Ġlock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthan ox . activity Stack Supervisor . is App Lock Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġauthenticate With Bio metric ( app Info ) Ġ{ Ġsuccess : ĠBoolean , Ġmessage : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . i (" authenticate With Bio metric Ġresult : Ġ$ success Ġ$ message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthan ox . activity Stack Supervisor . set Verify Result ( request Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . ALLOW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . REASON _ USER _ INPUT _ CORRECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthan ox . activity Stack Supervisor . set Verify Result ( request Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . IGNORE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . REASON _ USER _ INPUT _ IN CORRECT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ ĠTh an os Manager . from ( this ). activity Stack Supervisor . set Verify Result ( request Code , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . IGNORE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVerify Result . REASON _ USER _ CANCEL ) ĊĠĠĠ Ġ} Ċ } Ċ