/*
- * Copyright © 2019 Damyan Ivanov.
+ * Copyright © 2020 Damyan Ivanov.
* This file is part of MoLe.
* MoLe is free software: you can distribute it and/or modify it
* under the term of the GNU General Public License as published by
import net.ktnx.mobileledger.utils.Globals;
import net.ktnx.mobileledger.utils.Logger;
import net.ktnx.mobileledger.utils.NetworkUtil;
+import net.ktnx.mobileledger.utils.SimpleDate;
import net.ktnx.mobileledger.utils.UrlEncodedFormData;
import java.io.BufferedReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.nio.charset.StandardCharsets;
-import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import static android.os.SystemClock.sleep;
import static net.ktnx.mobileledger.utils.Logger.debug;
+/* TODO: get rid of the custom session/cookie and auth code?
+ * (the last problem with the POST was the missing content-length header)
+ * This will resolve itself when hledger-web 1.14+ is released with Debian/stable,
+ * at which point the HTML form emulation can be dropped entirely
+ */
+
public class SendTransactionTask extends AsyncTask<LedgerTransaction, Void, Void> {
private final TaskCallback taskCallback;
protected String error;
if (token != null)
params.addPair("_token", token);
- Date transactionDate = ltr.getDate();
+ SimpleDate transactionDate = ltr.getDate();
if (transactionDate == null) {
- transactionDate = new GregorianCalendar().getTime();
+ transactionDate = SimpleDate.today();
}
params.addPair("date", Globals.formatLedgerDate(transactionDate));
if (!send_1_15_OK()) {
Logger.debug("network", "Version 1.5 request failed. Trying with 1.14");
if (!send_1_14_OK()) {
- Logger.debug("network", "Version 1.14 failed too. Trying HTML form emulation");
+ Logger.debug("network",
+ "Version 1.14 failed too. Trying HTML form emulation");
legacySendOkWithRetry();
}
else {
while (!legacySendOK()) {
tried++;
if (tried >= 2)
- throw new IOException(
- String.format("aborting after %d tries", tried));
+ throw new IOException(String.format("aborting after %d tries", tried));
sleep(100);
}
}