X-Git-Url: https://git.ktnx.net/?p=mobile-ledger-staging.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FRetrieveTransactionsTask.java;h=3a882743d44fd9e2da9b63f8e5ff9666c22fa417;hp=6afe539b2ba242ac5e405e5a2624bb3dc530e678;hb=8e2732de0b27c0d992d5e1b9a310729ad5e2edb7;hpb=2e72df8e16ccc74c0bb5a878875b9f22cb66bd9c
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 6afe539b..3a882743 100644
--- a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java
+++ b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java
@@ -67,8 +67,9 @@ public class RetrieveTransactionsTask
"id=\"transaction-(\\d+)\">
([\\d.-]+) | ");
private static final Pattern reTransactionDescription =
Pattern.compile(" 0)) {
+ if ((currencyPost != null) && (currencyPost.length() > 0))
+ return null;
+ currency = currencyPre;
+ }
+ else if ((currencyPost != null) && (currencyPost.length() > 0)) {
+ currency = currencyPost;
+ }
+
+ amount = amount.replace(',', '.');
+
+ return new LedgerTransactionAccount(acc_name, Float.valueOf(amount), currency, null);
+ }
+ else {
+ return null;
+ }
+ }
@Override
protected void onProgressUpdate(Progress... values) {
super.onProgressUpdate(values);
@@ -363,18 +391,12 @@ public class RetrieveTransactionsTask
// }
}
else {
- m = reTransactionDetails.matcher(line);
- if (m.find()) {
- String postingStatus = m.group(1);
- String acc_name = m.group(2);
- String amount = m.group(3);
- String currency = m.group(4);
- if (currency == null) currency = "";
- amount = amount.replace(',', '.');
- transaction.addAccount(new LedgerTransactionAccount(acc_name,
- Float.valueOf(amount), currency, null));
+ LedgerTransactionAccount lta = parseTransactionAccountLine(line);
+ if (lta != null) {
+ transaction.addAccount(lta);
L(String.format(Locale.ENGLISH, "%d: %s = %s",
- transaction.getId(), acc_name, amount));
+ transaction.getId(), lta.getAccountName(),
+ lta.getAmount()));
}
else throw new IllegalStateException(
String.format("Can't parse transaction %d " + "details: %s",