package Ġcom . jj h . android . content provider demo . repo Ċ Ċ import Ġandroid . content . Content Resolver Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġcom . jj h . android . content provider demo . model . Friend Ċ import Ġcom . jj h . android . content provider demo . provider . Friend Content Provider Ċ Ċ class ĠFriend Repository ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Content Provider Demo " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcontent Resolver : ĠContent Resolver ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Resolver Ġ= Ġcontext . content Resolver ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Friend ( friend : ĠFriend ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Friend Repository . add Friend ($ friend )") ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put (" id ", Ġfriend . id ) ĊĠĠĠĠĠĠĠ Ġvalues . put (" first _ name ", Ġfriend . firstName ) ĊĠĠĠĠĠĠĠ Ġvalues . put (" last _ name ", Ġfriend . lastName ) ĊĠĠĠĠĠĠĠ Ġcontent Resolver . insert ( Friend Content Provider . CONTENT _ URI , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Friend ( id : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Friend Repository . delete Friend ($ id )") ĊĠĠĠĠĠĠĠ Ġval Ġselection Ġ= Ġ" id Ġ= Ġ\"$ id \"" ĊĠĠĠĠĠĠĠ Ġval Ġrows Deleted Ġ= Ġcontent Resolver . delete ( Friend Content Provider . CONTENT _ URI , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselection , Ġnull ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrows Deleted Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind Friend ( id : ĠInt ): ĠFriend ? Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Friend Repository . find Friend ($ id )") ĊĠĠĠĠĠĠĠ Ġval Ġprojection Ġ= ĠarrayOf (" id ", Ġ" first _ name ", Ġ" last _ name ") ĊĊĠĠĠĠĠĠĠ Ġval Ġselection Ġ= Ġ" id Ġ= Ġ\"$ id \"" ĊĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġcontent Resolver . query ( Friend Content Provider . CONTENT _ URI , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprojection , Ġselection , Ġnull , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġfriend : ĠFriend ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġcursor ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . moveTo First () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Id Ġ= ĠInteger . parseInt ( this . getString ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfirstName Ġ= Ġthis . getString ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlastName Ġ= Ġthis . getString ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfriend Ġ= ĠFriend ( result Id , ĠfirstName , ĠlastName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfriend ĊĠĠĠ Ġ} Ċ Ċ }