package Ġorg . sof te g . sl art us . for pd ap lus . repositories Ċ Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġio . reactivex . subjects . Behavior Subject Ċ import Ġorg . sof te g . sl art us . for pd ap lus . App Ċ import Ġorg . sof te g . sl art us . for pd ap lus . R Ċ import Ġru . sl art us . http . Http Ċ Ċ class ĠUserInfo Repository Ġprivate Ġconstructor () Ġ{ ĊĠĠĠ Ġprivate Ġobject ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠINSTANCE Ġ= ĠUserInfo Repository () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" UserInfo Repository " ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġby Ġlazy Ġ{ ĠH older . INSTANCE Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠApp . getInstance (). addTo Disposable ( Http . instance . cookie Store ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. member Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġmember Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . value ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . id Ġ= Ġif Ġ( member Id Ġ== Ġ" deleted ") Ġ"" Ġelse Ġmember Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . id . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . log ined Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . onNext ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠuserInfo : ĠBehavior Subject < UserInfo > Ġ= ĠBehavior Subject . create Default ( UserInfo ()) ĊĊĊĠĠĠ Ġfun Ġset Ment ions Count ( value : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( userInfo . hasValue () Ġ&& ĠuserInfo . value ?. mentions Count Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . value ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . mentions Count Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . onNext ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Q ms Count () Ġ= ĠuserInfo . value ?. q ms Count Ġ?: Ġ 0 ĊĠĠĠ Ġfun Ġset Q ms Count ( value : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( userInfo . hasValue () Ġ&& ĠuserInfo . value ?. q ms Count Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . value ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . q ms Count Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . onNext ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Log ined () Ġ= ĠuserInfo . value ?. log ined Ġ?: Ġfalse ĊĊĠĠĠ Ġfun ĠgetId () Ġ= ĠuserInfo . value ?. id Ġ?: Ġ"" ĊĊĠĠĠ Ġfun ĠgetName () Ġ= ĠuserInfo . value ?. name Ġ?: Ġ"" ĊĊĠĠĠ Ġfun ĠsetName ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( userInfo . hasValue () Ġ&& ĠuserInfo . value ?. name Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . value ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . onNext ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ ĠuserInfo . value ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo . onNext ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠÐĺ Ð½ ÑĦÐ¾ÑĢÐ¼ Ð°ÑĨÐ¸Ñı ĠÐ¾ ĠÑĤÐµÐº ÑĥÑī ÐµÐ¼ ĠÐ¿Ð¾Ð»ÑĮÐ·Ð¾Ð²Ð°ÑĤ ÐµÐ» Ðµ Ċ Ġ*/ Ċ class ĠUserInfo Ġ{ ĊĠĠĠ Ġvar Ġid Ġ= Ġ"" ĊĠĠĠ Ġvar Ġname Ġ= ĠApp . getInstance (). getString ( R . string . guest ) ĊĠĠĠ Ġvar Ġmentions Count : ĠInt ? Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġmentions Count OrDefault ( defaultValue : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmentions Count Ġ?: ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġq ms Count : ĠInt ? Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġq ms Count OrDefault ( defaultValue : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġq ms Count Ġ?: ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlog ined Ġ= Ġfalse ĊĊĠĠĠ Ġvar Ġre putation Ġ= Ġ"" ĊĊĠĠĠ Ġvar Ġavatar Url Ġ= Ġ"" ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog ined Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġname Ġ= ĠApp . getInstance (). getString ( R . string . guest ) ĊĠĠĠĠĠĠĠ Ġmentions Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġq ms Count Ġ= Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ