X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FUpdateTransactionsTask.java;h=178db99fb473776bf4ad5cfaf71cf45724b58001;hp=0509f3531cd887236c7c61778d692635ed4709f5;hb=2e6d7c5f759986f89a867ee5b9162496019d5130;hpb=a1d55154e1c9fb72fcd60de31d6e64e8d046f96d diff --git a/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java b/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java index 0509f353..178db99f 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java @@ -32,36 +32,38 @@ import java.util.List; public class UpdateTransactionsTask extends AsyncTask> { protected List doInBackground(String[] filterAccName) { Data.backgroundTaskCount.incrementAndGet(); + String profile_uuid = Data.profile.get().getUuid(); try { ArrayList newList = new ArrayList<>(); - boolean hasFilter = (filterAccName != null) && (filterAccName.length > 0) && - (filterAccName[0] != null) && !filterAccName[0].isEmpty(); - String sql; String[] params; - sql = "SELECT id FROM transactions ORDER BY date desc, id desc"; - params = null; + if (filterAccName[0] == null) { + sql = "SELECT id FROM transactions WHERE profile=? ORDER BY date desc, id desc"; + params = new String[]{profile_uuid}; - if (hasFilter) { + } + else { sql = "SELECT distinct tr.id from transactions tr JOIN transaction_accounts ta " + - "ON ta.transaction_id=tr.id WHERE ta.account_name LIKE ?||'%' AND ta" + + "ON ta.transaction_id=tr.id AND ta.profile=tr.profile WHERE tr.profile=? " + + "and ta.account_name LIKE ?||'%' AND ta" + ".amount <> 0 ORDER BY tr.date desc, tr.id desc"; - params = filterAccName; + params = new String[]{profile_uuid, filterAccName[0]}; } - Log.d("tmp", sql); - try (SQLiteDatabase db = MLDB.getReadableDatabase()) { - try (Cursor cursor = db.rawQuery(sql, params)) { - while (cursor.moveToNext()) { - if (isCancelled()) return null; + Log.d("UTT", sql); + SQLiteDatabase db = MLDB.getReadableDatabase(); + try (Cursor cursor = db.rawQuery(sql, params)) { + while (cursor.moveToNext()) { + if (isCancelled()) return null; - newList.add(new LedgerTransaction(cursor.getInt(0))); - } - Data.transactions.set(newList); - Log.d("transactions", "transaction value updated"); + int transaction_id = cursor.getInt(0); + newList.add(new LedgerTransaction(transaction_id)); +// Log.d("UTT", String.format("got transaction %d", transaction_id)); } + Data.transactions.set(newList); + Log.d("UTT", "transaction list value updated"); } return newList;