Created locale database contract and helper

This commit is contained in:
Pierre 2017-11-02 11:42:25 +01:00
parent 029988fc71
commit 24aa80f63e
2 changed files with 105 additions and 0 deletions

View File

@ -0,0 +1,32 @@
package org.communiquons.android.comunic.client.data;
import android.provider.BaseColumns;
/**
* Database contract schema. Contains the structure of the application database
*
* @author Pierre HUBERT
* Created by pierre on 11/2/17.
*/
public final class DatabaseContract {
//Empty constructor : avoid accidentally instantiations of the class
public DatabaseContract(){}
/* Database basic information */
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "database.db";
/* Users info table */
public static abstract class UsersInfo implements BaseColumns {
public static final String TABLE_NAME = "users_info";
public static final String COLUMN_NAME_USER_ID = "user_id";
public static final String COLUMN_NAME_USER_FIRSTNAME = "first_name";
public static final String COLUMN_NAME_USER_LASTNAME = "last_name";
public static final String COLUMN_NAME_USER_ACCOUNT_IMAGE = "account_image";
}
}

View File

@ -0,0 +1,73 @@
package org.communiquons.android.comunic.client.data;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import org.communiquons.android.comunic.client.data.DatabaseContract.UsersInfo;
/**
* Database helper. This file handles the creation / upgrade of the local database
*
* @author Pierre HUBERT
* Created by pierre on 11/2/17.
*/
public class DatabaseHelper extends SQLiteOpenHelper {
/**
* Generic definitions
*/
private static final String TEXT_TYPE = " TEXT";
private static final String INTEGER_TYPE = " INTEGER";
private static final String COMMA_SEP = ",";
/**
* Creation and deletion of the users info table
*/
private static final String SQL_CREATE_USERS_INFOS_TABLE =
"CREATE TABLE " + UsersInfo.TABLE_NAME + " (" +
UsersInfo._ID + " INTEGER PRIMARY KEY," +
UsersInfo.COLUMN_NAME_USER_ID + INTEGER_TYPE + COMMA_SEP +
UsersInfo.COLUMN_NAME_USER_FIRSTNAME + TEXT_TYPE + COMMA_SEP +
UsersInfo.COLUMN_NAME_USER_LASTNAME + TEXT_TYPE + COMMA_SEP +
UsersInfo.COLUMN_NAME_USER_ACCOUNT_IMAGE + TEXT_TYPE
+ " )";
private static final String SQL_DELETE_USERS_INFOS_TABLE = "DROP TABLE IF EXISTS " +
UsersInfo.TABLE_NAME;
/**
* Public constructor
* @param context The context where the database is used
*/
public DatabaseHelper(Context context){
super(context, DatabaseContract.DATABASE_NAME, null, DatabaseContract.DATABASE_VERSION);
}
/**
* Handles database creation
* @param db The database
*/
@Override
public void onCreate(SQLiteDatabase db) {
//Create user informations table
db.execSQL(SQL_CREATE_USERS_INFOS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Delete users informations table
db.execSQL(SQL_DELETE_USERS_INFOS_TABLE);
onCreate(db);
}
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}