/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠN icol as ĠMal ta is Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . mal ta is n . notes . model Ċ Ċ import Ġcom . mal ta is n . notes . model . entity . Label Ċ import Ġcom . mal ta is n . notes . model . entity . Label Ref Ċ import Ġkotlinx . coroutines . Non C ancellable Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠDefault Labels Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġlabels Dao : ĠLabels Dao , Ċ ) Ġ: ĠLabels Repository Ġ{ ĊĊĠĠĠ Ġ// ĠData Ġmodification Ġmethods Ġare Ġwrapped Ġin Ġnon - c ancellable Ġcontext ĊĠĠĠ Ġ// Ġso Ġthat Ġcalling Ġthem Ġin Ġon Pause Ġfor Ġexample Ġwon 't Ġcancel Ġthe Ġtransaction Ġon Ġthe ĊĠĠĠ Ġ// Ġsubsequent Ġon Destroy Ġcall , Ġwhich Ġcancel s Ġthe Ġcoroutine Ġscope . ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinsert Label ( label : ĠLabel ) Ġ= Ġwith Context ( Non C ancellable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlabels Dao . insert ( label ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġupdate Label ( label : ĠLabel ) Ġ= Ġwith Context ( Non C ancellable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlabels Dao . update ( label ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Label ( label : ĠLabel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlabels Dao . delete ( label ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Labels ( labels : ĠList < Label >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlabels Dao . delete All ( labels ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Label ById ( id : ĠLong ) Ġ= Ġlabels Dao . getById ( id ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Label ByName ( name : ĠString ) Ġ= Ġlabels Dao . getLabel ByName ( name ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinsert Label Refs ( refs : ĠList < Label Ref >) Ġ= Ġlabels Dao . insert Refs ( refs ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Label Refs ( refs : ĠList < Label Ref >) Ġ= Ġlabels Dao . delete Refs ( refs ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Label Ids For Note ( note Id : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠ Ġlabels Dao . getLabel Ids For Note ( note Id ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcount Label Refs ( label Id : ĠLong ) Ġ= Ġlabels Dao . count Refs ( label Id ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Labels By Usage () Ġ= Ġlabels Dao . getAll By Usage () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġclear All Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġlabels Dao . clear () ĊĠĠĠ Ġ} Ċ Ċ } Ċ