/v3.2/nimbits-android/src/com/nimbits/android/database/DatabaseHelperImpl.java

http://nimbits-server.googlecode.com/ · Java · 121 lines · 84 code · 34 blank · 3 comment · 5 complexity · 6acff47c7ecd452107deaa362c75f3e2 MD5 · raw file

  1. package com.nimbits.android.database;
  2. import android.content.Context;
  3. import android.content.res.AssetManager;
  4. import android.database.Cursor;
  5. import android.database.sqlite.SQLiteDatabase;
  6. import android.database.sqlite.SQLiteOpenHelper;
  7. import com.nimbits.client.model.Const;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.io.OutputStream;
  12. import java.util.Locale;
  13. public class DatabaseHelperImpl extends SQLiteOpenHelper implements DatabaseHelper {
  14. //The Android's default system path of your application database.
  15. // private SQLiteDatabase myDataBase;
  16. private final Context myContext;
  17. public DatabaseHelperImpl(Context context) {
  18. super(context, Const.ANDROID_DB_NAME, null, 1);
  19. this.myContext = context;
  20. }
  21. boolean dbFileExists() {
  22. java.io.File file = new java.io.File(Const.ANDROID_DB_PATH + Const.ANDROID_DB_NAME);
  23. return file.exists();
  24. }
  25. @Override
  26. public boolean checkDatabase() {
  27. if (! dbFileExists()) {
  28. try {
  29. dbCreate();
  30. return true;
  31. } catch (IOException e) {
  32. return false;
  33. }
  34. }
  35. else {
  36. return true;
  37. }
  38. }
  39. @Override
  40. public boolean isDatabaseEmpty() {
  41. SQLiteDatabase db1 = getDB(false);
  42. final Cursor c = db1.query(Const.ANDROID_TABLE_LEVEL_TWO_DISPLAY, new String[] {"_id", Const.ANDROID_COL_CATEGORY, Const.ANDROID_COL_DESCRIPTION, Const.ANDROID_COL_DISPLAY_TYPE}, null , null, null, null, Const.ANDROID_COL_DISPLAY_TYPE);
  43. final boolean retVal = c.isAfterLast();
  44. c.close();
  45. db1.close();
  46. return retVal;
  47. }
  48. void dbCreate() throws IOException {
  49. final AssetManager assetManager = myContext.getAssets();
  50. this.getWritableDatabase();
  51. final InputStream myInput =assetManager.open(Const.ANDROID_DB_NAME);
  52. final String outFileName = Const.ANDROID_DB_PATH + Const.ANDROID_DB_NAME;
  53. final OutputStream myOutput = new FileOutputStream(outFileName);
  54. final byte[] buffer = new byte[1024];
  55. int length;
  56. while ((length = myInput.read(buffer))>0){
  57. myOutput.write(buffer, 0, length);
  58. }
  59. myOutput.flush();
  60. myOutput.close();
  61. myInput.close();
  62. }
  63. public SQLiteDatabase getDB(boolean writable) {
  64. // DatabaseHelperImpl myDbHelper = new DatabaseHelperImpl(c);
  65. SQLiteDatabase db1;
  66. if (writable) {
  67. db1 = getWritableDatabase();
  68. }
  69. else {
  70. db1 = getReadableDatabase();
  71. }
  72. db1.setVersion(1);
  73. db1.setLocale(Locale.getDefault());
  74. db1.setLockingEnabled(false);
  75. return db1;
  76. }
  77. @Override
  78. public synchronized void close() {
  79. super.close();
  80. }
  81. @Override
  82. public void onCreate(SQLiteDatabase db) {
  83. }
  84. @Override
  85. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  86. }
  87. }