]> 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 6652120c040ebef49bf72743c38cc62315e1636f..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,10 +31,13 @@ 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;
 import net.ktnx.mobileledger.ui.activity.MainActivity;
+import net.ktnx.mobileledger.utils.Colors;
 import net.ktnx.mobileledger.utils.Globals;
 import net.ktnx.mobileledger.utils.MLDB;
 import net.ktnx.mobileledger.utils.ObservableValue;
@@ -47,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 {
@@ -57,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
@@ -166,7 +170,9 @@ public class TransactionListFragment extends MobileLedgerListFragment {
             mActivity.scheduleTransactionListRetrieval();
         });
 
-        swiper.setColorSchemeResources(R.color.colorPrimary, R.color.colorAccent);
+        Colors.themeWatch.addObserver(
+                (o, arg) -> swiper.setColorSchemeColors(Colors.primary));
+        swiper.setColorSchemeColors(Colors.primary);
 
         vAccountFilter = mActivity.findViewById(R.id.transaction_list_account_name_filter);
         accNameFilter = mActivity.findViewById(R.id.transaction_filter_account_name);
@@ -181,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() {