]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java
fix JSON account retrieval to supply the amounts to the new list
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / async / RetrieveTransactionsTask.java
index 8a75996cd2adf53c3aabe381964c0cd66f63e5d3..57a2739f70e066997907f6f1ed1935602b601540 100644 (file)
@@ -414,9 +414,26 @@ public class RetrieveTransactionsTask
                     else acc.removeAmounts();
 
                     profile.storeAccount(db, acc);
                     else acc.removeAmounts();
 
                     profile.storeAccount(db, acc);
+                    String lastCurrency = null;
+                    float lastCurrencyAmount = 0;
                     for (ParsedBalance b : parsedAccount.getAibalance()) {
                     for (ParsedBalance b : parsedAccount.getAibalance()) {
-                        profile.storeAccountValue(db, acc.getName(), b.getAcommodity(),
-                                b.getAquantity().asFloat());
+                        final String currency = b.getAcommodity();
+                        final float amount = b.getAquantity().asFloat();
+                        if (currency.equals(lastCurrency)) lastCurrencyAmount += amount;
+                        else {
+                            if (lastCurrency != null) {
+                                profile.storeAccountValue(db, acc.getName(), lastCurrency,
+                                        lastCurrencyAmount);
+                                acc.addAmount(lastCurrencyAmount, lastCurrency);
+                            }
+                            lastCurrency = currency;
+                            lastCurrencyAmount = amount;
+                        }
+                    }
+                    if (lastCurrency != null) {
+                        profile.storeAccountValue(db, acc.getName(), lastCurrency,
+                                lastCurrencyAmount);
+                        acc.addAmount(lastCurrencyAmount, lastCurrency);
                     }
 
                     if (acc.isVisible(accountList)) accountList.add(acc);
                     }
 
                     if (acc.isVisible(accountList)) accountList.add(acc);