package Ġcom . med . splash Ċ Ċ import Ġandroid . content . Content Provider Ċ import Ġandroid . content . Content U ris Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Uri Matcher Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . net . Uri ĊĊ Ċ class ĠProvider : ĠContent Provider () Ġ{ ĊĊĊĠĠĠ Ġvar ĠAUTH ORITY : String =" com . med . splash " ĊĠĠĠ Ġvar ĠBASE _ PATH : String =" user " ĊĠĠĠ Ġvar ĠCONTENT _ URI : Uri = ĠUri . parse (" content :// $ AUTH ORITY /$ BASE _ PATH ") ĊĊĠĠĠ Ġvar ĠUser : Int = 1 ĊĠ Ġ// Ġ Ġvar ĠUser _ ID : Int = 2 ĊĊĠĠĠ Ġprivate Ġval Ġuri Matcher : Uri Matcher = Uri Matcher ( Uri Matcher . NO _ MATCH ) ĊĊĠĠĠ Ġinit { ĊĠĠĠĠĠĠĠ Ġuri Matcher . add URI ( AUTH ORITY , BASE _ PATH , User ) ĊĠĠĠĠĠĠ Ġ// Ġuri Matcher . add URI ( AUTH ORITY , BASE _ PATH +" /# ", User _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdatabase : ĠSQLite Database ?= null ĊĊĊĠĠĠ Ġoverride Ġfun Ġquery ( p 0 : ĠUri ?, Ġp 1 : ĠArray < out ĠString > ?, Ġp 2 : ĠString ?, Ġp 3 : ĠArray < out ĠString > ?, Ġp 4 : ĠString ?): ĠCursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġcursor : Cursor ?= null ĊĠĠĠĠĠĠĠ Ġwhen ( uri Matcher . match ( p 0 )) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor = database !!. query ( Data Base . User Table , p 1 , p 2 , null , null , null , p 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// database . exec SQL () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ->{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcursor !!. set Notification Uri ( context . content Resolver , p 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcursor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatabase class : Data Base = ĠData Base ( context ) ĊĊĠĠĠĠĠĠĠ Ġdatabase = database class . writable Database ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( p 0 : ĠUri ?, Ġp 1 : ĠContent Values ?, Ġp 2 : ĠString ?, Ġp 3 : ĠArray < out ĠString >? ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġup d Count = 0 ĊĊĠĠĠĠĠĠĠ Ġwhen ( uri Matcher . match ( p 0 )) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġup d Count = database !!. update ( Data Base . User Table , p 1 , p 2 , p 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ->{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontext . content Resolver . notify Change ( p 0 , null ) ĊĠĠĠĠĠĠĠ Ġreturn Ġup d Count ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete ( p 0 : ĠUri ?, Ġp 1 : ĠString ?, Ġp 2 : ĠArray < out ĠString >? ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġdel Count = 0 ĊĊĠĠĠĠĠĠĠ Ġwhen ( uri Matcher . match ( p 0 )) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdel Count = database !!. delete ( Data Base . User Table , p 1 , p 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ->{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontext . content Resolver . notify Change ( p 0 , null ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdel Count ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetType ( p 0 : ĠUri ?): ĠString ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwhen ( uri Matcher . match ( p 0 )) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" vnd . android . cursor . dir /"+ BASE _ PATH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinsert ( p 0 : ĠUri ?, Ġp 1 : ĠContent Values ?): ĠUri ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġid : Long = database !!. insert ( Data Base . User Table , null , p 1 ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( id > 0 ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġ_ uri : Uri = Content U ris . with App ended Id ( CONTENT _ URI , id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . content Resolver . notify Change (_ uri , null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ_ uri ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĊ Ċ }