X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FRetrieveTransactionsTask.java;h=93132545d87dde15bb0dbdd1e5250b75212af25a;hb=0699ca1aaa0980079482d7479fabc4b159c9cc6f;hp=2e3ca764d9897b1adecf718dd814d2e7b914ae8e;hpb=a983099d6150044a08a1fbc601d9af9bd8d0c0a8;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java index 2e3ca764..93132545 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java @@ -101,8 +101,8 @@ public class RetrieveTransactionsTask extends String.format("HTTP error %d", http.getResponseCode())); db.beginTransaction(); try { - String root = params[0].getAccountsRoot(); db.execSQL("DELETE FROM transactions;"); + db.execSQL("DELETE FROM transaction_accounts"); int state = ParserState.EXPECTING_JOURNAL; String line; @@ -114,6 +114,8 @@ public class RetrieveTransactionsTask extends LedgerTransaction transaction = null; LINES: while ((line = buf.readLine()) != null) { + if (isCancelled()) break; + if (!line.isEmpty() && (line.charAt(0) == ' ')) continue; Matcher m; L(String.format("State is %d", state)); switch (state) { @@ -167,6 +169,14 @@ public class RetrieveTransactionsTask extends state = ParserState.EXPECTING_TRANSACTION; L(String.format("transaction %s saved → expecting " + "transaction", transaction.getId())); + +// sounds like a good idea, but transaction-1 may not be the first one chronologically +// for example, when you add the initial seeding transaction after entering some others +// if (transactionId == 1) { +// L("This was the initial transaction. Terminating " + +// "parser"); +// break LINES; +// } } else { m = transactionDetailsPattern.matcher(line); @@ -189,7 +199,7 @@ public class RetrieveTransactionsTask extends state)); } } - db.setTransactionSuccessful(); + if (!isCancelled()) db.setTransactionSuccessful(); } finally { db.endTransaction();