diff options
author | Martin Fietz <Martin.Fietz@gmail.com> | 2015-11-26 17:02:21 +0100 |
---|---|---|
committer | Martin Fietz <Martin.Fietz@gmail.com> | 2015-11-26 19:46:14 +0100 |
commit | ec03d548f021ce7a63a010bd7693687b8bd9ca6b (patch) | |
tree | 2c95dd9f6fc08052f68a951d0357c4bd5637ca0c /core/src/main/java/de/danoeh | |
parent | 719075bbf90c595e220b52805c4a0c6c75b9b60e (diff) | |
download | AntennaPod-ec03d548f021ce7a63a010bd7693687b8bd9ca6b.zip |
Enable sqlite WAL
Diffstat (limited to 'core/src/main/java/de/danoeh')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java | 18 |
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() { |