package Ġcom . smart ton i . sync Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . smart ton i . database . Dao Adapter Ċ import Ġcom . smart ton i . database . Green Dao Adapter Ċ import Ġcom . smart ton i . entities . Printer Ċ import Ġcom . smart ton i . pos . interceptor . TCP Interceptor Ċ import Ġcom . smart ton i . http . HttpClient Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response ĊĊ Ċ class ĠPrinter Config Sync Adapter Ġ: ĠAbstract Sync Adapter Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Sync ( context : ĠContext , Ġdao Adapter : ĠDao Adapter , Ġrestaurant Id : ĠString , Ġsuccess Listener : ĠAbstract Sync Adapter . Sync Success Listener , Ġfail Listener : ĠAbstract Sync Adapter . Sync Fail Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdao Adapter : ĠGreen Dao Adapter Ġ= ĠGreen Dao Adapter ( context ) ĊĠĠĠĠĠĠĠ ĠHttpClient ( context ). httpClient . get Printer Config ( restaurant Id ). enqueue ( object Ġ: ĠCallback < List < Printer >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < List < Printer >>, Ġresponse : ĠResponse < List < Printer >>) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprinter List Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( printer List Ġ!= Ġnull Ġ&& Ġprinter List . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao Adapter . delete Printer Data () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( printer Ġin Ġprinter List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( printer . uu Id Ġ== Ġnull ) Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprinter . format Ġ= Ġprinter . printer Protocol ?. format ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao Adapter . save Printer ( printer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Tcp Connection For Printer ( context , Ġprinter . port !!. toInt (), Ġprinter . ipAddress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprinter s Ġ= Ġdao Adapter . printer Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( printer Ġin Ġprinter s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Tcp Connection For Printer ( context , Ġprinter . port . toInt (), Ġprinter . ipAddress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( printer s . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Tcp Connection For Printer ( context , Ġ 0 , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Tcp Connection For Printer ( context , Ġ 0 , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Listener . on Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < List < Printer >>, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail Listener . on Fail () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Tcp Connection For Printer ( context : ĠContext , Ġport : ĠInt , Ġprinter Ip : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠThread ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtcp interceptor Ġ= ĠTCP Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtcp interceptor . start ( context , Ġprinter Ip , Ġport ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġt . start () ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ