package Ġcom . e ag les ak ura . fire arm . property Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . net . Uri Ċ Ċ /** Ċ Ġ* ĠDelegate Ġfor Ġcontent Ġprovider Ġfor ĠContent Provider Ġproperties .. Ċ Ġ* ĠShould Ġcall Ġinstance Ġmethods Ġfrom ĠContent Provider 's Ġ" query ()" Ġand Ġ" insert ()" Ġmethods . Ċ Ġ* Ċ Ġ* ĠContent ĠProvider Ġexample . Ċ Ġ* Ġ< provider Ġandroid : author ities ="${ application Id }. internal . properties . provider " Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġandroid : name =" replace . your . content . Provider " Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġandroid : exported =" false "/> Ċ Ġ*/ Ċ class ĠProperties Provider Delegate ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġhandler : ĠUri Handler ) Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" unused ", Ġ" UNUSED _ PARAMETER ") ĊĠĠĠ Ġfun Ġquery ( ĊĠĠĠĠĠĠĠ Ġuri : ĠUri , ĊĠĠĠĠĠĠĠ Ġprojection : ĠArray < String > ?, ĊĠĠĠĠĠĠĠ Ġselection : ĠString ?, ĊĠĠĠĠĠĠĠ Ġselection Args : ĠArray < String > ?, ĊĠĠĠĠĠĠĠ Ġsort Order : ĠString ? ĊĠĠĠ Ġ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġhandler . query ( uri , Ġselection !! , Ġselection Args !! ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( buffer Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByteArray Cursor ( buffer ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByteArray Cursor ( ByteArray ( 0 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ", Ġ" UNUSED _ PARAMETER ") ĊĠĠĠ Ġfun Ġinsert ( uri : ĠUri , Ġcontent Values : ĠContent Values ?): ĠUri Ġ{ ĊĠĠĠĠĠĠĠ Ġhandler . insert ( uri , Ġcontent Values !!. get AsString ( CONTENT _ KEY _ COMMAND ), Ġcontent Values ) ĊĠĠĠĠĠĠĠ Ġreturn Ġuri ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCONTENT _ KEY _ COMMAND Ġ= Ġ" com . e ag les ak ura . prop . COMMAND " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¯¾ å¿ľ ãģĹãģŁ Content Provider ãģ¨ æİ¥ç¶ļ ãģĹ ãĢģ byte éħį åĪĹ ãĤĴ å¾Ĺ ãĤĭ ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġuri Ġtarget ĠURI ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcommand Ġ å®Łè¡Į ãĤ³ãĥŀãĥ³ãĥī ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġarg ments Ġ å®Łè¡Į å¼ķ æķ° ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" New Api ") ĊĠĠĠĠĠĠĠ Ġfun Ġquery ( context : ĠContext , Ġuri : ĠUri , Ġcommand : ĠString , Ġarg ments : ĠArray < String >? ): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . content Resolver . query ( uri , Ġnull , Ġcommand , Ġarg ments , Ġnull ). use Ġ{ Ġcursor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( cursor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠByteArray Cursor . toByteArray ( cursor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¯¾ å¿ľ ãģĹãģŁ Content Provider ãģ« åĳ½ä»¤ ãĤĴ éĢģ ãĤĭ ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġuri Ġtarget ĠURI ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcommand Ġ å®Łè¡Į ãĤ³ãĥŀãĥ³ãĥī ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġvalues Ġ å®Łè¡Į å¼ķ æķ° ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġinsert ( context : ĠContext , Ġuri : ĠUri , Ġcommand : ĠString , Ġvalues : ĠContent Values ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġput Values Ġ= Ġvalues ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( put Values Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Values . put ( CONTENT _ KEY _ COMMAND , Ġcommand ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . content Resolver . insert ( uri , Ġput Values ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ