X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FMLDB.java;h=178b7b2017484f6e93fa16bf09a60dbc8671b76e;hb=0ce370cea3c5c980b6eeb14acf965188ae951f51;hp=a449e466917262731d1af8be74b536d9b0679ca2;hpb=1c9558f39ac9b1ea8e18a5afeba374e91c95ea2f;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java b/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java index a449e466..178b7b20 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java @@ -73,19 +73,21 @@ public final class MLDB { @Override protected String doInBackground(Void... params) { SQLiteDatabase db = App.getDatabase(); - try (Cursor cursor = db - .rawQuery("select value from options where profile = ? and name=?", - new String[]{NO_PROFILE, name})) + try (Cursor cursor = db.rawQuery( + "select value from options where profile=? and name=?", + new String[]{NO_PROFILE, name})) { if (cursor.moveToFirst()) { String result = cursor.getString(0); - if (result == null) result = defaultValue; + if (result == null) + result = defaultValue; debug("async-db", "option " + name + "=" + result); return result; } - else return defaultValue; + else + return defaultValue; } catch (Exception e) { debug("db", "returning default value for " + name, e); @@ -103,18 +105,20 @@ public final class MLDB { static public String getOption(String name, String default_value) { debug("db", "about to fetch option " + name); SQLiteDatabase db = App.getDatabase(); - try (Cursor cursor = db.rawQuery("select value from options where profile = ? and name=?", + try (Cursor cursor = db.rawQuery("select value from options where profile=? and name=?", new String[]{NO_PROFILE, name})) { if (cursor.moveToFirst()) { String result = cursor.getString(0); - if (result == null) result = default_value; + if (result == null) + result = default_value; debug("db", "option " + name + "=" + result); return result; } - else return default_value; + else + return default_value; } catch (Exception e) { debug("db", "returning default value for " + name, e); @@ -151,16 +155,17 @@ public final class MLDB { adapter.setStringConversionColumn(1); FilterQueryProvider provider = constraint -> { - if (constraint == null) return null; + if (constraint == null) + return null; - String str = constraint.toString().toUpperCase(); + String str = constraint.toString() + .toUpperCase(); debug("autocompletion", "Looking for " + str); String sql; String[] params; if (profileSpecific) { - MobileLedgerProfile p = (profile == null) ? Data.profile.getValue() : profile; - if (p == null) throw new AssertionError(); + MobileLedgerProfile p = (profile == null) ? Data.getProfile() : profile; sql = String.format( "SELECT rowid as _id, %s, CASE WHEN %s_upper LIKE ?||'%%' THEN 1 " + "WHEN %s_upper LIKE '%%:'||?||'%%' then 2 " + @@ -189,8 +194,10 @@ public final class MLDB { view.setAdapter(adapter); - if (callback != null) view.setOnItemClickListener((parent, itemView, position, id) -> { - callback.descriptionSelected(String.valueOf(view.getText())); + if (callback != null) + view.setOnItemClickListener( + (parent, itemView, position, id) -> callback.descriptionSelected( + String.valueOf(view.getText()))); } public static void queryInBackground(@NonNull String statement, @NonNull String[] params, @NonNull CallbackHelper callbackHelper) { @@ -226,6 +233,12 @@ public final class MLDB { @SuppressWarnings("WeakerAccess") abstract public static class CallbackHelper { public void onStart() {} + public abstract boolean onRow(@NonNull Cursor cursor); + public void onNoRows() {} + public void onException(Exception exception) { + Logger.debug("MLDB", "Exception in asynchronous SQL", exception); + } + public void onDone() {} } }