package Ġcom . en ec uum . wl . v vm . scanner Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . ab lan co . image provider . Image Provider Ċ import Ġcom . ab lan co . image provider . Image Source Ċ import Ġcom . en ec uum . wl . R Ċ import Ġcom . en ec uum . wl . v vm . send _ receive . tabs . send . Send Fragment . Companion . SCAN _ RESULT _ EXTRA Ċ import Ġcom . google . zx ing . Binary Bitmap Ċ import Ġcom . google . zx ing . Multi Format Reader Ċ import Ġcom . google . zx ing . RGB L uminance Source Ċ import Ġcom . google . zx ing . Result Ċ import Ġcom . google . zx ing . common . Hybrid Bin ar izer Ċ import Ġkotlinx . android . synt hetic . main . activity _ scanner .* Ċ import Ġme . dm 7 . barcode scanner . zx ing . ZX ing Scanner View Ċ Ċ class ĠSimple Scanner Activity Ġ: ĠAppCompatActivity (), ĠZX ing Scanner View . Result Handler Ġ{ ĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( state : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( state ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ scanner ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġv Scanner . set Result Handler ( this ) ĊĠĠĠĠĠĠĠ Ġv Scanner . start Camera () ĊĊĠĠĠĠĠĠĠ Ġbtn Back . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn Gallery . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Provider ( this ). getImage ( Image Source . G ALL ERY ) Ġ{ Ġbitmap Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecode From Gallery ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġv Scanner . stop Camera () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Result ( raw Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġv Scanner . resume Camera Preview ( this ) ĊĠĠĠĠĠĠĠ Ġset Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity . RESULT _ OK , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent (). apply Ġ{ Ġput Extra ( SCAN _ RESULT _ EXTRA , Ġraw Result . text . toString ()) Ġ}) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdecode From Gallery ( generated QR Code : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġgenerated QR Code . width ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġgenerated QR Code . height ĊĠĠĠĠĠĠĠ Ġval Ġpixels Ġ= ĠInt Array ( width Ġ* Ġheight ) ĊĠĠĠĠĠĠĠ Ġgenerated QR Code . get Pixels ( pixels , Ġ 0 , Ġwidth , Ġ 0 , Ġ 0 , Ġwidth , Ġheight ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĠRGB L uminance Source ( width , Ġheight , Ġpixels ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbinary Bitmap Ġ= ĠBinary Bitmap ( Hybrid Bin ar izer ( source )) ĊĊĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠMulti Format Reader () ĊĠĠĠĠĠĠĠ Ġvar Ġresult : ĠResult ? ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġreader . decode ( binary Bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity . RESULT _ OK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent (). apply Ġ{ Ġput Extra ( SCAN _ RESULT _ EXTRA , Ġresult !!. text ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġresources . getString ( R . string . error ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ