package Ġcom . gd gn antes . dev fest . android . provider Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . database . sqlite . SQLite Open Helper Ċ Ċ internal Ġclass ĠSchedule Database ( private Ġval Ġcontext : ĠContext ) Ġ: ĊĠĠĠĠĠĠĠ ĠSQLite Open Helper ( context , ĠDATABASE _ NAME , Ġnull , ĠDATABASE _ VERSION ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDATABASE _ NAME Ġ= Ġ" schedule . db " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDATABASE _ VERSION Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠTables Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠR OO MS Ġ= Ġ" Rooms " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS ESS IONS Ġ= Ġ" Sessions " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS ESS IONS _ SPE AK ERS Ġ= Ġ" Sessions S peak ers " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSPE AK ERS Ġ= Ġ" S peak ers " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS ESS IONS _ L J _ RO O MS Ġ= Ġ" Sessions Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" LEFT ĠJOIN ĠRoom s ĠON Ġsession _ room _ id Ġ= Ġroom _ id " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS ESS IONS _ L J _ RO O MS _ L J _ SESSION S _ SPE AK ERS _ J _ SPE AK ERS Ġ= Ġ" Sessions Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" LEFT ĠJOIN ĠRoom s ĠON Ġsession _ room _ id Ġ= Ġroom _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" LEFT ĠJOIN ĠS essions S peak ers ĠON Ġsession _ speaker _ session _ id Ġ= Ġsession _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" LEFT ĠJOIN ĠS peak ers ĠON Ġsession _ speaker _ speaker _ id Ġ= Ġspeaker _ id " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS ESS IONS _ SPE AK ERS _ J _ SESSION S _ J _ SPE AK ERS _ L J _ RO O MS Ġ= Ġ" Sessions S peak ers Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" JOIN ĠS essions ĠON Ġsession _ speaker _ session _ id Ġ= Ġsession _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" JOIN ĠS peak ers ĠON Ġsession _ speaker _ speaker _ id Ġ= Ġspeaker _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" LEFT ĠJOIN ĠRoom s ĠON Ġsession _ room _ id Ġ= Ġroom _ id " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( db : ĠSQLite Database ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" CREATE ĠTABLE Ġ${ Tables . RO O MS } Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Rooms . ROOM _ ID } ĠTEXT ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Rooms . ROOM _ NAME } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UNIQUE Ġ(${ Schedule Contract . Rooms . ROOM _ ID }) ĠON ĠCON FLI CT ĠREPLACE )") ĊĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" CREATE ĠTABLE Ġ${ Tables . SESSION S } Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ ID } ĠTEXT ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ DESCRIPTION } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ END _ TIMESTAMP } ĠINTEGER , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ LANGUAGE } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ ROOM _ ID } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ START _ TIMESTAMP } ĠINTEGER , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ TITLE } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ TRACK } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions . SESSION _ TYPE } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UNIQUE Ġ(${ Schedule Contract . Sessions . SESSION _ ID }) ĠON ĠCON FLI CT ĠREPLACE )") ĊĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" CREATE ĠTABLE Ġ${ Tables . SESSION S _ SPE AK ERS } Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions S peak ers . SESSION _ SPE AK ER _ SESSION _ ID } ĠTEXT ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions S peak ers . SESSION _ SPE AK ER _ SPE AK ER _ ID } ĠTEXT ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UNIQUE Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions S peak ers . SESSION _ SPE AK ER _ SESSION _ ID }, Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . Sessions S peak ers . SESSION _ SPE AK ER _ SPE AK ER _ ID }) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ON ĠCON FLI CT ĠREPLACE )") ĊĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" CREATE ĠTABLE Ġ${ Tables . SPE AK ERS } Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . S peak ers . SPE AK ER _ ID } ĠTEXT ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . S peak ers . SPE AK ER _ BIO } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . S peak ers . SPE AK ER _ COMP ANY } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . S peak ers . SPE AK ER _ NAME } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . S peak ers . SPE AK ER _ PH OTO _ URL } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Schedule Contract . S peak ers . SPE AK ER _ SO CIAL _ LIN KS } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UNIQUE Ġ(${ Schedule Contract . S peak ers . SPE AK ER _ ID }) ĠON ĠCON FLI CT ĠREPLACE )") ĊĊĠĠĠĠĠĠĠ ĠSchedule Seed ( context ). seed ( db ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Upgrade ( db : ĠSQLite Database , Ġold Version : ĠInt , Ġnew Version : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" DROP ĠTABLE ĠIF ĠEXISTS Ġ${ Tables . RO O MS }") ĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" DROP ĠTABLE ĠIF ĠEXISTS Ġ${ Tables . SESSION S }") ĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" DROP ĠTABLE ĠIF ĠEXISTS Ġ${ Tables . SESSION S _ SPE AK ERS }") ĊĠĠĠĠĠĠĠ Ġdb . exec SQL (" DROP ĠTABLE ĠIF ĠEXISTS Ġ${ Tables . SPE AK ERS }") ĊĠĠĠĠĠĠĠ ĠonCreate ( db ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ