package au.id.teda.broadband.usage.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { // Debug tag //private final String DEBUG_TAG = BaseActivity.DEBUG_TAG; // If you change the database schema, you must increment the database version. private static final int DATABASE_VERSION = 2; private static final String DATABASE_NAME = "iiNetUsage.db"; private static final String DAILY_USAGE_TABLE_CREATE = "create table " + DailyDataTableAdapter.TABLE_NAME + " (" + DailyDataTableAdapter.KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + DailyDataTableAdapter.ACCOUNT + " TEXT NOT NULL, " + DailyDataTableAdapter.MONTH + " TEXT NOT NULL, " + DailyDataTableAdapter.DAY + " INTEGER UNIQUE, " + DailyDataTableAdapter.ANYTIME + " INTEGER NOT NULL, " + DailyDataTableAdapter.PEAK + " INTEGER NOT NULL, " + DailyDataTableAdapter.OFFPEAK + " INTEGER NOT NULL, " + DailyDataTableAdapter.UPLOADS + " INTEGER NOT NULL, " + DailyDataTableAdapter.FREEZONE + " INTEGER NOT NULL);"; private static final String HOURLY_USAGE_TABLE_CREATE = "create table " + HourlyDataTableAdapter.TABLE_NAME + " (" + HourlyDataTableAdapter.KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + HourlyDataTableAdapter.ACCOUNT + " TEXT NOT NULL, " + HourlyDataTableAdapter.DAY + " TEXT UNIQUE, " + HourlyDataTableAdapter.HOUR + " TEXT NOT NULL, " + HourlyDataTableAdapter.ANYTIME + " INTEGER NOT NULL, " + HourlyDataTableAdapter.PEAK + " INTEGER NOT NULL, " + HourlyDataTableAdapter.OFFPEAK + " INTEGER NOT NULL, " + HourlyDataTableAdapter.UPLOADS + " INTEGER NOT NULL, " + HourlyDataTableAdapter.FREEZONE + " INTEGER NOT NULL);"; private static final String UP_TIME_TABLE_CREATE = "create table " + UptimeTableAdapter.TABLE_NAME + " (" + UptimeTableAdapter.KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + UptimeTableAdapter.ACCOUNT + " TEXT NOT NULL, " + UptimeTableAdapter.START + " INTEGER UNIQUE, " + UptimeTableAdapter.FINISH + " INTEGER NOT NULL, " + UptimeTableAdapter.IP + " TEXT NOT NULL);"; private static final String HISTORICAL_TABLE_CREATE = "create table " + HistoricalMonthsTableAdapter.TABLE_NAME + " (" + HistoricalMonthsTableAdapter.KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + HistoricalMonthsTableAdapter.ACCOUNT + " TEXT NOT NULL, " + HistoricalMonthsTableAdapter.MONTH + " INTEGER UNIQUE); "; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DAILY_USAGE_TABLE_CREATE); db.execSQL(HOURLY_USAGE_TABLE_CREATE); db.execSQL(UP_TIME_TABLE_CREATE); db.execSQL(HISTORICAL_TABLE_CREATE); } @Override public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) { // Loop through database upgrades for (int i = oldVersion; i < newVersion; i++) { switch(i) { case 1: // Add anytime column to daily table database.execSQL("ALTER TABLE " + DailyDataTableAdapter.TABLE_NAME + " ADD COLUMN " + DailyDataTableAdapter.ANYTIME + " INTEGER NOT NULL DEFAULT '-1'"); // Add anytime column to hourly table database.execSQL("ALTER TABLE " + HourlyDataTableAdapter.TABLE_NAME + " ADD COLUMN " + HourlyDataTableAdapter.ANYTIME + " INTEGER NOT NULL DEFAULT '-1'"); break; } } } }