package com.pwittchen.eegreader.database.controller; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import com.pwittchen.eegreader.database.DatabaseHandler; import com.pwittchen.eegreader.database.model.Signal; import java.util.ArrayList; import java.util.List; public class SignalTableController { private SQLiteOpenHelper sqLiteOpenHelper; public SignalTableController(SQLiteOpenHelper sqLiteOpenHelper) { this.sqLiteOpenHelper = sqLiteOpenHelper; } public void add(Signal signal) { SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(DatabaseHandler.KEY_TYPE, signal._type); contentValues.put(DatabaseHandler.KEY_LEVEL, signal._level); contentValues.put(DatabaseHandler.KEY_MILISECONDS, new java.util.Date().getTime()); sqLiteDatabase.insert(DatabaseHandler.TABLE_SIGNALS, null, contentValues); sqLiteDatabase.close(); } public Signal getItem(int id) { SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getReadableDatabase(); Cursor cursor = sqLiteDatabase.query( DatabaseHandler.TABLE_SIGNALS, new String[]{DatabaseHandler.KEY_ID, DatabaseHandler.KEY_TYPE, DatabaseHandler.KEY_LEVEL, DatabaseHandler.KEY_MILISECONDS}, DatabaseHandler.KEY_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) { cursor.moveToFirst(); } Signal signal = new Signal(Integer.parseInt(cursor.getString(0)), Integer.parseInt(cursor.getString(1)), Integer.parseInt(cursor.getString(2)), Integer.parseInt(cursor.getString(3))); return signal; } public List<Signal> getAll() { List<Signal> signalList = new ArrayList<Signal>(); String selectQuery = "SELECT * FROM " + DatabaseHandler.TABLE_SIGNALS; SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getWritableDatabase(); Cursor cursor = sqLiteDatabase.rawQuery(selectQuery, null); if (cursor.moveToFirst()) { do { Signal signal = new Signal(); signal._id = Integer.parseInt(cursor.getString(0)); signal._type = Integer.parseInt(cursor.getString(1)); signal._level = Integer.parseInt(cursor.getString(2)); signal._miliseconds = Long.parseLong(cursor.getString(3)); signalList.add(signal); } while (cursor.moveToNext()); } return signalList; } public Cursor getAllCursor() { SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getReadableDatabase(); String selectQuery = "SELECT * FROM " + DatabaseHandler.TABLE_SIGNALS; return sqLiteDatabase.rawQuery(selectQuery, null); } public int getCount() { String countQuery = "SELECT * FROM " + DatabaseHandler.TABLE_SIGNALS; SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getReadableDatabase(); Cursor cursor = sqLiteDatabase.rawQuery(countQuery, null); return cursor.getCount(); } public int update(Signal signal) { SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DatabaseHandler.KEY_LEVEL, signal._level); values.put(DatabaseHandler.KEY_TYPE, signal._type); values.put(DatabaseHandler.KEY_MILISECONDS, signal._miliseconds); return sqLiteDatabase.update(DatabaseHandler.TABLE_SIGNALS, values, DatabaseHandler.KEY_ID + " = ?", new String[]{String.valueOf(signal._id)}); } public void delete(Signal signal) { SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getWritableDatabase(); sqLiteDatabase.delete(DatabaseHandler.TABLE_SIGNALS, DatabaseHandler.KEY_ID + " = ?", new String[]{String.valueOf(signal._id)}); sqLiteDatabase.close(); } public void deleteAll() { SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getWritableDatabase(); sqLiteDatabase.delete(DatabaseHandler.TABLE_SIGNALS, "", new String[]{}); sqLiteDatabase.close(); } }