/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠMatrix . org ĠFoundation ĠC . I . C . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . matrix . android . sdk . internal . session . room . read Ċ Ċ import Ġcom . zh u inden . mon arch y . Mon arch y Ċ import Ġorg . matrix . android . sdk . internal . database . model . Room Summary Entity Ċ import Ġorg . matrix . android . sdk . internal . database . query . where Ċ import Ġorg . matrix . android . sdk . internal . di . Session Database Ċ import Ġorg . matrix . android . sdk . internal . di . UserId Ċ import Ġorg . matrix . android . sdk . internal . network . execute Request Ċ import Ġorg . matrix . android . sdk . internal . task . Task Ċ import Ġorg . matrix . android . sdk . internal . util . await Transaction Ċ import Ġorg . matrix . android . sdk . internal . network . Global Error Receiver Ċ import Ġorg . matrix . android . sdk . api . session . room . account data . Room Account DataTypes Ċ import Ġorg . matrix . android . sdk . internal . database . query . is Marked Un read Ċ import Ġorg . matrix . android . sdk . internal . session . sync . handler . room . Room Marked Un read Handler Ċ import Ġorg . matrix . android . sdk . internal . session . user . account data . Account Data API Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ internal Ġinterface ĠSet Marked Un read Task Ġ: ĠTask < Set Marked Un read Task . Params , ĠUnit > Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroom Id : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmarked Un read : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmarked Un read Content : ĠMark ed Un read Content Ġ= ĠMark ed Un read Content ( marked Un read ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ internal Ġclass ĠDefault Set Marked Un read Task Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġaccount Data Api : ĠAccount Data API , ĊĠĠĠĠĠĠĠ Ġ@ Session Database Ġprivate Ġval Ġmon arch y : ĠMon arch y , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġroom Marked Un read Handler : ĠRoom Marked Un read Handler , ĊĠĠĠĠĠĠĠ Ġ@ UserId Ġprivate Ġval ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġglobal Error Receiver : ĠGlobal Error Receiver Ċ ) Ġ: ĠSet Marked Un read Task Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecute ( params : ĠSet Marked Un read Task . Params ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . v (" Execute Ġset Ġmarked Ġunread Ġwith Ġparams : Ġ$ params ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Marked Un read ( mon arch y . realm Configuration , Ġparams . roomId ) Ġ!= Ġparams . marked Un read ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Database ( params . roomId , Ġparams . marked Un read ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Request ( global Error Receiver , Ġcan Retry Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Data Api . set Room Account Data ( userId , Ġparams . roomId , ĠRoom Account DataTypes . MARK ED _ UN READ , Ġparams . marked Un read Content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġupdate Database ( roomId : ĠString , Ġmarked Un read : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmon arch y . await Transaction Ġ{ Ġrealm Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroom Marked Un read Handler . handle ( realm , Ġroom Id , ĠMark ed Un read Content ( marked Un read )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroom Summary Ġ= ĠRoom Summary Entity . where ( realm , Ġroom Id ). findFirst () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn @ await Transaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroom Summary . marked Un read Ġ= Ġmarked Un read ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ