]> git.ktnx.net Git - mobile-ledger.git/commitdiff
off-load option setting DB update to the background work queue
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Fri, 3 May 2019 15:10:29 +0000 (18:10 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Fri, 3 May 2019 15:10:29 +0000 (18:10 +0300)
such an update may have to wait for the DB to complete any reads, like while
loading transaction data or even transaction data retrieval. that would lead
to UI freeze

delaying the update has no ill effects, since the data is needed only the next
time the app is run

app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java

index 9089b9e5d9ea9f21508feee9513c947443d64259..b3e1bf9f355216372009f7fd0ca9e4c9b518b8a4 100644 (file)
@@ -34,6 +34,7 @@ import android.widget.AutoCompleteTextView;
 import android.widget.FilterQueryProvider;
 import android.widget.SimpleCursorAdapter;
 
+import net.ktnx.mobileledger.async.DbOpQueue;
 import net.ktnx.mobileledger.async.DescriptionSelectedCallback;
 import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.model.MobileLedgerProfile;
@@ -114,8 +115,7 @@ public final class MLDB {
     }
     static public void setOption(String name, String value) {
         debug("option", String.format("%s := %s", name, value));
-        SQLiteDatabase db = MLDB.getDatabase();
-        db.execSQL("insert or replace into options(profile, name, value) values(?, ?, ?);",
+        DbOpQueue.add("insert or replace into options(profile, name, value) values(?, ?, ?);",
                 new String[]{NO_PROFILE, name, value});
     }
     static public void setLongOption(String name, long value) {