package Ġcom . ap pt re es o ftware . barcode scan Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Method Channel . MethodCall Handler Ċ import Ġio . flutter . plugin . common . Method Channel . Result Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Plugin Registry Ċ import Ġio . flutter . plugin . common . Plugin Registry . Registrar Ċ Ċ class ĠBar code Scan Plugin ( private Ġval Ġregist rar : ĠRegist rar ): ĠMethod Call Handler , ĊĠĠĠĠĠĠĠ ĠPlugin Registry . Activity Result Listener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġresult Ġ: ĠResult ? Ġ= Ġnull ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġregister With ( regist rar : ĠRegist rar ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠMethod Channel ( regist rar . messenger (), Ġ" com . ap pt re es o ftware . barcode _ scan ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( regist rar . activity () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplugin Ġ= ĠBar code Scan Plugin ( regist rar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregist rar . add Activity Result Listener ( plugin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}} ĊĊĠĠĠ Ġoverride Ġfun Ġon MethodCall ( call : ĠMethod Call , Ġresult : ĠResult ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( call . method Ġ== Ġ" scan ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . result Ġ= Ġresult ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformats Ġ= Ġcall . argument < String >(" formats ") ?. toUpperCase () Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= Ġif ( call . has Argument (" orientation ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . argument < String >(" orientation ") ?. toUpperCase () Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" LAND SC APE " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Offset Ratio Ġ= Ġif ( call . has Argument (" view _ width _ offset _ ratio ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . argument < Double >(" view _ width _ offset _ ratio ") Ġ?: Ġ 0 . 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Offset Ratio Ġ= Ġif ( call . has Argument (" view _ height _ offset _ ratio ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . argument < Double >(" view _ height _ offset _ ratio ") Ġ?: Ġ 0 . 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Barcode View ( formats , Ġorientation , Ġwidth Offset Ratio , Ġheight Offset Ratio ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . not Implemented () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Barcode View ( formats : ĠString , Ġorientation : ĠString , Ġwidth Offset Ratio : ĠDouble , Ġheight Offset Ratio : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( regist rar . activity (), ĠBar code Scanner Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" formats ", Ġformats ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" orientation ", Ġorientation ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" height _ offset _ ratio ", Ġheight Offset Ratio ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" width _ offset _ ratio ", Ġwidth Offset Ratio ) ĊĊĠĠĠĠĠĠĠ Ġregist rar . activity (). startActivity For Result ( intent , Ġ 1 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( code Ġ== Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbarcode Ġ= Ġdata ?. getString Extra (" SCAN _ RESULT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbarcode ?. let Ġ{ Ġthis . result ?. success ( barcode ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠerrorCode Ġ= Ġdata ?. getString Extra (" ERROR _ CODE ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . result ?. error ( errorCode , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ