package com.androidworks.navsys.wuffit.content; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.provider.BaseColumns; import android.util.Log; public class Tracker { // This class cannot be instantiated private Tracker() { } public static final String AUTHORITY = "com.androidworks.navsys.wuffit.content.Tracker"; public static final String DATABASE_NAME = "trackers.db"; public static final int DATABASE_VERSION = 3; /** * This class helps open, create, and upgrade the database file. */ static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + Details.TABLE_NAME + " (" + Details._ID + " INTEGER PRIMARY KEY," + Details.ID + " INTEGER NOT NULL UNIQUE," + Details.NAME + " TEXT NOT NULL UNIQUE," + Details.NUMBER + " TEXT NOT NULL UNIQUE" + ");"); db.execSQL("CREATE TABLE " + Setup.TABLE_NAME + " (" + Setup._ID + " INTEGER PRIMARY KEY," + Setup._FID + " INTEGER NOT NULL UNIQUE," + Setup.REPLY + " TEXT," + Setup.REPLY_TIME + " INTEGER," + Setup.SETUP_TIME + " INTEGER" + ");"); db.execSQL("CREATE TABLE " + Locations.TABLE_NAME + " (" + Locations._ID + " INTEGER PRIMARY KEY," + Locations._FID + " INTEGER NOT NULL UNIQUE," + Locations.LOCATION + " TEXT," + Locations.UPDATE_TIME + " INTEGER," + Locations.REQUEST_TIME + " INTEGER" + ");"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w("Trackers#DatabaseHelper ==>", "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS " + Details.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + Setup.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + Locations.TABLE_NAME); onCreate(db); } } /** * Common Trackers columns */ public static class TrackerColumns implements BaseColumns { private TrackerColumns() {/*This class cannot be instantiated*/} static final String CONTENT_TYPE_PREFIX = "vnd.navsys.cursor.dir/vnd.navsys."; static final String CONTENT_ITEM_TYPE_PREFIX = "vnd.navsys.cursor.item/vnd.navsys."; static final String CONTENT_URI_PREFIX = "content://"; static final String CONTENT_SEPARATOR = "/"; } public static final class Details extends TrackerColumns { private Details() {/*This class cannot be instantiated*/} public static final String TABLE_NAME = "details"; public static final String CONTENT_TYPE = CONTENT_TYPE_PREFIX + TABLE_NAME; public static final String CONTENT_ITEM_TYPE = CONTENT_ITEM_TYPE_PREFIX + TABLE_NAME; public static final Uri CONTENT_URI = Uri.parse(CONTENT_URI_PREFIX + AUTHORITY + CONTENT_SEPARATOR + TABLE_NAME); public static final String ID = "id"; public static final String NAME = "name"; public static final String NUMBER = "number"; } public static final class Setup extends TrackerColumns { private Setup() {/*This class cannot be instantiated*/} public static final String TABLE_NAME = "setup"; public static final String CONTENT_TYPE = CONTENT_TYPE_PREFIX + TABLE_NAME; public static final String CONTENT_ITEM_TYPE = CONTENT_ITEM_TYPE_PREFIX + TABLE_NAME; public static final Uri CONTENT_URI = Uri.parse(CONTENT_URI_PREFIX + AUTHORITY + CONTENT_SEPARATOR + TABLE_NAME); public static final String _FID = "_fid"; public static final String SETUP_TIME = "setup_t"; public static final String REPLY_TIME = "reply_t"; public static final String REPLY = "reply"; } public static final class Locations extends TrackerColumns { private Locations() {/*This class cannot be instantiated*/} public static final String TABLE_NAME = "locations"; public static final String CONTENT_TYPE = CONTENT_TYPE_PREFIX + TABLE_NAME; public static final String CONTENT_ITEM_TYPE = CONTENT_ITEM_TYPE_PREFIX + TABLE_NAME; public static final Uri CONTENT_URI = Uri.parse(CONTENT_URI_PREFIX + AUTHORITY + CONTENT_SEPARATOR + TABLE_NAME); public static final String _FID = "_fid"; public static final String LOCATION = "location"; public static final String UPDATE_TIME = "update_t"; public static final String REQUEST_TIME = "request_t"; } }