1 package net.ktnx.mobileledger;
3 import android.database.Cursor;
4 import android.database.sqlite.SQLiteDatabase;
7 static final String DATABASE_NAME = "accounts";
8 private static String db_filename;
9 static SQLiteDatabase db;
11 static String getDb_filename() {
15 static void setDb_filename(String db_filename) {
16 MobileLedgerDB.db_filename = db_filename;
19 static void initDB() {
20 db = SQLiteDatabase.openOrCreateDatabase(db_filename, null);
22 db.execSQL("create table if not exists accounts(name varchar);");
23 db.execSQL("create index if not exists idx_accounts_name on accounts(name);");
24 db.execSQL("create table if not exists options(name varchar, value varchar);");
25 db.execSQL("create unique index if not exists idx_options_name on options(name);");
28 static int get_option_value(String name, int default_value) {
29 String s = get_option_value(name, String.valueOf(default_value));
31 return Integer.parseInt(s);
38 static long get_option_value(String name, long default_value) {
39 String s = get_option_value(name, String.valueOf(default_value));
41 return Long.parseLong(s);
44 Log.d("db", "returning default long value of "+name, e);
49 static String get_option_value(String name, String default_value) {
50 Log.d("db", "about fo fetch option "+name);
51 try (Cursor cursor = db.rawQuery("select value from options where name=?", new String[]{name})) {
52 if (cursor.moveToFirst()) {
53 String result = cursor.getString(0);
55 if (result == null ) result = default_value;
57 Log.d("db", "option "+name+"="+result);
60 else return default_value;
63 Log.d("db", "returning default value for "+name, e);
68 static void set_option_value(String name, String value) {
69 Log.d("db", "setting option "+name+"="+value);
70 db.execSQL("insert or replace into options(name, value) values(?, ?);", new String[]{name, value});
73 static void set_option_value(String name, long value) {
74 set_option_value(name, String.valueOf(value));