X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Ftransaction_list%2FTransactionListFragment.java;h=a15650ae912df4975ffe0d7dadd1651d5c8c3792;hp=c84da7921b6ab343b2dbaed5033fd897e00d8466;hb=198f2762d2236a57cec413322c0bde6985ead88a;hpb=a1d55154e1c9fb72fcd60de31d6e64e8d046f96d diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java index c84da792..a15650ae 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java @@ -55,8 +55,17 @@ public class TransactionListFragment extends MobileLedgerListFragment { private MenuItem menuTransactionListFilter; private View vAccountFilter; private AutoCompleteTextView accNameFilter; + private Observer backgroundTaskCountObserver; private static void update(Observable o, Object arg) { } + @Override + public void onDestroy() { + if (backgroundTaskCountObserver != null) { + Log.d("rtl", "destroying background task count observer"); + Data.backgroundTaskCount.deleteObserver(backgroundTaskCountObserver); + } + super.onDestroy(); + } public void setShowOnlyAccountName(String mShowOnlyAccountName) { this.mShowOnlyAccountName = mShowOnlyAccountName; if (modelAdapter != null) { @@ -80,6 +89,19 @@ public class TransactionListFragment extends MobileLedgerListFragment { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); + if (backgroundTaskCountObserver == null) { + Log.d("rtl", "creating background task count observer"); + Data.backgroundTaskCount.addObserver(backgroundTaskCountObserver = new Observer() { + @Override + public void update(Observable o, Object arg) { + mActivity.runOnUiThread(() -> { + int cnt = Data.backgroundTaskCount.get(); + Log.d("trl", String.format("background task count changed to %d", cnt)); + swiper.setRefreshing(cnt > 0); + }); + } + }); + } } @Override public void onAttach(Context context) { @@ -133,7 +155,7 @@ public class TransactionListFragment extends MobileLedgerListFragment { swiper.setOnRefreshListener(() -> { Log.d("ui", "refreshing transactions via swipe"); - mActivity.update_transactions(); + mActivity.scheduleTransactionListRetrieval(); }); swiper.setColorSchemeResources(R.color.colorPrimary, R.color.colorAccent); @@ -172,14 +194,10 @@ public class TransactionListFragment extends MobileLedgerListFragment { Data.transactions.addObserver(new Observer() { @Override public void update(Observable o, Object arg) { - mActivity.runOnUiThread(new Runnable() { - @Override - public void run() { - modelAdapter.notifyDataSetChanged(); - } - }); + mActivity.runOnUiThread(() -> modelAdapter.notifyDataSetChanged()); } }); + } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {