]> git.ktnx.net Git - mobile-ledger.git/commitdiff
methods for getting/setting options stored in the database
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Thu, 6 Dec 2018 20:40:50 +0000 (20:40 +0000)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Thu, 6 Dec 2018 20:40:50 +0000 (20:40 +0000)
app/src/main/java/net/ktnx/mobileledger/MobileLedgerDB.java

index 350f50183b6c6d149b61c04873d5b4e2abd52cf7..d8b84fe15372eb52f6b8c4bf378af8b093e3af93 100644 (file)
@@ -1,5 +1,6 @@
 package net.ktnx.mobileledger;
 
+import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 
 class MobileLedgerDB {
@@ -23,4 +24,53 @@ class MobileLedgerDB {
         db.execSQL("create table if not exists options(name varchar, value varchar);");
         db.execSQL("create unique index if not exists idx_options_name on options(name);");
     }
+
+    static int get_option_value(String name, int default_value) {
+        String s = get_option_value(name, String.valueOf(default_value));
+        try {
+            return Integer.parseInt(s);
+        }
+        catch (Exception e) {
+            return default_value;
+        }
+    }
+
+    static long get_option_value(String name, long default_value) {
+        String s = get_option_value(name, String.valueOf(default_value));
+        try {
+            return Long.parseLong(s);
+        }
+        catch (Exception e) {
+            Log.d("db", "returning default long value of "+name, e);
+            return default_value;
+        }
+    }
+
+    static String get_option_value(String name, String default_value) {
+        Log.d("db", "about fo fetch option "+name);
+        try (Cursor cursor = db.rawQuery("select value from options where name=?", new String[]{name})) {
+            if (cursor.moveToFirst()) {
+                String result = cursor.getString(0);
+
+                if (result == null ) result = default_value;
+
+                Log.d("db", "option "+name+"="+result);
+                return result;
+            }
+            else return default_value;
+        }
+        catch(Exception e) {
+            Log.d("db", "returning default value for "+name, e);
+            return default_value;
+        }
+    }
+
+    static void set_option_value(String name, String value) {
+        Log.d("db", "setting option "+name+"="+value);
+        db.execSQL("insert or replace into options(name, value) values(?, ?);", new String[]{name, value});
+    }
+
+    static void set_option_value(String name, long value) {
+        set_option_value(name, String.valueOf(value));
+    }
 }