From 7b2966220b258cc2f1becae3ff91ef62a36cc01b Mon Sep 17 00:00:00 2001 From: Damyan Ivanov Date: Tue, 8 Jan 2019 19:38:24 +0000 Subject: [PATCH] skip comments while parsing transactions --- .../async/RetrieveTransactionsTask.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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 508190c7..7b898593 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java @@ -51,12 +51,13 @@ import java.util.regex.Pattern; public class RetrieveTransactionsTask extends AsyncTask { public static final int MATCHING_TRANSACTIONS_LIMIT = 50; + public static final Pattern commentPattern = Pattern.compile("^\\s*;"); private static final Pattern transactionStartPattern = Pattern.compile("([\\d.-]+)"); private static final Pattern transactionDescriptionPattern = Pattern.compile(" contextRef; protected int error; @@ -144,6 +145,12 @@ public class RetrieveTransactionsTask while ((line = buf.readLine()) != null) { throwIfCancelled(); Matcher m; + m = commentPattern.matcher(line); + if (m.find()) { + // TODO: comments are ignored for now + Log.v("transaction-parser", "Ignoring comment"); + continue; + } //L(String.format("State is %d", updating)); switch (state) { case EXPECTING_ACCOUNT: @@ -297,9 +304,9 @@ public class RetrieveTransactionsTask L(String.format("%d: %s = %s", transaction.getId(), acc_name, amount)); } - else throw new IllegalStateException( - String.format("Can't parse transaction %d details", - transactionId)); + else throw new IllegalStateException(String.format( + "Can't parse transaction %d " + "details: %s", + transactionId, line)); } break; default: -- 2.39.5