X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FRetrieveTransactionsTask.java;h=207793bbaa7fdc176968cfd5f5d05b2addd1b559;hp=2ff41c3f7ac894e420942cea6b268934535da713;hb=1c42b2e42a6fe3fe2aaae3ad3480d924db75f4ba;hpb=c1836370cc323b507ac7901124a47fc38931e055 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 2ff41c3f..207793bb 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java @@ -21,7 +21,6 @@ import android.annotation.SuppressLint; import android.database.sqlite.SQLiteDatabase; import android.os.AsyncTask; import android.os.OperationCanceledException; -import android.util.Log; import net.ktnx.mobileledger.err.HTTPException; import net.ktnx.mobileledger.json.AccountListParser; @@ -50,14 +49,17 @@ import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.util.ArrayList; import java.util.HashMap; +import java.util.Locale; import java.util.Stack; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static net.ktnx.mobileledger.utils.Logger.debug; + public class RetrieveTransactionsTask extends AsyncTask { - private static final int MATCHING_TRANSACTIONS_LIMIT = 50; + private static final int MATCHING_TRANSACTIONS_LIMIT = 150; private static final Pattern reComment = Pattern.compile("^\\s*;"); private static final Pattern reTransactionStart = Pattern.compile("([\\d.-]+)"); @@ -76,7 +78,7 @@ public class RetrieveTransactionsTask this.contextRef = contextRef; } private static void L(String msg) { - //Log.d("transaction-parser", msg); + //debug("transaction-parser", msg); } @Override protected void onProgressUpdate(Progress... values) { @@ -151,7 +153,7 @@ public class RetrieveTransactionsTask m = reComment.matcher(line); if (m.find()) { // TODO: comments are ignored for now - Log.v("transaction-parser", "Ignoring comment"); +// Log.v("transaction-parser", "Ignoring comment"); continue; } //L(String.format("State is %d", updating)); @@ -265,7 +267,8 @@ public class RetrieveTransactionsTask if (m.find()) { transactionId = Integer.valueOf(m.group(1)); state = ParserState.EXPECTING_TRANSACTION_DESCRIPTION; - L(String.format("found transaction %d → expecting description", + L(String.format(Locale.ENGLISH, + "found transaction %d → expecting description", transactionId)); progress.setProgress(++processedTransactionCount); if (maxTransactionId < transactionId) @@ -302,9 +305,9 @@ public class RetrieveTransactionsTask return String.format("Error parsing date '%s'", date); } state = ParserState.EXPECTING_TRANSACTION_DETAILS; - L(String.format("transaction %d created for %s (%s) →" + - " expecting details", transactionId, date, - m.group(2))); + L(String.format(Locale.ENGLISH, + "transaction %d created for %s (%s) →" + + " expecting details", transactionId, date, m.group(2))); } break; @@ -355,8 +358,8 @@ public class RetrieveTransactionsTask transaction.addAccount( new LedgerTransactionAccount(acc_name, Float.valueOf(amount), currency)); - L(String.format("%d: %s = %s", transaction.getId(), - acc_name, amount)); + L(String.format(Locale.ENGLISH, "%d: %s = %s", + transaction.getId(), acc_name, amount)); } else throw new IllegalStateException(String.format( "Can't parse transaction %d " + "details: %s", @@ -526,14 +529,14 @@ public class RetrieveTransactionsTask if (transactionOrder == DetectedTransactionOrder.UNKNOWN) { if (orderAccumulator > 30) { transactionOrder = DetectedTransactionOrder.FILE; - Log.d("rtt", String.format( + debug("rtt", String.format(Locale.ENGLISH, "Detected native file order after %d transactions (factor %d)", processedTransactionCount, orderAccumulator)); progress.setTotal(Data.transactions.size()); } else if (orderAccumulator < -30) { transactionOrder = DetectedTransactionOrder.REVERSE_CHRONOLOGICAL; - Log.d("rtt", String.format( + debug("rtt", String.format(Locale.ENGLISH, "Detected reverse chronological order after %d transactions (factor %d)", processedTransactionCount, orderAccumulator)); } @@ -584,12 +587,11 @@ public class RetrieveTransactionsTask return true; } - ; @SuppressLint("DefaultLocale") @Override protected String doInBackground(Void... params) { MobileLedgerProfile profile = Data.profile.get(); - Data.backgroundTaskCount.incrementAndGet(); + Data.backgroundTaskStarted(); try { if (!retrieveAccountList(profile) || !retrieveTransactionList(profile)) return retrieveTransactionListLegacy(profile); @@ -616,7 +618,7 @@ public class RetrieveTransactionsTask return "Operation cancelled"; } finally { - Data.backgroundTaskCount.decrementAndGet(); + Data.backgroundTaskFinished(); } } private MainActivity getContext() {