]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java
single observer instances, single place for reloading account/transaction lists
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / transaction_list / TransactionListFragment.java
index 62c4496cccff0aa09807a7965e6aac8c6e956846..bb0355ce4de7e637026d213b2915308c6fe4e01b 100644 (file)
@@ -20,11 +20,6 @@ package net.ktnx.mobileledger.ui.transaction_list;
 import android.content.Context;
 import android.database.MatrixCursor;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -36,6 +31,8 @@ import android.view.inputmethod.InputMethodManager;
 import android.widget.AutoCompleteTextView;
 import android.widget.Toast;
 
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+
 import net.ktnx.mobileledger.R;
 import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.ui.MobileLedgerListFragment;
@@ -48,6 +45,11 @@ import net.ktnx.mobileledger.utils.ObservableValue;
 import java.util.Observable;
 import java.util.Observer;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import static android.content.Context.INPUT_METHOD_SERVICE;
 
 public class TransactionListFragment extends MobileLedgerListFragment {
@@ -58,6 +60,7 @@ public class TransactionListFragment extends MobileLedgerListFragment {
     private View vAccountFilter;
     private AutoCompleteTextView accNameFilter;
     private Observer backgroundTaskCountObserver;
+    private Observer accountFilterObserver;
     private static void update(Observable o, Object arg) {
     }
     @Override
@@ -184,20 +187,17 @@ public class TransactionListFragment extends MobileLedgerListFragment {
             Globals.hideSoftKeyboard(mActivity);
         });
 
-        accountFilter.addObserver((o, arg) -> {
-            String accountName = accountFilter.get();
-            modelAdapter.setBoldAccountName(accountName);
-            setShowOnlyAccountName(accountName);
-            TransactionListViewModel.scheduleTransactionListReload();
-            if (menuTransactionListFilter != null) menuTransactionListFilter.setVisible(false);
-        });
-
-        Data.profile.addObserver((o, arg) -> mActivity.runOnUiThread(() -> {
-            Log.d("transactions", "requesting list reload");
-            TransactionListViewModel.scheduleTransactionListReload();
-        }));
+        if (accountFilterObserver == null) {
+            accountFilterObserver = (o, arg) -> {
+                String accountName = accountFilter.get();
+                modelAdapter.setBoldAccountName(accountName);
+                setShowOnlyAccountName(accountName);
+                TransactionListViewModel.scheduleTransactionListReload();
+                if (menuTransactionListFilter != null) menuTransactionListFilter.setVisible(false);
+            };
+            accountFilter.addObserver(accountFilterObserver);
+        }
 
-        TransactionListViewModel.scheduleTransactionListReload();
         TransactionListViewModel.updating.addObserver(
                 (o, arg) -> swiper.setRefreshing(TransactionListViewModel.updating.get()));
         TransactionListViewModel.updateError.addObserver(new Observer() {