package com.parleys.android.client.provider;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
import android.util.Log;
import com.parleys.android.client.provider.ParleysContract.Channels;
import com.parleys.android.client.provider.ParleysContract.ChannelsColumns;
import com.parleys.android.client.provider.ParleysContract.NewsColumns;
import com.parleys.android.client.provider.ParleysContract.ParleysBaseColumns;
import com.parleys.android.client.provider.ParleysContract.Spaces;
import com.parleys.android.client.provider.ParleysContract.SpacesColumns;
public class ParleysDatabase extends SQLiteOpenHelper {
private static final String TAG = "ParleysDatabse";
private static final String DATABASE_NAME = "parleys.db";
private static final int VER_INITIAL_VERSION = 1;
private static final int DATABASE_VERSION = VER_INITIAL_VERSION;
interface Tables {
String NEWS = "news";
String SPACES = "spaces";
String CHANNELS = "channels";
}
private interface References {
String SPACE_ID = "REFERENCES " + Tables.SPACES + "(" + Spaces.SPACE_ID + ")";
}
public ParleysDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(TAG, "onCreate()");
db.execSQL("CREATE TABLE " + Tables.NEWS + " ("
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ NewsColumns.NEWS_ID + " INTEGER NOT NULL,"
+ ParleysBaseColumns.CREATED_ON + " INTEGER NOT NULL,"
+ ParleysBaseColumns.MODIFIED_ON + " INTEGER NOT NULL,"
+ NewsColumns.TITLE + " TEXT NOT NULL,"
+ NewsColumns.ITEM + " TEXT NOT NULL,"
+ NewsColumns.AUTHOR + " TEXT NOT NULL,"
+ NewsColumns.GENERAL + " INTEGER NOT NULL DEFAULT 0,"
+ NewsColumns.PUBLISHED + " INTEGER NOT NULL DEFAULT 0,"
+ NewsColumns.READ + " INTEGER NOT NULL DEFAULT 1,"
+ "UNIQUE (" + NewsColumns.NEWS_ID + ") ON CONFLICT REPLACE)");
db.execSQL("CREATE TABLE " + Tables.SPACES + " ("
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ SpacesColumns.SPACE_ID + " INTEGER NOT NULL,"
+ ParleysBaseColumns.CREATED_ON + " INTEGER NOT NULL,"
+ ParleysBaseColumns.MODIFIED_ON + " INTEGER NOT NULL,"
+ SpacesColumns.NAME + " TEXT NOT NULL,"
+ SpacesColumns.DESCRIPTION + " TEXT NOT NULL,"
+ SpacesColumns.THUMBNAIL_URL + " TEXT NOT NULL,"
+ SpacesColumns.VISIBLE_IPAD + " INTEGER NOT NULL DEFAULT 0,"
+ SpacesColumns.NUMBER_CHANNELS + " INTEGER NOT NULL DEFAULT 0,"
+ SpacesColumns.TOTAL_CHANNELS + " INTEGER NOT NULL DEFAULT 0,"
+ SpacesColumns.TOTAL_PRESENTATIONS + " INTEGER NOT NULL DEFAULT 0,"
+ SpacesColumns.TOTAL_VIEWCOUNT + " INTEGER NOT NULL DEFAULT 0,"
+ "UNIQUE (" + SpacesColumns.SPACE_ID + ") ON CONFLICT REPLACE)");
db.execSQL("CREATE TABLE " + Tables.CHANNELS + " ("
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ ChannelsColumns.CHANNEL_ID + " INTEGER NOT NULL,"
+ Channels.SPACE_ID + " INTEGER NOT NULL " + References.SPACE_ID + ","
+ ParleysBaseColumns.CREATED_ON + " INTEGER NOT NULL,"
+ ParleysBaseColumns.MODIFIED_ON + " INTEGER NOT NULL,"
+ ChannelsColumns.NAME + " TEXT NOT NULL,"
+ ChannelsColumns.DESCRIPTION + " TEXT NOT NULL,"
+ ChannelsColumns.THUMBNAIL_URL + " TEXT NOT NULL,"
+ ChannelsColumns.DELETED + " INTEGER NOT NULL DEFAULT 0,"
+ ChannelsColumns.PUBLIC + " INTEGER NOT NULL DEFAULT 1,"
+ ChannelsColumns.VISIBLE_IPAD + " INTEGER NOT NULL DEFAULT 0,"
+ ChannelsColumns.TOTAL_PRESENTATIONS + " INTEGER NOT NULL DEFAULT 0,"
+ ChannelsColumns.TOTAL_VIEWCOUNT + " INTEGER NOT NULL DEFAULT 0,"
+ ChannelsColumns.TOTAL_PRESENTATIONS_INCL_NON_PUBLIC + " INTEGER NOT NULL DEFAULT 0,"
+ ChannelsColumns.MEMBERSHIP + " TEXT NOT NULL,"
+ ChannelsColumns.LISTED + " INTEGER NOT NULL DEFAULT 0,"
+ "UNIQUE (" + ChannelsColumns.CHANNEL_ID + ") ON CONFLICT REPLACE)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d(TAG, "onUpgrade() from " + oldVersion + " to " + newVersion);
}
}
|