You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
5.0 KiB
151 lines
5.0 KiB
package htdinc.howtodrink.DataBase;
|
|
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
import android.database.sqlite.SQLiteException;
|
|
import android.database.sqlite.SQLiteOpenHelper;
|
|
import android.preference.PreferenceManager;
|
|
import android.util.Log;
|
|
import android.widget.Toast;
|
|
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
import java.util.Locale;
|
|
|
|
/**
|
|
* Created by RUDY on 31/05/2016.
|
|
*/
|
|
public class DataBaseOpenHelper extends SQLiteOpenHelper{
|
|
|
|
private static final String DATABASE_NAME = "HTDDatane.sqlite";
|
|
private static final int DATABASE_VERSION = 1;
|
|
private static final String SP_KEY_DB_VER = "db_ver";
|
|
private final Context mContext;
|
|
|
|
// Nom de la table
|
|
public static final String BAR_TABLE_NAME = "BAR";
|
|
|
|
// Description des colonnes
|
|
public static final String COLUMN_IDBAR = "IDBAR";
|
|
public static final int NUM_COLUMN_IDBAR = 0;
|
|
public static final String COLUMN_NAMEBAR = "NAMEBAR";
|
|
public static final int NUM_COLUMN_NAMEBAR = 1;
|
|
public static final String COLUMN_NOTEBAR = "NOTEBAR";
|
|
public static final int NUM_COLUMN_NOTEBAR = 2;
|
|
public static final String COLUMN_ADDRESSBAR = "ADDRESSBAR";
|
|
public static final int NUM_COLUMN_ADDRESSBAR = 3;
|
|
public static final String COLUMN_GPSLOCATIONLATITUDEBAR = "GPSLOCATIONLATITUDEBAR";
|
|
public static final int NUM_COLUMN_GPSLOCATIONLATITUDEBAR = 4;
|
|
public static final String COLUMN_GPSLOCATIONLONGITUDEBAR = "GPSLOCATIONLONGITUDEBAR";
|
|
public static final int NUM_COLUMN_GPSLOCATIONLONGITUDEBAR = 5;
|
|
|
|
// Nom de la table
|
|
public static final String CATEGORY_TABLE_NAME = "CATEGORY";
|
|
|
|
// Description des colonnes
|
|
public static final String COLUMN_IDCATEGORY = "IDCATEGORY";
|
|
public static final int NUM_COLUMN_IDCATEGORY = 0;
|
|
public static final String COLUMN_NAMECATEGORY = "NAMECATEGORY";
|
|
public static final int NUM_COLUMN_NAMECATEGORY = 1;
|
|
|
|
public DataBaseOpenHelper(Context context) {
|
|
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
|
mContext = context;
|
|
initialize();
|
|
}
|
|
|
|
/**
|
|
* Initializes database. Creates database if doesn't exist.
|
|
*/
|
|
private void initialize() {
|
|
if (databaseExists()) {
|
|
SharedPreferences prefs = PreferenceManager
|
|
.getDefaultSharedPreferences(mContext);
|
|
int dbVersion = prefs.getInt(SP_KEY_DB_VER, 1);
|
|
if (DATABASE_VERSION != dbVersion) {
|
|
File dbFile = mContext.getDatabasePath(DATABASE_NAME);
|
|
if (!dbFile.delete()) {
|
|
Log.w("Failed", "Unable to update database");
|
|
}
|
|
}
|
|
}
|
|
if (!databaseExists()) {
|
|
createDatabase();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Returns true if database file exists, false otherwise.
|
|
* @return
|
|
*/
|
|
private boolean databaseExists() {
|
|
File dbFile = mContext.getDatabasePath(DATABASE_NAME);
|
|
return dbFile.exists();
|
|
}
|
|
|
|
/**
|
|
* Creates database by copying it from assets directory.
|
|
*/
|
|
private void createDatabase() {
|
|
String parentPath = mContext.getDatabasePath(DATABASE_NAME).getParent();
|
|
String path = mContext.getDatabasePath(DATABASE_NAME).getPath();
|
|
|
|
File file = new File(parentPath);
|
|
if (!file.exists()) {
|
|
if (!file.mkdir()) {
|
|
Log.w("FAILED", "Unable to create database directory");
|
|
return;
|
|
}
|
|
}
|
|
|
|
InputStream is = null;
|
|
OutputStream os = null;
|
|
try {
|
|
is = mContext.getAssets().open(DATABASE_NAME);
|
|
os = new FileOutputStream(path);
|
|
|
|
byte[] buffer = new byte[1024];
|
|
int length;
|
|
while ((length = is.read(buffer)) > 0) {
|
|
os.write(buffer, 0, length);
|
|
}
|
|
os.flush();
|
|
SharedPreferences prefs = PreferenceManager
|
|
.getDefaultSharedPreferences(mContext);
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
editor.putInt(SP_KEY_DB_VER, DATABASE_VERSION);
|
|
editor.commit();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
if (is != null) {
|
|
try {
|
|
is.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
if (os != null) {
|
|
try {
|
|
os.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(SQLiteDatabase db) {
|
|
}
|
|
|
|
@Override
|
|
public void onUpgrade(SQLiteDatabase db, int oldVersion,
|
|
int newVersion) {
|
|
}
|
|
|
|
} // class
|