package Ġorg . jav am aster . fragment learning . test Provider Ċ Ċ import Ġandroid . content . Content Provider Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Uri Matcher Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . net . Uri Ċ import Ġorg . jav am aster . fragment learning . data . entity . Book Ċ import Ġorg . lite pal . Lite Pal ĊĊ Ċ class ĠMy Content Provider Ġ: ĠContent Provider () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAUTH ORITY Ġ= Ġ" org . jav am aster . fragment learning . provider " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTABLE 1 _ DIR Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTABLE 1 _ ITEM Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġvar Ġuri Matcher Ġ= ĠUri Matcher ( Uri Matcher . NO _ MATCH ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæŁ¥è¯¢ æīĢæľī æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd URI ( AUTH ORITY , Ġ" book ", ĠTABLE 1 _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæŁ¥è¯¢ åįķ æĿ¡ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd URI ( AUTH ORITY , Ġ" book /# ", ĠTABLE 1 _ ITEM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġdelete ( uri : ĠUri , Ġselection : ĠString ?, Ġselection Args : ĠArray < String >? ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbook Id Ġ= Ġuri . path Segments [ 1 ] ĊĠĠĠĠĠĠĠ Ġreturn ĠLite Pal . delete ( Book :: class . java , Ġbook Id . to Long ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠĠĠĠ 1 . Ġ å¿ħé¡» ä»¥ Ġv nd Ġ å¼Ģ å¤´ ãĢĤ ĊĠĠĠ Ġ// ĠĠĠĠ 2 . Ġå¦Ĥæŀľ åĨħå®¹ ĠURI Ġä»¥ è·¯å¾Ħ ç»ĵ å°¾ ï¼Į åĪĻ åĲİ æİ¥ Ġandroid . cursor . dir / ï¼Į å¦Ĥæŀľ åĨħå®¹ ĠURI Ġä»¥ Ġid Ġ ç»ĵ å°¾ ï¼Į ĊĠĠĠ Ġ// ĠĠĠ Ġ åĪĻ åĲİ æİ¥ Ġandroid . cursor . item / ãĢĤ ĊĠĠĠ Ġ// ĠĠĠĠ 3 . Ġ æľĢåĲİ æİ¥ ä¸Ĭ Ġv nd .< authority >.< path > ãĢĤ ĊĠĠĠ Ġoverride Ġfun ĠgetType ( uri : ĠUri ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( uri Matcher . match ( uri )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTABLE 1 _ DIR Ġ-> Ġ" vnd . android . cursor . dir / vnd .$ AUTH ORITY . book " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTABLE 1 _ ITEM Ġ-> Ġ" vnd . android . cursor . item / vnd .$ AUTH ORITY . book " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinsert ( uri : ĠUri , Ġvalues : ĠContent Values ?): ĠUri ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbook Ġ= ĠBook () ĊĠĠĠĠĠĠĠ Ġbook . author Ġ= Ġvalues !! [" author "] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġbook . name Ġ= Ġvalues [" name "] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġbook . pages Ġ= Ġvalues [" pages "] Ġas ĠInt ĊĠĠĠĠĠĠĠ Ġbook . price Ġ= Ġvalues [" price "] Ġas ĠDouble ĊĠĠĠĠĠĠĠ Ġbook . save () ĊĠĠĠĠĠĠĠ Ġreturn ĠUri . parse (" content :// $ AUTH ORITY / book /${ book . id }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġquery ( ĊĠĠĠĠĠĠĠ Ġuri : ĠUri , Ġprojection : ĠArray < String > ?, Ġselection : ĠString ?, ĊĠĠĠĠĠĠĠ Ġselection Args : ĠArray < String > ?, Ġsort Order : ĠString ? ĊĠĠĠ Ġ): ĠCursor ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( uri Matcher . match ( uri )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTABLE 1 _ DIR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLite Pal . findBy SQL (" select Ġ* Ġfrom Ġbook ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTABLE 1 _ ITEM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook Id Ġ= Ġuri . path Segments [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLite Pal . findBy SQL (" select Ġ* Ġfrom Ġbook Ġwhere Ġid Ġ= Ġ?", Ġbook Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( ĊĠĠĠĠĠĠĠ Ġuri : ĠUri , Ġvalues : ĠContent Values ?, Ġselection : ĠString ?, ĊĠĠĠĠĠĠĠ Ġselection Args : ĠArray < String >? ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLite Pal . get Database (). update (" book ", Ġvalues , Ġselection , Ġselection Args ) ĊĠĠĠ Ġ} Ċ } Ċ