From fa5489321d03daae590830b0a728a6f60aeef357 Mon Sep 17 00:00:00 2001 From: kd7uiy Date: Thu, 21 Nov 2013 18:49:26 -0500 Subject: [PATCH 1/2] Adds capability to get Database Path Also changed the default type of this package to library. --- core/project.properties | 1 + .../sqliteasset/SQLiteAssetHelper.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/core/project.properties b/core/project.properties index ea89160..a2de03e 100755 --- a/core/project.properties +++ b/core/project.properties @@ -9,3 +9,4 @@ # Project target. target=android-8 +android.library=true diff --git a/core/src/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java b/core/src/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java index 6fba5f2..f3c04bb 100755 --- a/core/src/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java +++ b/core/src/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java @@ -342,6 +342,15 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { public void setForcedUpgradeVersion(int version) { mForcedUpgradeVersion = version; } + + /** + * Returns the full database path. Useful when attaching other databases + * + * @return Full Database Path + */ + public String getDatabasePath(){ + return mDatabasePath + "/" + mName; + } private SQLiteDatabase createOrOpenDatabase(boolean force) throws SQLiteAssetException { SQLiteDatabase db = returnDatabase(); @@ -363,7 +372,7 @@ private SQLiteDatabase createOrOpenDatabase(boolean force) throws SQLiteAssetExc private SQLiteDatabase returnDatabase(){ try { - SQLiteDatabase db = SQLiteDatabase.openDatabase(mDatabasePath + "/" + mName, mFactory, SQLiteDatabase.OPEN_READWRITE); + SQLiteDatabase db = SQLiteDatabase.openDatabase(getDatabasePath(), mFactory, SQLiteDatabase.OPEN_READWRITE); Log.i(TAG, "successfully opened database " + mName); return db; } catch (SQLiteException e) { From 4a8481ea698ed507ca89f095d80a06d8518a49c5 Mon Sep 17 00:00:00 2001 From: kd7uiy Date: Thu, 21 Nov 2013 20:13:06 -0500 Subject: [PATCH 2/2] Added library as well --- lib/android-sqlite-asset-helper.jar | Bin 12314 -> 8194 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/android-sqlite-asset-helper.jar b/lib/android-sqlite-asset-helper.jar index b05b0f5310eaac1493fcc52e575ec28eb86a68ce..5ce7697e3a74cf5aab6efe17c5d0c73378ea9073 100644 GIT binary patch delta 7446 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

p~x^jnU10ylRb8o^$tKE=`P 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