X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FMobileLedgerDB.java;h=021ee45544c2eee4bf16a21cbf1970f1a1b3cbec;hb=9ea6b1d4b8092349d1a41049d89c698cb472dc85;hp=2254cae784be0ad64ec1d3b05a03adc0772837d7;hpb=2eef3d1f54426bcf8c769f5ececbb5300e975df6;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/MobileLedgerDB.java b/app/src/main/java/net/ktnx/mobileledger/MobileLedgerDB.java index 2254cae7..021ee455 100644 --- a/app/src/main/java/net/ktnx/mobileledger/MobileLedgerDB.java +++ b/app/src/main/java/net/ktnx/mobileledger/MobileLedgerDB.java @@ -14,6 +14,8 @@ import java.util.Locale; class MobileLedgerDB { static final String DATABASE_NAME = "accounts"; static final String OPT_DB_REVISION = "db_revision"; + static final String ACCOUNTS_TABLE = "accounts"; + static final String DESCRIPTION_HISTORY_TABLE = "description_history"; private static String db_filename; static SQLiteDatabase db; @@ -25,20 +27,9 @@ class MobileLedgerDB { MobileLedgerDB.db_filename = db_filename; } - static void initDB() { + static void initDB(Resources rm, String pkg_name) { db = SQLiteDatabase.openOrCreateDatabase(db_filename, null); - - db.execSQL("create table if not exists accounts(name varchar);"); - db.execSQL("create index if not exists idx_accounts_name on accounts(name);"); - 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);"); - db.execSQL("create table if not exists account_values(account varchar not null, currency varchar not null, value decimal(18,2) not null);"); - db.execSQL("create index if not exists idx_account_values_account on account_values(account);"); - db.execSQL("create unique index if not exists un_account_values on account_values(account,currency);"); - } - - static void applyRevisions(Resources rm, String pkg_name) { - int cur_ver = Integer.parseInt(get_option_value(OPT_DB_REVISION, "0")); + int cur_ver = Integer.parseInt(get_option_value(OPT_DB_REVISION, "-1")); Log.d("db", "Current DB revision is "+String.valueOf(cur_ver)); @@ -51,12 +42,12 @@ class MobileLedgerDB { private static boolean applyRevision(Resources rm, String pkg_name, int rev_no) { String rev_file = String.format(Locale.US, "sql_%d", rev_no); - db.beginTransaction(); int res_id = rm.getIdentifier(rev_file, "raw", pkg_name); if (res_id == 0) { Log.d("db", String.format(Locale.US, "No resource for revision %d", rev_no)); return false; } + db.beginTransaction(); try (InputStream res = rm.openRawResource(res_id)) { Log.d("db", "Applying revision " + String.valueOf(rev_no)); InputStreamReader isr = new InputStreamReader(res);