package Ġio . homeassistant . comp anion . android . n fc Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . n fc . N def Message Ċ import Ġandroid . n fc . N fc Adapter Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġio . homeassistant . comp anion . android . Base Activity Ċ import Ġio . homeassistant . comp anion . android . R Ċ import Ġio . homeassistant . comp anion . android . common . data . integration . Integration Repository Ċ import Ġio . homeassistant . comp anion . android . util . Url Handler Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . cancel Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ import Ġio . homeassistant . comp anion . android . common . R Ġas Ġcommon R Ċ Ċ @ Android EntryPoint Ċ class ĠTag Reader Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġval ĠTAG Ġ= ĠTag Reader Activity :: class . simple Name ĊĊĠĠĠ Ġprivate Ġval Ġmain Scope : ĠCor outine Scope Ġ= ĠCor outine Scope ( Dispatch ers . Main Ġ+ ĠJob ()) ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġintegration UseCase : ĠIntegration Repository ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ tag _ reader ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( findViewById ( R . id . toolbar )) ĊĊĠĠĠĠĠĠĠ Ġmain Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( N fc Adapter . ACTION _ N DEF _ DIS COVER ED Ġ== Ġintent . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġraw Messages Ġ= Ġintent . get Parcelable Array Extra ( N fc Adapter . EXTRA _ N DEF _ MESSAGES ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn def Message Ġ= Ġraw Messages ?. get ( 0 ) Ġas ĠN def Message ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġn def Message ?. records ?. get ( 0 )?. to Uri (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Tag ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġcommon R . string . n fc _ processing _ tag _ error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Tag Reader Activity , Ġmessage , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Unable Ġto Ġhandle Ġurl Ġ( n fc ): Ġ$ url ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Intent . ACTION _ VIEW Ġ== Ġintent . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl : ĠString Ġ= Ġintent ?. data . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Tag ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġcommon R . string . qrcode _ processing _ tag _ error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Tag Reader Activity , Ġmessage , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Unable Ġto Ġhandle Ġurl Ġ( qrcode ): Ġ$ url ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Scope . cancel () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġhandle Tag ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// www . home - assistant . io / tag / 5 f 0 ba 7 3 3 - 1 7 2 f - 4 3 0 d - a 7 f 8 - e 4 ad 9 4 0 c 8 8 d 7 ĊĊĠĠĠĠĠĠĠ Ġval Ġn fc Tag Id Ġ= ĠUrl Handler . split N fc Tag Id ( url ) ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" n fc Tag Id : Ġ$ n fc Tag Id ") ĊĠĠĠĠĠĠĠ Ġif Ġ( n fc Tag Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintegration UseCase . scan Tag ( hash Map Of (" tag _ id " Ġto Ġn fc Tag Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Tag Ġscanned Ġto ĠHA Ġsuccessfully ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġcommon R . string . n fc _ processing _ tag _ error , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ } Ċ