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