X-Git-Url: https://git.ktnx.net/?p=mobile-ledger-staging.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FData.java;h=f0f3987789e56673285923eee2209dc915d10b13;hp=c538f57a2deb266ebf1f323c2d7993efd75d6d44;hb=8ca38438602c8addcbce91167d467e6da0ba962b;hpb=60c444f557ab404619a765279f4089402140aef4 diff --git a/app/src/main/java/net/ktnx/mobileledger/model/Data.java b/app/src/main/java/net/ktnx/mobileledger/model/Data.java index c538f57a..f0f39877 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/Data.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/Data.java @@ -19,7 +19,6 @@ package net.ktnx.mobileledger.model; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; -import android.os.AsyncTask; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -33,8 +32,7 @@ import net.ktnx.mobileledger.utils.LockHolder; import net.ktnx.mobileledger.utils.Locker; import net.ktnx.mobileledger.utils.Logger; import net.ktnx.mobileledger.utils.MLDB; -import net.ktnx.mobileledger.utils.ObservableList; -import net.ktnx.mobileledger.utils.SimpleDate; +import net.ktnx.mobileledger.utils.ObservableValue; import java.text.NumberFormat; import java.util.ArrayList; @@ -47,31 +45,28 @@ import java.util.concurrent.atomic.AtomicInteger; import static net.ktnx.mobileledger.utils.Logger.debug; public final class Data { - public static final ObservableList transactions = - new ObservableList<>(new ArrayList<>()); - public static final MutableLiveData earliestTransactionDate = - new MutableLiveData<>(null); - public static final MutableLiveData latestTransactionDate = - new MutableLiveData<>(null); public static final MutableLiveData backgroundTasksRunning = new MutableLiveData<>(false); public static final MutableLiveData backgroundTaskProgress = new MutableLiveData<>(); - public static final MutableLiveData lastUpdateDate = new MutableLiveData<>(); public static final MutableLiveData> profiles = new MutableLiveData<>(null); - public static final MutableLiveData accountFilter = new MutableLiveData<>(); public static final MutableLiveData currencySymbolPosition = new MutableLiveData<>(); public static final MutableLiveData currencyGap = new MutableLiveData<>(true); public static final MutableLiveData locale = new MutableLiveData<>(); public static final MutableLiveData drawerOpen = new MutableLiveData<>(false); + public static final MutableLiveData lastUpdateDate = new MutableLiveData<>(null); + public static final MutableLiveData lastUpdateTransactionCount = + new MutableLiveData<>(0); + public static final MutableLiveData lastUpdateAccountCount = new MutableLiveData<>(0); + public static final ObservableValue lastTransactionsUpdateText = + new ObservableValue<>(); + public static final ObservableValue lastAccountsUpdateText = new ObservableValue<>(); private static final MutableLiveData profile = new InertMutableLiveData<>(); private static final AtomicInteger backgroundTaskCount = new AtomicInteger(0); private static final Locker profilesLocker = new Locker(); - public static MutableLiveData foundTransactionItemIndex = new MutableLiveData<>(null); - private static RetrieveTransactionsTask retrieveTransactionsTask; static { locale.setValue(Locale.getDefault()); @@ -97,9 +92,12 @@ public final class Data { } public static void setCurrentProfile(@NonNull MobileLedgerProfile newProfile) { MLDB.setOption(MLDB.OPT_PROFILE_UUID, newProfile.getUuid()); - stopTransactionsRetrieval(); profile.setValue(newProfile); } + public static void postCurrentProfile(@NonNull MobileLedgerProfile newProfile) { + MLDB.setOption(MLDB.OPT_PROFILE_UUID, newProfile.getUuid()); + profile.postValue(newProfile); + } public static int getProfileIndex(MobileLedgerProfile profile) { try (LockHolder ignored = profilesLocker.lockForReading()) { List prList = profiles.getValue(); @@ -165,29 +163,6 @@ public final class Data { } return profile; } - public synchronized static void scheduleTransactionListRetrieval() { - if (retrieveTransactionsTask != null) { - Logger.debug("db", "Ignoring request for transaction retrieval - already active"); - return; - } - MobileLedgerProfile pr = profile.getValue(); - if (pr == null) { - Logger.debug("ui", "Ignoring refresh -- no current profile"); - return; - } - - retrieveTransactionsTask = new RetrieveTransactionsTask(profile.getValue()); - Logger.debug("db", "Created a background transaction retrieval task"); - - retrieveTransactionsTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - public static synchronized void stopTransactionsRetrieval() { - if (retrieveTransactionsTask != null) - retrieveTransactionsTask.cancel(false); - } - public static void transactionRetrievalDone() { - retrieveTransactionsTask = null; - } public static void refreshCurrencyData(Locale locale) { NumberFormat formatter = NumberFormat.getCurrencyInstance(locale); java.util.Currency currency = formatter.getCurrency(); @@ -229,6 +204,7 @@ public final class Data { MobileLedgerProfile startupProfile = getProfile(profileUUID); if (startupProfile != null) setCurrentProfile(startupProfile); + Logger.debug("profile", "initProfile() returning " + startupProfile); return startupProfile; }