package Ġbr . uf pe . cin . if 7 1 0 . rss . db Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġbr . uf pe . cin . if 7 1 0 . rss . RSS Files . Item RSS Ċ import Ġorg . jetbrains . ank o . db .* Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . database . sqlite . SQLite Open Helper ĊĊ Ċ class ĠSql Helper ( context : ĠContext ) Ġ: ĠSQLite Open Helper ( context , ĠDATABASE _ NAME , Ġnull , ĠDB _ VERSION ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Upgrade ( p 0 : ĠSQLite Database ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Nome Ġdo ĠB anco Ġde ĠD ados ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDATABASE _ NAME Ġ= Ġ" rss " ĊĠĠĠĠĠĠĠ Ġ// Nome Ġda Ġtabela Ġdo ĠB anco Ġa Ġser Ġus ada ĊĠĠĠĠĠĠĠ Ġval ĠDATABASE _ TABLE Ġ= Ġ" items " ĊĠĠĠĠĠĠĠ Ġ// Vers Ã£o Ġatual Ġdo Ġbanco ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDB _ VERSION Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdb : ĠSql Helper ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// Defin indo ĠSingleton ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( c : ĠContext ): ĠSql Helper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( db Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Ġ= ĠSql Helper ( c . application Context ) Ġas ĠSql Helper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdb Ġas ĠSql Helper ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Defin indo Ġconstant es Ġque Ġrepresent am Ġos Ġcampos Ġdo Ġbanco Ġde Ġdados ĊĠĠĠĠĠĠĠ Ġval ĠRO WID Ġ= ĠR ss Provider Contract ._ ID ĊĠĠĠĠĠĠĠ Ġval ĠTITLE Ġ= ĠR ss Provider Contract . TITLE ĊĠĠĠĠĠĠĠ Ġval ĠDATE Ġ= ĠR ss Provider Contract . DATE ĊĠĠĠĠĠĠĠ Ġval ĠDESCRIPTION Ġ= ĠR ss Provider Contract . DESCRIPTION ĊĠĠĠĠĠĠĠ Ġval ĠLINK Ġ= ĠR ss Provider Contract . LINK ĊĠĠĠĠĠĠĠ Ġval ĠUN READ Ġ= ĠR ss Provider Contract . UN READ ĊĠĠĠĠĠĠĠ Ġval ĠTABLE Ġ= Ġ" items " ĊĠĠĠĠĠĠĠ Ġval Ġ_ ID Ġ= Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġval Ġcolumns Ġ= ĠarrayOf (_ ID , ĠTITLE , ĠDATE , ĠDESCRIPTION , ĠLINK , ĠUN READ ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠSql Helper ? Ġ= Ġnull ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( db : ĠSQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . createTable ( DATABASE _ TABLE , Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ ID Ġto ĠINTEGER Ġ+ ĠPRIMARY _ KEY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTITLE Ġto ĠTEXT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDATE Ġto ĠTEXT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDESCRIPTION Ġto ĠTEXT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLINK Ġto ĠTEXT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUN READ Ġto ĠTEXT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Item ( item : ĠItem RSS ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Item ( item . title , Ġitem . pub Date , Ġitem . description , Ġitem . link ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Item ( title : ĠString , Ġpub Date : ĠString , Ġdescription : ĠString , Ġlink : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdatabase Ġ= Ġdb !!. writable Database ĊĠĠĠĠĠĠĠ Ġdatabase !!. insert ( DATABASE _ TABLE , ĠTITLE Ġto Ġtitle , ĠDATE Ġto Ġpub Date , ĠDESCRIPTION Ġto Ġdescription , ĠLINK Ġto Ġlink , ĠUN READ Ġto Ġ" false ") ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase . maximum Size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Re cycle ") ĊĠĠĠ Ġfun ĠgetItem RSS ( link : ĠString ): ĠItem RSS ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdatabase Ġ= Ġdb !!. readable Database ĊĠĠĠĠĠĠĠ Ġvar Ġitem Ġ: ĠItem RSS ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ// Ġdefine Ġa Ġcon di Ã§Ã£o Ġpr a Ġsubstit uir ĊĠĠĠĠĠĠĠ Ġval Ġwhere Clause Ġ= Ġ"$ LINK Ġ== Ġ? " ĊĠĠĠĠĠĠĠ Ġ// Ġdefine Ġo Ġargument o Ġda Ġcon di Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġwhere Args Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ) ĊĠĠĠĠĠĠĠ Ġ// f az endo Ġa Ġquery ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġdatabase . query ( DATABASE _ TABLE , Ġcolumns , where Clause , where Args , null , null , null ) ĊĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠ Ġif ( cursor . count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġit itle Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( TITLE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġil ink Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( LINK )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid ate Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( DATE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi desc Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( DESCRIPTION )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= ĠItem RSS ( it itle , Ġil ink , Ġid ate , Ġi desc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( cursor . moveTo Next ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ Ġitem ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmark As Un Read ( link : String ): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġreturn Ġmark As ( link , Ġ" false ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmark As Read ( link : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmark As ( link , Ġ" true ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġmark As ( link : ĠString , Ġvalue : ĠString ): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġvar Ġdatabase Ġ= Ġdb !!. writable Database ĊĠĠĠĠĠĠĠ Ġval Ġnew Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġnew Values . put ( UN READ , Ġvalue ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġdefine Ġa Ġcon di Ã§Ã£o Ġpr a Ġsubstit uir ĊĠĠĠĠĠĠĠ Ġval Ġwhere Clause Ġ= Ġ"$ LINK Ġ== Ġ? " ĊĊĠĠĠĠĠĠĠ Ġ// Ġdefine Ġo Ġargument o Ġda Ġcon di Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġwhere Args Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ) ĊĠĠĠĠĠĠĠ Ġval Ġamount Of Updated Columns Ġ= Ġdatabase . update ( DATABASE _ TABLE , Ġnew Values , Ġwhere Clause , Ġwhere Args ) ĊĠĠĠĠĠĠĠ Ġif ( value Ġ== Ġ" true ") Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget It ens (): List < Item RSS >? { ĊĠĠĠĠĠĠĠ Ġvar Ġdatabase Ġ= Ġdb !!. readable Database ĊĠĠĠĠĠĠĠ Ġvar Ġlist Ġ: ĠMutable List < Item RSS >? Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġ// Ġdefine Ġa Ġcon di Ã§Ã£o Ġpr a Ġsubstit uir ĊĠĠĠĠĠĠĠ Ġval Ġwhere Clause Ġ= Ġ"$ UN READ Ġ== Ġ? " ĊĠĠĠĠĠĠĠ Ġ// Ġdefine Ġo Ġargument o Ġda Ġcon di Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġwhere Args Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" false ") ĊĠĠĠĠĠĠĠ Ġ// f az endo Ġa Ġquery ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġdatabase . query ( DATABASE _ TABLE , Ġcolumns , where Clause , where Args , null , null , null ) ĊĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠ Ġif ( cursor . count Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġit itle Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( TITLE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġil ink Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( LINK )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid ate Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( DATE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi desc Ġ= Ġcursor . getString ( cursor . getColumnIndex OrThrow ( DESCRIPTION )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist !!. add ( Item RSS ( it itle , Ġil ink , Ġid ate , Ġi desc )) ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( cursor . moveTo Next ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠAccess Ġproperty Ġfor ĠContext Ċ val ĠContext . database : ĠSql Helper ĊĠĠĠ Ġget () Ġ= ĠSql Helper . getInstance ( application Context ) Ċ