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=b8a341344fb478ab5d5202173c02a1b257e26923;hp=13941806240b07f42173e545dc3243b583b25270;hb=0bbdc409d82da31324c031f36607510f17d992e6;hpb=f1c7ebb302e87db829bf9d3ea157907aeb03b6d6
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 13941806..b8a34134 100644
--- a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java
+++ b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java
@@ -24,9 +24,9 @@ import android.os.AsyncTask;
import android.util.Log;
import net.ktnx.mobileledger.R;
-import net.ktnx.mobileledger.TransactionListActivity;
import net.ktnx.mobileledger.model.LedgerTransaction;
-import net.ktnx.mobileledger.model.LedgerTransactionItem;
+import net.ktnx.mobileledger.model.LedgerTransactionAccount;
+import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment;
import net.ktnx.mobileledger.utils.MLDB;
import net.ktnx.mobileledger.utils.NetworkUtil;
@@ -50,12 +50,12 @@ public class RetrieveTransactionsTask extends
private static final Pattern transactionDescriptionPattern =
Pattern.compile("
contextRef;
+ protected WeakReference contextRef;
protected int error;
private boolean success;
- public RetrieveTransactionsTask(WeakReference contextRef) {
+ public RetrieveTransactionsTask(WeakReference contextRef) {
this.contextRef = contextRef;
}
private static final void L(String msg) {
@@ -64,24 +64,31 @@ public class RetrieveTransactionsTask extends
@Override
protected void onProgressUpdate(Progress... values) {
super.onProgressUpdate(values);
- TransactionListActivity context = getContext();
+ TransactionListFragment context = getContext();
if (context == null) return;
context.onRetrieveProgress(values[0]);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
- TransactionListActivity context = getContext();
+ TransactionListFragment context = getContext();
if (context == null) return;
context.onRetrieveStart();
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
- TransactionListActivity context = getContext();
+ TransactionListFragment context = getContext();
if (context == null) return;
context.onRetrieveDone(success);
}
+ @Override
+ protected void onCancelled() {
+ super.onCancelled();
+ TransactionListFragment context = getContext();
+ if (context == null) return;
+ context.onRetrieveDone(false);
+ }
@SuppressLint("DefaultLocale")
@Override
protected Void doInBackground(Params... params) {
@@ -93,9 +100,9 @@ public class RetrieveTransactionsTask extends
NetworkUtil.prepare_connection(params[0].getBackendPref(), "journal");
http.setAllowUserInteraction(false);
publishProgress(progress);
- TransactionListActivity ctx = contextRef.get();
+ TransactionListFragment ctx = getContext();
if (ctx == null) return null;
- try (SQLiteDatabase db = MLDB.getWritableDatabase(ctx)) {
+ try (SQLiteDatabase db = MLDB.getWritableDatabase(ctx.getActivity())) {
try (InputStream resp = http.getInputStream()) {
if (http.getResponseCode() != 200) throw new IOException(
String.format("HTTP error %d", http.getResponseCode()));
@@ -214,9 +221,11 @@ public class RetrieveTransactionsTask extends
if (m.find()) {
String acc_name = m.group(1);
String amount = m.group(2);
+ String currency = m.group(3);
amount = amount.replace(',', '.');
- transaction.add_item(new LedgerTransactionItem(acc_name,
- Float.valueOf(amount)));
+ transaction.addAccount(
+ new LedgerTransactionAccount(acc_name,
+ Float.valueOf(amount), currency));
L(String.format("%s = %s", acc_name, amount));
}
else throw new IllegalStateException(
@@ -242,7 +251,8 @@ public class RetrieveTransactionsTask extends
if (success && !isCancelled()) {
Log.d("db", "Updating transaction list stamp");
- MLDB.set_option_value(ctx, MLDB.OPT_TRANSACTION_LIST_STAMP, new Date().getTime());
+ MLDB.set_option_value(ctx.getActivity(), MLDB.OPT_TRANSACTION_LIST_STAMP,
+ new Date().getTime());
ctx.model.reloadTransactions(ctx);
}
}
@@ -260,7 +270,7 @@ public class RetrieveTransactionsTask extends
}
return null;
}
- TransactionListActivity getContext() {
+ TransactionListFragment getContext() {
return contextRef.get();
}