package Ġcom . too bei . common . manage Ċ Ċ import Ġcom . n anch en . compress helper . Compress Helper Ċ import Ġcom . too bei . common . Top App Ċ import Ġcom . too bei . common . activity . Top Card Manager Add Ċ import Ġcom . too bei . common . entity . Bank card Reco Data Ċ import Ġcom . too bei . common . entity . Base Response Entity Ċ import Ġcom . too bei . common . entity . Id card Reco Data Ċ import Ġcom . too bei . common . event . Card Scan Event Ċ import Ġcom . too bei . common . network . Network Observer Ċ import Ġcom . too bei . common . network . Ret rofit Helper Ċ import Ġcom . too bei . common . network . http api . Card Up Reco Api Ċ import Ġcom . too bei . common . utils . Toast Util Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġokhttp 3 . RequestBody Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . xsl 7 8 1 . utils . Logger Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġyang Lin Ġon Ġ 2 0 1 8 / 1 / 7 . Ċ Ġ*/ Ċ object ĠCard Scan Helper Ġ{ ĊĠĠĠ Ġinterface ĠCall Back Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonSuccess () ĊĠĠĠĠĠĠĠ Ġfun Ġon Failed () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġscan ( file : ĠFile , Ġscan Type : ĠInt , Ġcall Back : ĠCall Back ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// åĽ¾çīĩ ä¸įèĥ½ å¤§äºİ 2 M , è¶ħè¿ĩ çļĦ è¿Ľè¡Į åİĭç¼© ĊĠĠĠĠĠĠĠ Ġvar Ġup file Ġ= Ġfile ĊĠĠĠĠĠĠĠ ĠLogger . d (" åİĭç¼© åīį ${ file . length (). toFloat () Ġ/ Ġ 1 0 2 4 Ġ/ Ġ 1 0 2 4 } M ") ĊĠĠĠĠĠĠĠ Ġif Ġ( up file . length () Ġ> Ġ 1 0 2 0 Ġ* Ġ 1 0 2 0 ) Ġ{ Ġ Ġ// å¤§äºİ 1 M çļĦ åĽ¾çīĩ è¿Ľè¡Į åİĭç¼© ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġup file Ġ= ĠCompress Helper . Builder ( Top App . getInstance (). application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Width ( 1 0 8 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Height ( 1 9 2 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Quality ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (). compress ToFile ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . d (" åİĭç¼© åĲİ ${ up file . length (). toFloat () Ġ/ Ġ 1 0 2 4 Ġ/ Ġ 1 0 2 4 } M ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ä¸Ĭä¼ł ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= ĠRequest Body . create ( MediaType . parse (" multipart / form - data "), Ġup file ) ĊĠĠĠĠĠĠĠ Ġ// åĲİåı° å®ļä¹ī çļĦ key Ġæĺ¯ " file " Ġ ä¸įèĥ½ åıĺ ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠMultip art Body . Part . create FormData (" file ", Ġup file . getName (), Ġrequest Body ); ĊĠĠĠĠĠĠĠ Ġwhen Ġ( scan Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTop Card Manager Add . TYPE _ IDENTITY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit Helper . getInstance (). no Api Ret rofit . create ( Card Up Reco Api :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. upload Id card Reco ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( object Ġ: ĠNetwork Observer < Base Response Entity < Id card Reco Data >>() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind View With Date ( response : ĠBase Response Entity < Id card Reco Data >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data . id Card . isNull Or Blank () Ġ|| Ġresponse . data . name . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Util . show Custom Toast ( response . data . error Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Failed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Card Scan Event ( response . data )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Net System Exception ( error : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Net System Exception ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Failed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTop Card Manager Add . TYPE _ BANK CARD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit Helper . getInstance (). no Api Ret rofit . create ( Card Up Reco Api :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. upload Bank card Reco ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( object Ġ: ĠNetwork Observer < Base Response Entity < Bank card Reco Data >>() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind View With Date ( response : ĠBase Response Entity < Bank card Reco Data >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data . bank Card . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Util . show Custom Toast ( response . data . error Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Failed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Card Scan Event ( null , Ġresponse . data )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Net System Exception ( error : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Net System Exception ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ?. on Failed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }