package mondaini.android.bagulhodoido.db; import java.util.ArrayList; import java.util.List; import mondaini.android.bagulhodoido.model.Local; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBAdapter { private static final String DATABASE_NAME = "db"; private static final int DATABASE_VERSION = 1; public static final String TABLE_LOCAL = "local"; /** column names **/ public static final String LOCAL_ID = "_id"; public static final String LOCAL_NOME = "nome"; public static final String LOCAL_ENDERECO = "endereco"; public static final String LOCAL_DETALHES = "detalhes"; public static final String LOCAL_LATITUDE = "latidude"; public static final String LOCAL_LONGITUDE = "longitude"; public static final String LOCAL_AGENDA = "agenda"; /** column keys **/ public static final int KEY_LOCAL_ID = 0; public static final int KEY_LOCAL_NOME = 1; public static final int KEY_LOCAL_ENDERECO = 2; public static final int KEY_LOCAL_DETALHES = 3; public static final int KEY_AGENDA = 4; private static final String DATABASE_CREATE = "create table "+TABLE_LOCAL+" (" + LOCAL_ID + " integer primary key autoincrement, " + LOCAL_NOME + " text not null, " + LOCAL_ENDERECO + " text not null," + LOCAL_DETALHES + " text null," + LOCAL_AGENDA + " text null);"; String QUERY_INSERT_LOCAIS = "insert into "+TABLE_LOCAL + " (" + LOCAL_NOME + ", " + LOCAL_ENDERECO + ", " + LOCAL_DETALHES + ", " + LOCAL_AGENDA + ") values (?, ?, ?, ?);"; public static final ArrayList<Object[]> createLocalList(){ ArrayList<Object[]> locais = new ArrayList<Object[]>(); locais.add(new Object[]{"UFF", "Rua Passo da Pátria, 156 – Boa Viagem – Niterói", "Campus Praia Vermelha (campus de Engenharia da UFF) - Sala 230B – Bloco D (prédio novo)", "Quinta-feira às 19h00"}); locais.add(new Object[]{"UFF ", "Rua Passo da Pátria, 156 – Boa Viagem – Niterói", "Campus Praia Vermelha (campus de Engenharia da UFF) - Sala 230B – Bloco D (prédio novo)", "Sexta-feira às 11h00"}); locais.add(new Object[]{"IFF", "Rua Doutor Siqueira, 273 – Parque Tamandaré – Campos dos Goytacazes", "Campus Campos-Centro - Sala 6 – Bloco E (coordenação de Informática)", "Terça-feira às 16h00"}); locais.add(new Object[]{"UENF", "Avenida Alberto Lamego, 2000 – Parque Califórnia – Campos dos Goytacazes", "Prédio P5, Térreo, Auditório 2", "Terça-feira às 18h15"}); locais.add(new Object[]{"Petrópolis", "Avenida Getúlio Vargas, 335 – Petrópolis", "Sala 5 – IST/CPTI (Ao lado do LNCC)", "Sábados a cada 15 dias às 15h00"}); return locais; } private DatabaseHelper mDbHelper; private SQLiteDatabase mDb; private Context context; private class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); for (Object[] values: createLocalList()){ db.execSQL(QUERY_INSERT_LOCAIS, values); //Populate Initial Data } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS notes"); onCreate(db); } } public DBAdapter (Context context){ this.context = context; } public DBAdapter open() throws SQLException { mDbHelper = new DatabaseHelper(this.context); mDb = mDbHelper.getWritableDatabase(); return this; } public void close() { mDbHelper.close(); } public boolean deleteLocal(long rowId){ boolean b = mDb.delete(TABLE_LOCAL, LOCAL_ID + "=" + rowId, null) > 0; return b; } public long createLocal(Local local) { ContentValues initialValues = new ContentValues(); initialValues.put(LOCAL_NOME, local.nomeLocal); initialValues.put(LOCAL_ENDERECO, local.endereco); initialValues.put(LOCAL_DETALHES, local.detalhes); initialValues.put(LOCAL_AGENDA, local.agenda); long result = mDb.insert(TABLE_LOCAL, null, initialValues); return result; } public Cursor fetchAllLocais(){ Cursor c = mDb.query(TABLE_LOCAL, new String[] { LOCAL_ID, LOCAL_NOME, LOCAL_ENDERECO, LOCAL_DETALHES, LOCAL_AGENDA}, null, null, null, null, null); return c; } public List<Local> getLocais() { Cursor c = fetchAllLocais(); ArrayList<Local> locais = new ArrayList<Local>(); while (c.moveToNext()) { Long id = c.getLong(KEY_LOCAL_ID); String nomeLocal = c.getString(KEY_LOCAL_NOME); String endereco = c.getString(KEY_LOCAL_ENDERECO); String detalhes = c.getString(KEY_LOCAL_DETALHES); String agenda = c.getString(KEY_AGENDA); Local l = new Local(id, nomeLocal, endereco, detalhes, agenda); locais.add(l); } c.close(); return locais; } public Local getLocal(long id) { Local local = new Local(); Cursor c = fetchAllLocais(); while(c.moveToNext()){ if (c.getLong(KEY_LOCAL_ID) == id){ local = new Local( c.getLong(KEY_LOCAL_ID), c.getString(KEY_LOCAL_NOME), c.getString(KEY_LOCAL_ENDERECO), c.getString(KEY_LOCAL_DETALHES), c.getString(KEY_AGENDA)); return local; } } return local; } }