/** Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠC es ar ĠVal iente Ġ& ĠCore y ĠSh aw Ċ Ġ* Ċ Ġ* Ġhttps :// github . com / C es ar Val iente Ċ Ġ* Ġhttps :// github . com / co sh aw Ċ Ġ* Ċ Ġ* Ġ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 . ces ar val iente . k un id irectional . persistence . handler Ċ Ċ import Ġcom . ces ar val iente . k un id irectional . persistence . query By Local Id Ċ import Ġcom . ces ar val iente . k un id irectional . persistence . to Persistence Color Ċ import Ġcom . ces ar val iente . k un id irectional . persistence . update Ċ import Ġcom . ces ar val iente . k un id irectional . store . Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Re order Items Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Update Color Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Update Favorite Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Update Item Action Ċ import Ġio . realm . Realm Ċ Ċ object ĠUpdate Handler Ġ: ĠAction Handler < Update Action > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( action : ĠUpdate Action , Ġaction Dispatcher : Ġ( Action ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRe order Items Action Ġ-> Ġreorder Items ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Item Action Ġ-> Ġupdate Item ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Favorite Action Ġ-> Ġupdate Favorite ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Color Action Ġ-> Ġupdate Color ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreorder Items ( action : ĠRe order Items Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( action . items . isEmpty ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠRealm . getDefaultInstance () ĊĠĠĠĠĠĠĠ Ġaction . items . forEach Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanaged Item Ġ= Ġdb . query By Local Id ( item . local Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanaged Item ?. update ( db ) Ġ{ Ġposition Ġ= Ġitem . position Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Item ( action : ĠUpdate Item Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠRealm . getDefaultInstance () ĊĠĠĠĠĠĠĠ Ġval Ġmanaged Item Ġ= Ġdb . query By Local Id ( action . local Id ) ĊĠĠĠĠĠĠĠ Ġmanaged Item ?. update ( db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġaction . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color As Enum ( action . color . to Persistence Color ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Favorite ( action : ĠUpdate Favorite Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠRealm . getDefaultInstance () ĊĠĠĠĠĠĠĠ Ġval Ġmanaged Item Ġ= Ġdb . query By Local Id ( action . local Id ) ĊĠĠĠĠĠĠĠ Ġmanaged Item ?. update ( db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite Ġ= Ġaction . favorite ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Color ( action : ĠUpdate Color Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠRealm . getDefaultInstance () ĊĠĠĠĠĠĠĠ Ġval Ġmanaged Item Ġ= Ġdb . query By Local Id ( action . local Id ) ĊĠĠĠĠĠĠĠ Ġmanaged Item ?. update ( db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color As Enum ( action . color . to Persistence Color ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} Ċ }