package Ġcom . ud tt . app leg amsung . data . source . local Ċ Ċ import Ġcom . ud tt . app leg amsung . data . dao . Products Dao Ċ import Ġcom . ud tt . app leg amsung . data . entity . Product Ċ import Ġcom . ud tt . app leg amsung . data . source . Products DataSource Ċ import Ġcom . ud tt . app leg amsung . util . Async Executor Ċ Ċ /** Ċ Ġ* ĠCreated ĠBy ĠY un ĠH ye ok Ċ Ġ* Ġon Ġ 3 ìĽĶ Ġ 1 6 , Ġ 2 0 2 0 Ċ Ġ*/ Ċ Ċ class ĠProducts Local DataSource ( ĊĠĠĠ Ġprivate Ġval Ġasync Executor : ĠAsync Executor , ĊĠĠĠ Ġprivate Ġval Ġproducts Dao : ĠProducts Dao Ċ ) Ġ: ĠProducts DataSource Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Products ( categoryId : ĠString , Ġcallback : Ġ( products : ĠList < Product >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync Executor . io Thread . execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproducts Ġ= Ġproducts Dao . get Product sBy CategoryId ( categoryId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasync Executor . main Thread . execute Ġ{ Ġcallback ( products ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Products ( products : ĠList < Product >) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync Executor . io Thread . execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproducts Dao . insert Products ( products ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }