/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠFl orian ĠSch uster . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġat . fl or ians ch uster . watch ables . ui . scan . qr Ċ Ċ import Ġandroidx . annotation . Check Result Ċ import Ġcom . google . zx ing . Result Point Ċ import Ġcom . jo urney apps . barcode scanner . Barcode Callback Ċ import Ġcom . jo urney apps . barcode scanner . Barcode Result Ċ import Ġcom . jo urney apps . barcode scanner . Barcode View Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . android . MainThread Disposable Ċ Ċ enum Ġclass ĠBar Code Scan Type Ġ{ ĊĠĠĠ ĠS INGLE , ĠCONT IN UO US Ċ } Ċ Ċ @ Check Result Ċ fun ĠBar code View . decode (): ĠObservable < Barcode Result > Ġ{ ĊĠĠĠ Ġreturn ĠBar code View Decode Observable ( this , ĠBar Code Scan Type . CONT IN UO US ) Ċ } Ċ Ċ internal Ġclass ĠBar code View Decode Observable ( ĊĠĠĠ Ġprivate Ġval Ġview : ĠBar code View , ĊĠĠĠ Ġprivate Ġval Ġtype : ĠBar Code Scan Type Ċ ) Ġ: ĠObservable < Barcode Result >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsubscribe Actual ( observer : ĠObserver < in ĠBar code Result >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠListener ( view , Ġtype , Ġobserver ) ĊĠĠĠĠĠĠĠ Ġobserver . on Subscribe ( listener ) ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠBar Code Scan Type . CONT IN UO US ) Ġview . decode Continuous ( listener . callback ) ĊĠĠĠĠĠĠĠ Ġelse Ġview . decode Single ( listener . callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠListener ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġview : ĠBar code View , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtype : ĠBar Code Scan Type , ĊĠĠĠĠĠĠĠ Ġobserver : ĠObserver < in ĠBar code Result > ĊĠĠĠ Ġ) Ġ: ĠMain Thread Disposable () Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġcallback : ĠBar code Callback ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback Ġ= Ġobject Ġ: ĠBar code Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbarcode Result ( result : ĠBar code Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobserver . onNext ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠBar Code Scan Type . SINGLE ) Ġobserver . onComplete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġpossible Result Points ( result Points : ĠMutable List < Result Point > ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dispose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . stop De coding () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ