X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FMobileLedgerDB.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FMobileLedgerDB.java;h=0000000000000000000000000000000000000000;hb=0da12809143008ee7116162be26564e6e6a562cc;hp=021ee45544c2eee4bf16a21cbf1970f1a1b3cbec;hpb=9ea6b1d4b8092349d1a41049d89c698cb472dc85;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 deleted file mode 100644 index 021ee455..00000000 --- a/app/src/main/java/net/ktnx/mobileledger/MobileLedgerDB.java +++ /dev/null @@ -1,130 +0,0 @@ -package net.ktnx.mobileledger; - -import android.content.res.Resources; -import android.database.Cursor; -import android.database.SQLException; -import android.database.sqlite.SQLiteDatabase; -import android.util.Log; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -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; - - static String getDb_filename() { - return db_filename; - } - - static void setDb_filename(String db_filename) { - MobileLedgerDB.db_filename = db_filename; - } - - static void initDB(Resources rm, String pkg_name) { - db = SQLiteDatabase.openOrCreateDatabase(db_filename, null); - int cur_ver = Integer.parseInt(get_option_value(OPT_DB_REVISION, "-1")); - - Log.d("db", "Current DB revision is "+String.valueOf(cur_ver)); - - while (applyRevision(rm, pkg_name, cur_ver+1)) { - cur_ver++; - } - - Log.d("db", "Database revision is "+String.valueOf(cur_ver)+" now"); - } - private static boolean applyRevision(Resources rm, String pkg_name, int rev_no) { - String rev_file = String.format(Locale.US, "sql_%d", rev_no); - - 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); - BufferedReader reader = new BufferedReader(isr); - - String line; - while ((line = reader.readLine()) != null) { - db.execSQL(line); - } - - set_option_value(OPT_DB_REVISION, rev_no); - db.setTransactionSuccessful(); - } catch (Resources.NotFoundException e) { - Log.d("db", "SQL revision "+String.valueOf(rev_no)+" not found"); - return false; - } - catch (SQLException e) { - Log.e("db", String.format(Locale.US, "Error applying revision %d: %s", rev_no, e.getMessage())); - return false; - } - catch (Exception e) { - Log.w("db", "Error reading revision" + String.valueOf(rev_no)+": "+e.getMessage()); - return false; - } - finally { - db.endTransaction(); - } - - return true; - } - - 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)); - } -}