summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2015-11-26 17:02:21 +0100
committerMartin Fietz <Martin.Fietz@gmail.com>2015-11-26 19:46:14 +0100
commitec03d548f021ce7a63a010bd7693687b8bd9ca6b (patch)
tree2c95dd9f6fc08052f68a951d0357c4bd5637ca0c /core/src
parent719075bbf90c595e220b52805c4a0c6c75b9b60e (diff)
downloadAntennaPod-ec03d548f021ce7a63a010bd7693687b8bd9ca6b.zip
Enable sqlite WAL
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
index a601f4a03..cea3e8147 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
@@ -10,6 +10,7 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.media.MediaMetadataRetriever;
+import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
@@ -18,7 +19,6 @@ import org.apache.commons.lang3.Validate;
import java.util.Arrays;
import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.event.ProgressEvent;
@@ -283,7 +283,7 @@ public class PodDBAdapter {
private SQLiteDatabase db;
private static Context context;
private static PodDBHelper dbHelper;
- private static AtomicInteger counter = new AtomicInteger(0);
+ private static int counter = 0;
public static void init(Context context) {
PodDBAdapter.context = context.getApplicationContext();
@@ -298,12 +298,15 @@ public class PodDBAdapter {
private PodDBAdapter() {}
- public PodDBAdapter open() {
- counter.incrementAndGet();
+ public synchronized PodDBAdapter open() {
+ counter++;
if (db == null || !db.isOpen() || db.isReadOnly()) {
Log.v(TAG, "Opening DB");
try {
db = dbHelper.getWritableDatabase();
+ if(Build.VERSION.SDK_INT >= 11) {
+ db.enableWriteAheadLogging();
+ }
} catch (SQLException ex) {
Log.e(TAG, Log.getStackTraceString(ex));
db = dbHelper.getReadableDatabase();
@@ -312,12 +315,13 @@ public class PodDBAdapter {
return this;
}
- public void close() {
- if(counter.decrementAndGet() == 0) {
+ public synchronized void close() {
+ counter--;
+ if(counter == 0) {
Log.v(TAG, "Closing DB");
db.close();
+ db = null;
}
- db = null;
}
public static boolean deleteDatabase() {