X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FUpdateTransactionsTask.java;h=bb3d3dde82fe94fa14d632b71f2a201d262ef239;hp=b039b115316e17d842d58318564c238640901e62;hb=217da55a224e2ae899d0b50604e2e54f882ec04f;hpb=e12bae55fb75c0c30055dd34ded195e75feb3844 diff --git a/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java b/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java index b039b115..bb3d3dde 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java @@ -1,18 +1,18 @@ /* - * Copyright © 2019 Damyan Ivanov. - * This file is part of Mobile-Ledger. - * Mobile-Ledger is free software: you can distribute it and/or modify it + * 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 * the Free Software Foundation, either version 3 of the License, or * (at your opinion), any later version. * - * Mobile-Ledger is distributed in the hope that it will be useful, + * MoLe is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License terms for details. * * You should have received a copy of the GNU General Public License - * along with Mobile-Ledger. If not, see . + * along with MoLe. If not, see . */ package net.ktnx.mobileledger.async; @@ -20,22 +20,26 @@ package net.ktnx.mobileledger.async; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.AsyncTask; -import android.util.Log; +import net.ktnx.mobileledger.App; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.LedgerTransaction; +import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.model.TransactionListItem; -import net.ktnx.mobileledger.utils.Globals; -import net.ktnx.mobileledger.utils.MLDB; +import net.ktnx.mobileledger.utils.SimpleDate; import java.util.ArrayList; -import java.util.Date; -import java.util.List; -public class UpdateTransactionsTask extends AsyncTask> { - protected List doInBackground(String[] filterAccName) { - Data.backgroundTaskCount.incrementAndGet(); - String profile_uuid = Data.profile.get().getUuid(); +import static net.ktnx.mobileledger.utils.Logger.debug; + +public class UpdateTransactionsTask extends AsyncTask { + protected String doInBackground(String[] filterAccName) { + final MobileLedgerProfile profile = Data.profile.getValue(); + if (profile == null) + return "Profile not configured"; + + String profile_uuid = profile.getUuid(); + Data.backgroundTaskStarted(); try { ArrayList newList = new ArrayList<>(); @@ -43,52 +47,54 @@ public class UpdateTransactionsTask extends AsyncTask 0 ORDER BY tr.date desc, tr.id desc"; + ".amount <> 0 ORDER BY tr.year desc, tr.month desc, tr.day desc, tr.id " + + "desc"; params = new String[]{profile_uuid, filterAccName[0]}; } - Log.d("UTT", sql); - SQLiteDatabase db = MLDB.getReadableDatabase(); - Date lastDate = null; + debug("UTT", sql); + SQLiteDatabase db = App.getDatabase(); + boolean odd = true; + SimpleDate lastDate = SimpleDate.today(); try (Cursor cursor = db.rawQuery(sql, params)) { while (cursor.moveToNext()) { - if (isCancelled()) return null; + if (isCancelled()) + return null; int transaction_id = cursor.getInt(0); - String dateString = cursor.getString(1); - Date date = Globals.parseLedgerDate(dateString); + SimpleDate date = + new SimpleDate(cursor.getInt(1), cursor.getInt(2), cursor.getInt(3)); - if ((lastDate == null) || !lastDate.equals(date)) { - boolean showMonth = (lastDate == null) || (date != null) && - (date.getMonth() != - lastDate.getMonth() || - date.getYear() != - lastDate.getYear()); + if (!date.equals(lastDate)) { + boolean showMonth = + (date.month != lastDate.month) || (date.year != lastDate.year); newList.add(new TransactionListItem(date, showMonth)); } - newList.add(new TransactionListItem(new LedgerTransaction(transaction_id))); -// Log.d("UTT", String.format("got transaction %d", transaction_id)); + newList.add( + new TransactionListItem(new LedgerTransaction(transaction_id), odd)); +// debug("UTT", String.format("got transaction %d", transaction_id)); lastDate = date; + odd = !odd; } - Data.transactions.set(newList); - Log.d("UTT", "transaction list value updated"); + Data.transactions.setList(newList); + debug("UTT", "transaction list value updated"); } - return newList; + return null; } finally { - Data.backgroundTaskCount.decrementAndGet(); + Data.backgroundTaskFinished(); } } }