package Ġorg . simple . clin ic . protocol Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġio . reactivex . rx kotlin . with Latest From Ċ import Ġio . reactivex . schedul ers . Schedulers . io Ċ import Ġorg . simple . clin ic . protocol . sync . Protocol Sync Ċ import Ġorg . simple . clin ic . user . User Ċ import Ġorg . simple . clin ic . user . User Session Ċ import Ġorg . simple . clin ic . util . Just Ċ import Ġjavax . inject . Inject Ċ Ċ @ Suppress Lint (" Check Result ") Ċ class ĠSync Protocols On Login Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġuser Session : ĠUser Session , ĊĠĠĠ Ġprivate Ġval Ġprotocol Sync : ĠProtocol Sync , ĊĠĠĠ Ġprivate Ġval Ġprotocol Repository : ĠProtocol Repository Ċ ) Ġ{ ĊĊĠ Ġfun Ġlisten () Ġ{ ĊĠĠĠ Ġuser Session . logged In User () ĊĠĠĠĠĠĠĠ Ġ. with Latest From ( protocol Repository . record Count ()) ĊĠĠĠĠĠĠĠ Ġ. subscribe On ( io ()) ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ( user , Ġdrug Count ) Ġ-> Ġuser . isNotEmpty () Ġ&& Ġdrug Count Ġ== Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġ. flatMap Comp letable Ġ{ Ġprotocol Sync . sync () Ġ} ĊĠĠĠĠĠĠĠ Ġ. onError Complete () ĊĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠ Ġ} Ċ } Ċ