package Ġeu . pret ix . pret ix print . byte protocols Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . hardware . usb . Usb Device Ċ import Ġandroid . hardware . usb . Usb Manager Ċ import Ġandroid . os . Looper Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . ze bra . sdk . comm . Bluetooth Connection In secure Ċ import Ġcom . ze bra . sdk . comm . Connection Ċ import Ġcom . ze bra . sdk . comm . Tcp Connection Ċ import Ġcom . ze bra . sdk . comm . Usb Connection Ċ import Ġcom . ze bra . sdk . common . card . containers . Graphics Info Ċ import Ġcom . ze bra . sdk . common . card . enum er ations .* Ċ import Ġcom . ze bra . sdk . common . card . graphics . Ze bra Card Graphics Ċ import Ġcom . ze bra . sdk . common . card . graphics . Ze bra Card Image I Ċ import Ġcom . ze bra . sdk . common . card . graphics . Ze bra Graphics Ċ import Ġcom . ze bra . sdk . common . card . graphics . enum er ations . Rotation Type Ċ import Ġcom . ze bra . sdk . common . card . job Settings . Ze bra Card Job Setting Names Ċ import Ġcom . ze bra . sdk . common . card . printer . Ze bra Card Printer Ċ import Ġcom . ze bra . sdk . common . card . printer . Ze bra Card Printer Factory Ċ import Ġeu . pret ix . pret ix print . R Ċ import Ġeu . pret ix . pret ix print . ui . Link OSC ard Settings Fragment Ċ import Ġeu . pret ix . pret ix print . ui . Setup Fragment Ċ import Ġjava 8 . util . concurrent . Comp letableFuture Ċ import Ġorg . jetbrains . ank o . default SharedPreferences Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . IOException ĊĊ Ċ class ĠLink OSC ard Ġ: ĠCustom Byte Protocol < Bitmap > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġidentifier Ġ= Ġ" Link OSC ard " ĊĠĠĠ Ġoverride Ġfun Ġallowed For Use case ( type : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtype Ġ!= Ġ" receipt " ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġval Ġdefault DPI Ġ= Ġ 3 0 0 ĊĠĠĠ Ġoverride Ġval Ġdem op age Ġ= Ġ" CR 8 0 . pdf " ĊĊĠĠĠ Ġoverride Ġval Ġname Resource Ġ= ĠR . string . protocol _ link os card ĊĊĠĠĠ Ġoverride Ġfun Ġconvert Page ToBytes ( img : ĠBitmap , Ġis Last Page : ĠBoolean , Ġprevious Page : ĠBitmap ?, Ġconf : ĠMap < String , ĠString >, Ġtype : ĠString ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo stream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġimg . compress ( Bitmap . Compress Format . PNG , Ġ 0 , Ġo stream ) ĊĠĠĠĠĠĠĠ Ġreturn Ġo stream . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend USB ( usb Manager : ĠU sb Manager , Ġusb Device : ĠU sb Device , Ġpages : ĠList < Comp letableFuture < ByteArray >>, Ġconf : ĠMap < String , ĠString >, Ġtype : ĠString , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= ĠU sb Connection ( usb Manager , Ġusb Device ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . open () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( pages , Ġconnection , Ġconf , Ġtype , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Network ( host : ĠString , Ġport : ĠInt , Ġpages : ĠList < Comp letableFuture < ByteArray >>, Ġconf : ĠMap < String , ĠString >, Ġtype : ĠString , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= ĠTcp Connection ( host , Ġport ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . open () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( pages , Ġconnection , Ġconf , Ġtype , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Bluetooth ( device Address : ĠString , Ġpages : ĠList < Comp letableFuture < ByteArray >>, Ġconf : ĠMap < String , ĠString >, Ġtype : ĠString , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= ĠBluetooth Connection In secure ( device Address ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . open () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( pages , Ġconnection , Ġconf , Ġtype , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend ( pages : ĠList < Comp letableFuture < ByteArray >>, Ġconnection : ĠConnection , Ġconf : ĠMap < String , ĠString >, Ġtype : ĠString , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget Setting ( key : ĠString , Ġdef : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconf [ key ] Ġ?: Ġcontext . default SharedPreferences . getString ( key , Ġdef ) !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠTo Do : ĠMake Ġthe Ġprinter Ġconnection Ġblocking , Ġdisplaying Ġan Ġerror Ġmessage Ġif Ġappropriate . ĊĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL ooper . prepare () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġze bra Card Printer : ĠZe bra Card Printer ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdouble Side d Ġ= Ġget Setting (" hardware _${ type } printer _ double side d ", Ġ" false "). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard Source Ġ= Ġget Setting (" hardware _${ type } printer _ card source ", Ġ" Auto Detect ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard Destination Ġ= Ġget Setting (" hardware _${ type } printer _ card destination ", Ġ" E ject ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġze bra Card Printer Ġ= ĠZe bra Card Printer Factory . getInstance ( connection ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdouble Side d Ġ= Ġ( ze bra Card Printer . print Capability Ġ== ĠTransfer Type . Dual Side d Ġ&& Ġdouble Side d ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( f Ġin Ġpages ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġze bra Card Printer . set Job Setting ( Ze bra Card Job Setting Names . CARD _ SOURCE , Ġcard Source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġze bra Card Printer . set Job Setting ( Ze bra Card Job Setting Names . CARD _ DEST INATION , Ġcard Destination ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgraphics Data Ġ= Ġdraw Graphics ( ze bra Card Printer , Ġf . get (), Ġdouble Side d , Ġcontext ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġze bra Card Printer . print ( 1 , Ġgraphics Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 2 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPrint Error ( e . message Ġ?: Ġe . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġze bra Card Printer ?. destroy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Graphics ( ze bra Card Printer : ĠZe bra Card Printer , Ġimage Data : ĠByteArray , Ġdouble Side d : ĠBoolean , Ġcontext : ĠContext ) Ġ: ĠList < Graphics Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgraphics Data Ġ= ĠArrayList < Graphics Info >() ĊĠĠĠĠĠĠĠ Ġvar Ġgraphics : ĠZe bra Graphics ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgraphics Ġ= ĠZe bra Card Graphics ( ze bra Card Printer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFront ĠSide ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġze bra Card Image Ġ= Ġdraw Image ( graphics , ĠPrint Type . Color , Ġimage Data , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgraphics Data . add ( add Image ( Card Side . Front , ĠPrint Type . Color , Ġ 0 , Ġ 0 , Ġ- 1 , Ġze bra Card Image )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFront ĠSide ĠOverlay ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgraphics Data . add ( add Image ( Card Side . Front , ĠPrint Type . Overlay , Ġ 0 , Ġ 0 , Ġ 1 , Ġnull )); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( double Side d ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBack ĠSide ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġwe Ġare Ġintro ducing Ġnative Ġdouble - side d Ġcards , Ġwe Ġwould Ġload Ġa Ġnew Ġpage Ġhere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraphics Data . add ( add Image ( Card Side . Back , ĠPrint Type . Color , Ġ 0 , Ġ 0 , Ġ- 1 , Ġze bra Card Image )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBack ĠSide ĠOverlay ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraphics Data . add ( add Image ( Card Side . Back , ĠPrint Type . Overlay , Ġ 0 , Ġ 0 , Ġ 1 , Ġnull )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġwe Ġare Ġintro ducing Ġnative Ġdouble - side d Ġcards , Ġthis Ġneeds Ġto Ġbe Ġplaced Ġafter Ġthe Ġfront Ġside ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgraphics . clear () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgraphics ?. close () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġgraphics Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Image ( graphics : ĠZe bra Graphics , Ġprint Type : ĠPrint Type , Ġimage Data : ĠByteArray , Ġx Offset : ĠInt , Ġy Offset : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt , Ġcontext : ĠContext ) Ġ: ĠZe bra Card Image I Ġ{ ĊĠĠĠĠĠĠĠ Ġgraphics . initialize ( context , Ġ 0 , Ġ 0 , ĠOrientation Type . Land scape , Ġprint Type , ĠColor . WHITE ) ĊĠĠĠĠĠĠĠ Ġgraphics . drawImage ( image Data , Ġx Offset , Ġy Offset , Ġwidth , Ġheight , ĠRotation Type . Rotate None Flip None ) ĊĠĠĠĠĠĠĠ Ġreturn Ġgraphics . create Image () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Image ( side : ĠCard Side , Ġprint Type : ĠPrint Type , Ġx Offset : ĠInt , Ġy Offset : ĠInt , Ġfill Color : ĠInt , Ġze bra Card Image : ĠZe bra Card Image I ?) Ġ: ĠGraphics Info Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgraphics Info Ġ= ĠGraphics Info () ĊĠĠĠĠĠĠĠ Ġgraphics Info . fill Color Ġ= Ġfill Color ĊĠĠĠĠĠĠĠ Ġgraphics Info . graphic Data Ġ= Ġze bra Card Image ĊĠĠĠĠĠĠĠ Ġgraphics Info . graphic Type Ġ= Ġif Ġ( ze bra Card Image Ġ!= Ġnull ) ĠGraph ic Type . B MP Ġelse ĠGraph ic Type . NA ĊĠĠĠĠĠĠĠ Ġgraphics Info . opacity Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġgraphics Info . over print Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġgraphics Info . print Type Ġ= Ġprint Type ĊĠĠĠĠĠĠĠ Ġgraphics Info . side Ġ= Ġside ĊĠĠĠĠĠĠĠ Ġgraphics Info . x Offset Ġ= Ġx Offset ĊĠĠĠĠĠĠĠ Ġgraphics Info . y Offset Ġ= Ġy Offset ĊĠĠĠĠĠĠĠ Ġreturn Ġgraphics Info ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Settings Fragment (): ĠSetup Fragment ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLink OSC ard Settings Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinput Class (): ĠClass < Bitmap > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBitmap :: class . java ĊĠĠĠ Ġ} Ċ } Ċ