+ public synchronized static void scheduleTransactionListRetrieval(MainActivity activity) {
+ if (retrieveTransactionsTask != null) {
+ Logger.debug("db", "Ignoring request for transaction retrieval - already active");
+ return;
+ }
+ MobileLedgerProfile pr = profile.getValue();
+ if (pr == null) throw new IllegalStateException("No current profile");
+
+ retrieveTransactionsTask =
+ new RetrieveTransactionsTask(new WeakReference<>(activity), 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;
+ }