package Ġcom . open conference . model . database . dao Ċ Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġcom . h ann es dor fm ann . sql br ite . dao . Dao Ċ import Ġcom . open conference . model . Speaker Ċ import Ġcom . open conference . model . database . Speaker Auto Value Ċ import Ġrx . Observable Ċ Ċ /** Ċ Ġ* ĠA ĠS peaker Dao Ġon Ġtop Ġof Ġsqlite Ċ Ġ* Ċ Ġ* Ġ@ author ĠH ann es ĠD or fm ann Ċ Ġ*/ Ċ open Ġclass ĠS peaker Dao Sqlite Ġ: ĠS peaker Dao , ĠDao () Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠTABLE Ġ= Ġ" Speaker " ĊĠĠĠ Ġconst Ġval ĠCOL _ ID Ġ= Ġ" id " ĊĠĠĠ Ġconst Ġval ĠCOL _ NAME Ġ= Ġ" name " ĊĠĠĠ Ġconst Ġval ĠCOL _ INFO Ġ= Ġ" bio " ĊĠĠĠ Ġconst Ġval ĠCOL _ PI CTURE Ġ= Ġ" picture " ĊĠĠĠ Ġconst Ġval ĠCOL _ COMP ANY Ġ= Ġ" company Name " ĊĠĠĠ Ġconst Ġval ĠCOL _ JOB _ TITLE Ġ= Ġ" job Title " ĊĠĠĠ Ġconst Ġval ĠCOL _ LINK 1 Ġ= Ġ" link 1 " ĊĠĠĠ Ġconst Ġval ĠCOL _ LINK 2 Ġ= Ġ" link 2 " ĊĠĠĠ Ġconst Ġval ĠCOL _ LINK 3 Ġ= Ġ" link 3 " ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Upgrade ( db : ĠSQLite Database , Ġold Version : ĠInt , Ġnew Version : ĠInt ) Ġ{ ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Table ( database : ĠSQLite Database ) Ġ{ ĊĊĠĠĠ ĠCREATE _ TABLE ( TABLE , ĊĠĠĠĠĠĠĠ Ġ"$ COL _ ID ĠVARCHAR ( 2 0 ) ĠPRIMARY ĠKEY ", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ NAME ĠVARCHAR ( 1 0 0 ) ĠNOT ĠNULL ", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ INFO ĠTEXT ", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ PI CTURE ĠTEXT ", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ COMP ANY ĠVARCHAR ( 1 0 0 )", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ JOB _ TITLE ĠTEXT ", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ LINK 1 ĠTEXT ", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ LINK 2 ĠTEXT ", ĊĠĠĠĠĠĠĠ Ġ"$ COL _ LINK 3 ĠTEXT ") ĊĠĠĠĠĠĠĠ Ġ. execute ( database ) ĊĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġinsert OrUpdate ( id : ĠString , Ġname : ĠString , Ġinfo : ĠString ?, Ġprofile Pic Url : ĠString ?, ĊĠĠĠĠĠ Ġcompany : ĠString ?, Ġjob Title : ĠString ?, Ġlink 1 : ĠString ?, Ġlink 2 : ĠString ?, ĊĠĠĠĠĠ Ġlink 3 : ĠString ?): ĠObservable < Long > Ġ= Ġinsert ( TABLE , ĊĠĠĠĠĠ ĠS peaker Auto Value . create ( id , Ġname , Ġinfo , Ġprofile Pic Url , Ġcompany , Ġjob Title , Ġlink 1 , Ġlink 2 , ĊĠĠĠĠĠĠĠĠĠ Ġlink 3 ). to Content Values (), ĠSQLite Database . CONF LI CT _ REPLACE ) ĊĊĠ Ġoverride Ġfun Ġremove ( id : ĠString ): ĠObservable < Int > Ġ= Ġdelete ( TABLE , Ġ"$ COL _ ID Ġ= Ġ?", Ġid ) ĊĊĠ Ġoverride Ġfun Ġremove All (): ĠObservable < Int > Ġ= Ġdelete ( TABLE ) ĊĊĠ Ġoverride Ġfun Ġget Speaker ( id : ĠString ): ĠObservable < Speaker ?> Ġ= Ġquery ( ĊĠĠĠĠĠ ĠSELECT ("* "). FROM ( TABLE ). WHERE ("$ COL _ ID Ġ= Ġ? ")). args ( id ). run (). map ToOne OrDefault ( ĊĠĠĠĠĠ ĠS peaker Auto Value . mapper (), Ġnull ). map Ġ{ Ġit Ġ} ĊĊĠ Ġoverride Ġfun ĠgetS peak ers (): ĠObservable < List < Speaker >> Ġ= Ġquery ( ĊĠĠĠĠĠ ĠSELECT ("* "). FROM ( TABLE ). ORDER _ BY ( COL _ NAME )). run (). map ToList ( ĊĠĠĠĠĠ ĠS peaker Auto Value . mapper ()). map Ġ{ Ġit Ġ} ĊĊĠ Ġoverride Ġfun Ġfind Sessions With ( query : ĠString ): ĠObservable < List < Speaker >> Ġ{ ĊĊĠĠĠ Ġval Ġsplit Ġ= Ġquery . split (" Ġ") ĊĠĠĠ Ġval Ġwhere Clause Builder Ġ= ĠStringBuilder () ĊĠĠĠ Ġval Ġargs Ġ= ĠArray < String >( split . size Ġ* Ġ 3 , Ġ{ Ġ"" Ġ}) ĊĠĠĠ Ġvar Ġargs Index Ġ= Ġ 0 ĊĊĠĠĠ Ġsplit . forEach Indexed Ġ{ Ġi , Ġsearch Term Ġ-> ĊĠĠĠĠĠ Ġif Ġ( i Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhere Clause Builder . append (" ĠOR Ġ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġwhere Clause Builder . append ("${ COL _ NAME } ĠLIKE Ġ? ĠOR Ġ${ COL _ INFO } ĠLIKE Ġ? ĠOR Ġ${ COL _ COMP ANY } ĠLIKE Ġ? ") ĊĠĠĠĠĠ Ġargs [ args Index ++] Ġ= Ġ"% $ search Term %" ĊĠĠĠĠĠ Ġargs [ args Index ++] Ġ= Ġ"% $ search Term %" ĊĠĠĠĠĠ Ġargs [ args Index ++] Ġ= Ġ"% $ search Term %" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġquery ( ĊĠĠĠĠĠĠĠ ĠSELECT ("* "). FROM ( TABLE ). WHERE ( where Clause Builder . toString ()). ORDER _ BY ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCOL _ NAME )) ĊĠĠĠĠĠĠĠ Ġ. args (* args ) ĊĠĠĠĠĠĠĠ Ġ. run (). map ToList ( ĊĠĠĠĠĠĠĠ ĠS peaker Auto Value . mapper ()). map Ġ{ Ġit Ġ} ĊĠ Ġ} Ċ }