From bbf51ad7f5f12cbc725cac793282d6fedde1d60b Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 3 Feb 2012 10:39:43 -0800 Subject: [PATCH] Try to manually open the database without localised collation. --- src/com/morphoss/acal/database/AcalDBHelper.java | 28 ++++++++++++++++++++++ .../acal/database/DatabaseTableManager.java | 8 +++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/com/morphoss/acal/database/AcalDBHelper.java b/src/com/morphoss/acal/database/AcalDBHelper.java index 18ed005..c72b76f 100755 --- a/src/com/morphoss/acal/database/AcalDBHelper.java +++ b/src/com/morphoss/acal/database/AcalDBHelper.java @@ -246,6 +246,8 @@ public class AcalDBHelper extends SQLiteOpenHelper { +",closed BOOLEAN" +");"; + private Context context; + /** * Visible single argument constructor. Calls super with default values. * @@ -254,6 +256,7 @@ public class AcalDBHelper extends SQLiteOpenHelper { */ public AcalDBHelper (Context context) { super (context, DB_NAME+".db", null, DB_VERSION); + this.context = context; } /** @@ -410,4 +413,29 @@ public class AcalDBHelper extends SQLiteOpenHelper { // Log.e(TAG,"Database opened: "); // Thread.dumpStack(); } + + + public SQLiteDatabase getAcalReadableDatabase() { + try { + return SQLiteDatabase.openDatabase(context.getDatabasePath(DB_NAME+".db").toString(), null, + SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS); + } + catch( Exception e) { + Log.w(TAG,Log.getStackTraceString(e)); + } + return getReadableDatabase(); + } + + + public SQLiteDatabase getAcalWritableDatabase() { + try { + return SQLiteDatabase.openDatabase(context.getDatabasePath(DB_NAME+".db").toString(), null, + SQLiteDatabase.OPEN_READWRITE | SQLiteDatabase.NO_LOCALIZED_COLLATORS); + } + catch( Exception e) { + Log.w(TAG,Log.getStackTraceString(e)); + } + return getReadableDatabase(); + } + } diff --git a/src/com/morphoss/acal/database/DatabaseTableManager.java b/src/com/morphoss/acal/database/DatabaseTableManager.java index e8c6c88..9c65d02 100644 --- a/src/com/morphoss/acal/database/DatabaseTableManager.java +++ b/src/com/morphoss/acal/database/DatabaseTableManager.java @@ -134,13 +134,13 @@ public abstract class DatabaseTableManager { if (Constants.debugDatabaseManager && Constants.LOG_DEBUG) Log.println(Constants.LOGD,TAG,"DB:"+this.getTableName()+" OPEN_READ:"); if (Constants.debugDatabaseManager && Constants.LOG_VERBOSE) printStackTraceInfo(Log.VERBOSE); saveStackTraceInfo(); - db = dbHelper.getReadableDatabase(); + db = dbHelper.getAcalReadableDatabase(); break; case OPEN_WRITE: if (Constants.debugDatabaseManager && Constants.LOG_DEBUG) Log.println(Constants.LOGD,TAG,"DB:"+this.getTableName()+" OPEN_WRITE:"); if (Constants.debugDatabaseManager && Constants.LOG_VERBOSE) printStackTraceInfo(Log.VERBOSE); saveStackTraceInfo(); - db = dbHelper.getWritableDatabase(); + db = dbHelper.getAcalWritableDatabase(); break; case OPEN_READTX: if (Constants.debugDatabaseManager && Constants.LOG_DEBUG) Log.println(Constants.LOGD,TAG,"DB:"+this.getTableName()+" OPEN_READTX:"); @@ -148,14 +148,14 @@ public abstract class DatabaseTableManager { if (Constants.debugDatabaseManager && Constants.LOG_VERBOSE) printStackTraceInfo(Log.VERBOSE); inTx = true; inReadTx = true; - db = dbHelper.getReadableDatabase(); + db = dbHelper.getAcalReadableDatabase(); break; case OPEN_WRITETX: if (Constants.debugDatabaseManager && Constants.LOG_DEBUG) Log.println(Constants.LOGD,TAG,"DB:"+this.getTableName()+" OPEN_WRITETX:"); saveStackTraceInfo(); if (Constants.debugDatabaseManager && Constants.LOG_VERBOSE) printStackTraceInfo(Log.VERBOSE); inTx = true; - db = dbHelper.getWritableDatabase(); + db = dbHelper.getAcalWritableDatabase(); db.beginTransaction(); break; default: -- 2.11.4.GIT